ProviderTestUtils.java revision 9e2c6bd5f21f2d19eef7ebfe30e6fdf94ede0857
1/* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.email.provider; 18 19import com.android.email.provider.EmailContent.Account; 20import com.android.email.provider.EmailContent.Attachment; 21import com.android.email.provider.EmailContent.Mailbox; 22import com.android.email.provider.EmailContent.Message; 23 24import android.content.Context; 25 26import junit.framework.Assert; 27 28public class ProviderTestUtils extends Assert { 29 30 /** 31 * No constructor - statics only 32 */ 33 private ProviderTestUtils() { 34 } 35 36 /** 37 * Create an account for test purposes 38 */ 39 public static Account setupAccount(String name, boolean saveIt, Context context) { 40 Account account = new Account(); 41 42 account.mDisplayName = name; 43 account.mEmailAddress = name + "@android.com"; 44 account.mSyncKey = "sync-key-" + name; 45 account.mSyncLookback = 1; 46 account.mSyncInterval = EmailContent.Account.CHECK_INTERVAL_NEVER; 47 account.mHostAuthKeyRecv = 2; 48 account.mHostAuthKeySend = 3; 49 account.mFlags = 4; 50 account.mIsDefault = true; 51 account.mCompatibilityUuid = "test-uid-" + name; 52 account.mSenderName = name; 53 account.mRingtoneUri = "content://ringtone-" + name; 54 account.mProtocolVersion = "2.5" + name; 55 56 if (saveIt) { 57 account.save(context); 58 } 59 return account; 60 } 61 62 /** 63 * Create a mailbox for test purposes 64 */ 65 public static Mailbox setupMailbox(String name, long accountId, boolean saveIt, 66 Context context) { 67 Mailbox box = new Mailbox(); 68 69 box.mDisplayName = name; 70 box.mServerId = "serverid-" + name; 71 box.mParentServerId = "parent-serverid-" + name; 72 box.mAccountKey = accountId; 73 box.mType = Mailbox.TYPE_MAIL; 74 box.mDelimiter = 1; 75 box.mSyncKey = "sync-key-" + name; 76 box.mSyncLookback = 2; 77 box.mSyncInterval = EmailContent.Account.CHECK_INTERVAL_NEVER; 78 box.mSyncTime = 3; 79 box.mUnreadCount = 4; 80 box.mFlagVisible = true; 81 box.mFlags = 5; 82 box.mVisibleLimit = 6; 83 84 if (saveIt) { 85 box.save(context); 86 } 87 return box; 88 } 89 90 /** 91 * Create a message for test purposes 92 * 93 * TODO: body 94 * TODO: attachments 95 */ 96 public static Message setupMessage(String name, long accountId, long mailboxId, 97 boolean addBody, boolean saveIt, Context context) { 98 Message message = new Message(); 99 100 message.mDisplayName = name; 101 message.mTimeStamp = 1; 102 message.mSubject = "subject " + name; 103 message.mPreview = "preview " + name; 104 message.mFlagRead = true; 105 message.mFlagLoaded = Message.NOT_LOADED; 106 message.mFlagFavorite = true; 107 message.mFlagAttachment = true; 108 message.mFlags = 2; 109 110 message.mTextInfo = "textinfo " + name; 111 message.mHtmlInfo = "htmlinfo " + name; 112 113 message.mServerId = "serverid " + name; 114 message.mServerIntId = 0; 115 message.mClientId = "clientid " + name; 116 message.mMessageId = "messageid " + name; 117 message.mThreadId = "threadid " + name; 118 119 message.mMailboxKey = mailboxId; 120 message.mAccountKey = accountId; 121 message.mReferenceKey = 4; 122 123 message.mSender = "sender " + name; 124 message.mFrom = "from " + name; 125 message.mTo = "to " + name; 126 message.mCc = "cc " + name; 127 message.mBcc = "bcc " + name; 128 message.mReplyTo = "replyto " + name; 129 130 message.mServerVersion = "serverversion " + name; 131 132 if (addBody) { 133 message.mText = "body text " + name; 134 message.mHtml = "body html " + name; 135 } 136 137 if (saveIt) { 138 message.save(context); 139 } 140 return message; 141 } 142 143 /** 144 * Create a test attachment. A few fields are specified by params, and all other fields 145 * are generated using pseudo-unique values. 146 * 147 * @param messageId the message to attach to 148 * @param fileName the "file" to indicate in the attachment 149 * @param length the "length" of the attachment 150 * @param saveIt if true, write the new attachment directly to the DB 151 * @param context use this context 152 */ 153 public static Attachment setupAttachment(long messageId, String fileName, long length, 154 boolean saveIt, Context context) { 155 Attachment att = new Attachment(); 156 att.mSize = length; 157 att.mFileName = fileName; 158 att.mContentId = "contentId " + fileName; 159 att.mContentUri = "contentUri " + fileName; 160 att.mMessageKey = messageId; 161 att.mMimeType = "mimeType " + fileName; 162 att.mLocation = "location " + fileName; 163 att.mEncoding = "encoding " + fileName; 164 if (saveIt) { 165 att.save(context); 166 } 167 return att; 168 } 169 170 private static void assertEmailContentEqual(String caller, EmailContent expect, 171 EmailContent actual) { 172 if (expect == actual) { 173 return; 174 } 175 176 assertEquals(caller + " mId", expect.mId, actual.mId); 177 assertEquals(caller + " mBaseUri", expect.mBaseUri, actual.mBaseUri); 178 } 179 180 /** 181 * Compare two accounts for equality 182 * 183 * TODO: check host auth? 184 */ 185 public static void assertAccountEqual(String caller, Account expect, Account actual) { 186 if (expect == actual) { 187 return; 188 } 189 190 assertEmailContentEqual(caller, expect, actual); 191 assertEquals(caller + " mDisplayName", expect.mDisplayName, actual.mDisplayName); 192 assertEquals(caller + " mEmailAddress", expect.mEmailAddress, actual.mEmailAddress); 193 assertEquals(caller + " mSyncKey", expect.mSyncKey, actual.mSyncKey); 194 195 assertEquals(caller + " mSyncLookback", expect.mSyncLookback, actual.mSyncLookback); 196 assertEquals(caller + " mSyncInterval", expect.mSyncInterval, actual.mSyncInterval); 197 assertEquals(caller + " mHostAuthKeyRecv", expect.mHostAuthKeyRecv, 198 actual.mHostAuthKeyRecv); 199 assertEquals(caller + " mHostAuthKeySend", expect.mHostAuthKeySend, 200 actual.mHostAuthKeySend); 201 assertEquals(caller + " mFlags", expect.mFlags, actual.mFlags); 202 assertEquals(caller + " mIsDefault", expect.mIsDefault, actual.mIsDefault); 203 assertEquals(caller + " mCompatibilityUuid", expect.mCompatibilityUuid, 204 actual.mCompatibilityUuid); 205 assertEquals(caller + " mSenderName", expect.mSenderName, actual.mSenderName); 206 assertEquals(caller + " mRingtoneUri", expect.mRingtoneUri, actual.mRingtoneUri); 207 assertEquals(caller + " mProtocolVersion", expect.mProtocolVersion, 208 actual.mProtocolVersion); 209 } 210 211 /** 212 * Compare two mailboxes for equality 213 */ 214 public static void assertMailboxEqual(String caller, Mailbox expect, Mailbox actual) { 215 if (expect == actual) { 216 return; 217 } 218 219 assertEmailContentEqual(caller, expect, actual); 220 assertEquals(caller + " mDisplayName", expect.mDisplayName, actual.mDisplayName); 221 assertEquals(caller + " mServerId", expect.mServerId, actual.mServerId); 222 assertEquals(caller + " mParentServerId", expect.mParentServerId, actual.mParentServerId); 223 assertEquals(caller + " mAccountKey", expect.mAccountKey, actual.mAccountKey); 224 assertEquals(caller + " mType", expect.mType, actual.mType); 225 assertEquals(caller + " mDelimiter", expect.mDelimiter, actual.mDelimiter); 226 assertEquals(caller + " mSyncKey", expect.mSyncKey, actual.mSyncKey); 227 assertEquals(caller + " mSyncLookback", expect.mSyncLookback, actual.mSyncLookback); 228 assertEquals(caller + " mSyncInterval", expect.mSyncInterval, actual.mSyncInterval); 229 assertEquals(caller + " mSyncTime", expect.mSyncTime, actual.mSyncTime); 230 assertEquals(caller + " mUnreadCount", expect.mUnreadCount, actual.mUnreadCount); 231 assertEquals(caller + " mFlagVisible", expect.mFlagVisible, actual.mFlagVisible); 232 assertEquals(caller + " mFlags", expect.mFlags, actual.mFlags); 233 assertEquals(caller + " mVisibleLimit", expect.mVisibleLimit, actual.mVisibleLimit); 234 } 235 236 /** 237 * Compare two messages for equality 238 * 239 * TODO: body? 240 * TODO: attachments? 241 */ 242 public static void assertMessageEqual(String caller, Message expect, Message actual) { 243 if (expect == actual) { 244 return; 245 } 246 247 assertEmailContentEqual(caller, expect, actual); 248 assertEquals(caller + " mDisplayName", expect.mDisplayName, actual.mDisplayName); 249 assertEquals(caller + " mTimeStamp", expect.mTimeStamp, actual.mTimeStamp); 250 assertEquals(caller + " mSubject", expect.mSubject, actual.mSubject); 251 assertEquals(caller + " mPreview", expect.mPreview, actual.mPreview); 252 assertEquals(caller + " mFlagRead = false", expect.mFlagRead, actual.mFlagRead); 253 assertEquals(caller + " mFlagLoaded", expect.mFlagLoaded, actual.mFlagLoaded); 254 assertEquals(caller + " mFlagFavorite", expect.mFlagFavorite, actual.mFlagFavorite); 255 assertEquals(caller + " mFlagAttachment", expect.mFlagAttachment, actual.mFlagAttachment); 256 assertEquals(caller + " mFlags", expect.mFlags, actual.mFlags); 257 258 assertEquals(caller + " mTextInfo", expect.mTextInfo, actual.mTextInfo); 259 assertEquals(caller + " mHtmlInfo", expect.mHtmlInfo, actual.mHtmlInfo); 260 261 assertEquals(caller + " mServerId", expect.mServerId, actual.mServerId); 262 assertEquals(caller + " mServerIntId", expect.mServerIntId, actual.mServerIntId); 263 assertEquals(caller + " mClientId", expect.mClientId, actual.mClientId); 264 assertEquals(caller + " mMessageId", expect.mMessageId, actual.mMessageId); 265 assertEquals(caller + " mThreadId", expect.mThreadId, actual.mThreadId); 266 267 assertEquals(caller + " mMailboxKey", expect.mMailboxKey, actual.mMailboxKey); 268 assertEquals(caller + " mAccountKey", expect.mAccountKey, actual.mAccountKey); 269 assertEquals(caller + " mReferenceKey", expect.mReferenceKey, actual.mReferenceKey); 270 271 assertEquals(caller + " mSender", expect.mSender, actual.mSender); 272 assertEquals(caller + " mFrom", expect.mFrom, actual.mFrom); 273 assertEquals(caller + " mTo", expect.mTo, actual.mTo); 274 assertEquals(caller + " mCc", expect.mCc, actual.mCc); 275 assertEquals(caller + " mBcc", expect.mBcc, actual.mBcc); 276 assertEquals(caller + " mReplyTo", expect.mReplyTo, actual.mReplyTo); 277 278 assertEquals(caller + " mServerVersion", expect.mServerVersion, actual.mServerVersion); 279 280 assertEquals(caller + " mText", expect.mText, actual.mText); 281 assertEquals(caller + " mHtml", expect.mHtml, actual.mHtml); 282 } 283 284 /** 285 * Compare to attachments for equality 286 * 287 * TODO: file / content URI mapping? Compare the actual files? 288 */ 289 public static void assertAttachmentEqual(String caller, Attachment expect, Attachment actual) { 290 if (expect == actual) { 291 return; 292 } 293 294 assertEmailContentEqual(caller, expect, actual); 295 assertEquals(caller + " mSize", expect.mSize, actual.mSize); 296 assertEquals(caller + " mFileName", expect.mFileName, actual.mFileName); 297 assertEquals(caller + " mContentId", expect.mContentId, actual.mContentId); 298 assertEquals(caller + " mContentUri", expect.mContentUri, actual.mContentUri); 299 assertEquals(caller + " mMessageKey", expect.mMessageKey, actual.mMessageKey); 300 assertEquals(caller + " mMimeType", expect.mMimeType, actual.mMimeType); 301 assertEquals(caller + " mLocation", expect.mLocation, actual.mLocation); 302 assertEquals(caller + " mEncoding", expect.mEncoding, actual.mEncoding); 303 } 304} 305