1c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank/*
2c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * Copyright (C) 2011 The Android Open Source Project
3c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank *
4c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * Licensed under the Apache License, Version 2.0 (the "License");
5c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * you may not use this file except in compliance with the License.
6c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * You may obtain a copy of the License at
7c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank *
8c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank *      http://www.apache.org/licenses/LICENSE-2.0
9c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank *
10c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * Unless required by applicable law or agreed to in writing, software
11c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * distributed under the License is distributed on an "AS IS" BASIS,
12c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * See the License for the specific language governing permissions and
14c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * limitations under the License.
15c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank */
16c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
17c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blankpackage com.android.exchange.provider;
18c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
197372782488977df778a33d990401ce9e397f646bMarc Blankimport com.android.emailcommon.provider.Account;
20c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blankimport com.android.emailcommon.provider.EmailContent.Message;
216c9b4545651f9be2edb16c0769a7886ec7f24c30Ben Komaloimport com.android.emailcommon.provider.Mailbox;
22c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
23c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blankimport android.content.Context;
24c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
25c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank/**
26c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank * Simplified EmailContent class setup (condensed from ProviderTestUtils in com.android.email)
27c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank */
28c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blankpublic class EmailContentSetupUtils {
29c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
30c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    /**
31c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     * No constructor - statics only
32c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     */
33c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    private EmailContentSetupUtils() {
34c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    }
35c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
36c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    /**
37c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     * Create an account for test purposes
38c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     */
39c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    public static Account setupAccount(String name, boolean saveIt, Context context) {
40c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        Account account = new Account();
41c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
42c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        account.mDisplayName = name;
43c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        account.mEmailAddress = name + "@android.com";
44c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        account.mProtocolVersion = "2.5" + name;
45c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        if (saveIt) {
46c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank            account.save(context);
47c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        }
48c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        return account;
49c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    }
50c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
51c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    /**
52c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     * Create a mailbox for test purposes
53c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     */
54c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    public static Mailbox setupMailbox(String name, long accountId, boolean saveIt,
55c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank            Context context) {
56e1358075882e5abfb37f8f3ff2266e5a0fabbcfcMarc Blank        return setupMailbox(name, accountId, saveIt, context, Mailbox.TYPE_MAIL, null);
57c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    }
58c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
59c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    public static Mailbox setupMailbox(String name, long accountId, boolean saveIt,
60c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank            Context context, int type) {
61e1358075882e5abfb37f8f3ff2266e5a0fabbcfcMarc Blank        return setupMailbox(name, accountId, saveIt, context, type, null);
62e1358075882e5abfb37f8f3ff2266e5a0fabbcfcMarc Blank    }
63e1358075882e5abfb37f8f3ff2266e5a0fabbcfcMarc Blank
64e1358075882e5abfb37f8f3ff2266e5a0fabbcfcMarc Blank    public static Mailbox setupMailbox(String name, long accountId, boolean saveIt,
65e1358075882e5abfb37f8f3ff2266e5a0fabbcfcMarc Blank            Context context, int type, Mailbox parentBox) {
66c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        Mailbox box = new Mailbox();
67c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
68c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        box.mDisplayName = name;
69c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        box.mAccountKey = accountId;
70c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        box.mSyncKey = "sync-key-" + name;
71c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        box.mSyncLookback = 2;
727372782488977df778a33d990401ce9e397f646bMarc Blank        box.mSyncInterval = Account.CHECK_INTERVAL_NEVER;
73c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        box.mType = type;
74c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        box.mServerId = "serverid-" + name;
75e1358075882e5abfb37f8f3ff2266e5a0fabbcfcMarc Blank        box.mParentServerId = parentBox != null ? parentBox.mServerId : "parent-serverid-" + name;
76c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
77c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        if (saveIt) {
78c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank            box.save(context);
79c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        }
80c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        return box;
81c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    }
82c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
83c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    /**
84c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     * Create a message for test purposes
85c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     */
86c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    public static Message setupMessage(String name, long accountId, long mailboxId,
87c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank            boolean addBody, boolean saveIt, Context context) {
88c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        // Default starred, read,  (backword compatibility)
89c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        return setupMessage(name, accountId, mailboxId, addBody, saveIt, context, true, true);
90c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    }
91c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
92c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    /**
93c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     * Create a message for test purposes
94c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank     */
95c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    public static Message setupMessage(String name, long accountId, long mailboxId,
96c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank            boolean addBody, boolean saveIt, Context context, boolean starred, boolean read) {
97c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        Message message = new Message();
98c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
99c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        message.mDisplayName = name;
100c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        message.mMailboxKey = mailboxId;
101c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        message.mAccountKey = accountId;
102c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        message.mFlagRead = read;
103c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        message.mFlagLoaded = Message.FLAG_LOADED_UNLOADED;
104c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        message.mFlagFavorite = starred;
105c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        message.mServerId = "serverid " + name;
106c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
107c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        if (addBody) {
108c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank            message.mText = "body text " + name;
109c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank            message.mHtml = "body html " + name;
110c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        }
111c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank
112c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        if (saveIt) {
113c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank            message.save(context);
114c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        }
115c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank        return message;
116c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank    }
117c8e4352ea6cfa67f15140512e84af8ccede222d2Marc Blank}
118