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