2009-07-06 17:49:38 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2009 The Android Open Source Project
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
package com.android.email.provider;
|
|
|
|
|
2011-02-11 23:05:17 +00:00
|
|
|
import com.android.emailcommon.internet.Rfc822Output;
|
2011-06-13 22:32:27 +00:00
|
|
|
import com.android.emailcommon.provider.Account;
|
2011-02-10 18:26:56 +00:00
|
|
|
import com.android.emailcommon.provider.EmailContent;
|
|
|
|
import com.android.emailcommon.provider.EmailContent.Attachment;
|
|
|
|
import com.android.emailcommon.provider.EmailContent.Body;
|
|
|
|
import com.android.emailcommon.provider.EmailContent.Message;
|
2011-05-19 22:18:12 +00:00
|
|
|
import com.android.emailcommon.provider.HostAuth;
|
2011-05-14 00:26:27 +00:00
|
|
|
import com.android.emailcommon.provider.Mailbox;
|
2011-02-11 23:05:17 +00:00
|
|
|
import com.android.emailcommon.utility.Utility;
|
2009-07-06 17:49:38 +00:00
|
|
|
|
2011-02-09 02:53:31 +00:00
|
|
|
import android.content.ContentUris;
|
2009-07-06 17:49:38 +00:00
|
|
|
import android.content.Context;
|
2010-07-30 00:06:00 +00:00
|
|
|
import android.net.Uri;
|
2010-03-12 21:30:26 +00:00
|
|
|
import android.test.MoreAsserts;
|
2009-07-06 17:49:38 +00:00
|
|
|
|
2010-07-30 00:06:00 +00:00
|
|
|
import java.io.File;
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
|
2009-07-06 17:49:38 +00:00
|
|
|
import junit.framework.Assert;
|
|
|
|
|
|
|
|
public class ProviderTestUtils extends Assert {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* No constructor - statics only
|
|
|
|
*/
|
|
|
|
private ProviderTestUtils() {
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create an account for test purposes
|
|
|
|
*/
|
|
|
|
public static Account setupAccount(String name, boolean saveIt, Context context) {
|
|
|
|
Account account = new Account();
|
|
|
|
|
|
|
|
account.mDisplayName = name;
|
|
|
|
account.mEmailAddress = name + "@android.com";
|
|
|
|
account.mSyncKey = "sync-key-" + name;
|
|
|
|
account.mSyncLookback = 1;
|
2011-06-13 22:32:27 +00:00
|
|
|
account.mSyncInterval = Account.CHECK_INTERVAL_NEVER;
|
2009-09-15 21:10:12 +00:00
|
|
|
account.mHostAuthKeyRecv = 0;
|
|
|
|
account.mHostAuthKeySend = 0;
|
2009-07-06 17:49:38 +00:00
|
|
|
account.mFlags = 4;
|
|
|
|
account.mCompatibilityUuid = "test-uid-" + name;
|
|
|
|
account.mSenderName = name;
|
2009-07-17 23:29:35 +00:00
|
|
|
account.mProtocolVersion = "2.5" + name;
|
2009-08-18 19:14:15 +00:00
|
|
|
account.mNewMessageCount = 5 + name.length();
|
2011-04-28 00:12:06 +00:00
|
|
|
account.mPolicyKey = 0;
|
2010-01-27 01:24:15 +00:00
|
|
|
account.mSecuritySyncKey = "sec-sync-key-" + name;
|
|
|
|
account.mSignature = "signature-" + name;
|
2009-07-06 17:49:38 +00:00
|
|
|
if (saveIt) {
|
2009-07-22 22:13:30 +00:00
|
|
|
account.save(context);
|
2009-07-06 17:49:38 +00:00
|
|
|
}
|
|
|
|
return account;
|
|
|
|
}
|
|
|
|
|
2011-02-09 02:53:31 +00:00
|
|
|
/**
|
|
|
|
* Lightweight way of deleting an account for testing.
|
|
|
|
*/
|
|
|
|
public static void deleteAccount(Context context, long accountId) {
|
|
|
|
context.getContentResolver().delete(ContentUris.withAppendedId(
|
2011-06-13 22:32:27 +00:00
|
|
|
Account.CONTENT_URI, accountId), null, null);
|
2011-02-09 02:53:31 +00:00
|
|
|
}
|
|
|
|
|
2009-09-15 21:10:12 +00:00
|
|
|
/**
|
|
|
|
* Create a hostauth record for test purposes
|
|
|
|
*/
|
|
|
|
public static HostAuth setupHostAuth(String name, long accountId, boolean saveIt,
|
|
|
|
Context context) {
|
2011-02-17 18:27:31 +00:00
|
|
|
return setupHostAuth("protocol", name, saveIt, context);
|
2010-03-08 23:25:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a hostauth record for test purposes
|
|
|
|
*/
|
2011-02-17 18:27:31 +00:00
|
|
|
public static HostAuth setupHostAuth(String protocol, String name, boolean saveIt,
|
|
|
|
Context context) {
|
2009-09-15 21:10:12 +00:00
|
|
|
HostAuth hostAuth = new HostAuth();
|
|
|
|
|
2010-08-26 22:08:19 +00:00
|
|
|
hostAuth.mProtocol = protocol;
|
2009-09-15 21:10:12 +00:00
|
|
|
hostAuth.mAddress = "address-" + name;
|
|
|
|
hostAuth.mPort = 100;
|
|
|
|
hostAuth.mFlags = 200;
|
|
|
|
hostAuth.mLogin = "login-" + name;
|
|
|
|
hostAuth.mPassword = "password-" + name;
|
|
|
|
hostAuth.mDomain = "domain-" + name;
|
|
|
|
|
|
|
|
if (saveIt) {
|
|
|
|
hostAuth.save(context);
|
|
|
|
}
|
|
|
|
return hostAuth;
|
|
|
|
}
|
|
|
|
|
2009-07-06 17:49:38 +00:00
|
|
|
/**
|
|
|
|
* Create a mailbox for test purposes
|
|
|
|
*/
|
|
|
|
public static Mailbox setupMailbox(String name, long accountId, boolean saveIt,
|
|
|
|
Context context) {
|
2010-02-12 02:14:01 +00:00
|
|
|
return setupMailbox(name, accountId, saveIt, context, Mailbox.TYPE_MAIL);
|
|
|
|
}
|
|
|
|
public static Mailbox setupMailbox(String name, long accountId, boolean saveIt,
|
|
|
|
Context context, int type) {
|
2011-04-20 23:22:41 +00:00
|
|
|
return setupMailbox(name, accountId, saveIt, context, type, '/');
|
|
|
|
}
|
|
|
|
public static Mailbox setupMailbox(String name, long accountId, boolean saveIt,
|
|
|
|
Context context, int type, char delimiter) {
|
2009-07-06 17:49:38 +00:00
|
|
|
Mailbox box = new Mailbox();
|
|
|
|
|
2011-04-22 22:45:11 +00:00
|
|
|
int delimiterIndex = name.lastIndexOf(delimiter);
|
|
|
|
String displayName = name;
|
|
|
|
if (delimiterIndex > 0) {
|
|
|
|
displayName = name.substring(delimiterIndex + 1);
|
|
|
|
}
|
|
|
|
box.mDisplayName = displayName;
|
|
|
|
box.mServerId = name;
|
2009-07-06 17:49:38 +00:00
|
|
|
box.mParentServerId = "parent-serverid-" + name;
|
2011-03-01 18:45:50 +00:00
|
|
|
box.mParentKey = 4;
|
2009-07-06 17:49:38 +00:00
|
|
|
box.mAccountKey = accountId;
|
2010-02-12 02:14:01 +00:00
|
|
|
box.mType = type;
|
2011-04-20 23:22:41 +00:00
|
|
|
box.mDelimiter = delimiter;
|
2009-07-06 17:49:38 +00:00
|
|
|
box.mSyncKey = "sync-key-" + name;
|
|
|
|
box.mSyncLookback = 2;
|
2011-06-13 22:32:27 +00:00
|
|
|
box.mSyncInterval = Account.CHECK_INTERVAL_NEVER;
|
2009-07-06 17:49:38 +00:00
|
|
|
box.mSyncTime = 3;
|
|
|
|
box.mFlagVisible = true;
|
|
|
|
box.mFlags = 5;
|
|
|
|
|
|
|
|
if (saveIt) {
|
2009-07-22 22:13:30 +00:00
|
|
|
box.save(context);
|
2009-07-06 17:49:38 +00:00
|
|
|
}
|
|
|
|
return box;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a message for test purposes
|
|
|
|
*/
|
|
|
|
public static Message setupMessage(String name, long accountId, long mailboxId,
|
|
|
|
boolean addBody, boolean saveIt, Context context) {
|
2010-08-03 01:16:13 +00:00
|
|
|
// Default starred, read, (backword compatibility)
|
|
|
|
return setupMessage(name, accountId, mailboxId, addBody, saveIt, context, true, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a message for test purposes
|
|
|
|
*/
|
|
|
|
public static Message setupMessage(String name, long accountId, long mailboxId,
|
|
|
|
boolean addBody, boolean saveIt, Context context, boolean starred, boolean read) {
|
2009-07-06 17:49:38 +00:00
|
|
|
Message message = new Message();
|
|
|
|
|
|
|
|
message.mDisplayName = name;
|
2009-09-23 01:31:10 +00:00
|
|
|
message.mTimeStamp = 100 + name.length();
|
2009-07-06 17:49:38 +00:00
|
|
|
message.mSubject = "subject " + name;
|
2010-08-03 01:16:13 +00:00
|
|
|
message.mFlagRead = read;
|
2013-11-27 04:41:53 +00:00
|
|
|
message.mFlagSeen = read;
|
2009-09-10 18:52:36 +00:00
|
|
|
message.mFlagLoaded = Message.FLAG_LOADED_UNLOADED;
|
2010-08-03 01:16:13 +00:00
|
|
|
message.mFlagFavorite = starred;
|
2009-07-06 17:49:38 +00:00
|
|
|
message.mFlagAttachment = true;
|
2009-09-25 21:54:32 +00:00
|
|
|
message.mFlags = 0;
|
2009-07-06 17:49:38 +00:00
|
|
|
|
|
|
|
message.mServerId = "serverid " + name;
|
2009-09-23 01:31:10 +00:00
|
|
|
message.mServerTimeStamp = 300 + name.length();
|
2009-07-06 17:49:38 +00:00
|
|
|
message.mMessageId = "messageid " + name;
|
|
|
|
|
|
|
|
message.mMailboxKey = mailboxId;
|
|
|
|
message.mAccountKey = accountId;
|
|
|
|
|
|
|
|
message.mFrom = "from " + name;
|
|
|
|
message.mTo = "to " + name;
|
|
|
|
message.mCc = "cc " + name;
|
|
|
|
message.mBcc = "bcc " + name;
|
|
|
|
message.mReplyTo = "replyto " + name;
|
|
|
|
|
2010-02-16 00:01:38 +00:00
|
|
|
message.mMeetingInfo = "123" + accountId + mailboxId + name.length();
|
|
|
|
|
2009-07-06 17:49:38 +00:00
|
|
|
if (addBody) {
|
|
|
|
message.mText = "body text " + name;
|
|
|
|
message.mHtml = "body html " + name;
|
2009-09-23 01:31:10 +00:00
|
|
|
message.mSourceKey = 400 + name.length();
|
2009-07-06 17:49:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if (saveIt) {
|
2009-07-22 22:13:30 +00:00
|
|
|
message.save(context);
|
2009-07-06 17:49:38 +00:00
|
|
|
}
|
|
|
|
return message;
|
|
|
|
}
|
|
|
|
|
2010-09-02 02:06:15 +00:00
|
|
|
/**
|
|
|
|
* Create a test body
|
|
|
|
*
|
|
|
|
* @param messageId the message this body belongs to
|
|
|
|
* @param textContent the plain text for the body
|
|
|
|
* @param htmlContent the html text for the body
|
|
|
|
* @param saveIt if true, write the new attachment directly to the DB
|
|
|
|
* @param context use this context
|
|
|
|
*/
|
|
|
|
public static Body setupBody(long messageId, String textContent, String htmlContent,
|
|
|
|
boolean saveIt, Context context) {
|
|
|
|
Body body = new Body();
|
|
|
|
body.mMessageKey = messageId;
|
|
|
|
body.mHtmlContent = htmlContent;
|
2013-11-27 04:41:53 +00:00
|
|
|
body.mTextContent = textContent;
|
2010-09-02 02:06:15 +00:00
|
|
|
body.mSourceKey = messageId + 0x1000;
|
|
|
|
if (saveIt) {
|
|
|
|
body.save(context);
|
|
|
|
}
|
|
|
|
return body;
|
|
|
|
}
|
|
|
|
|
2009-07-16 23:03:40 +00:00
|
|
|
/**
|
|
|
|
* Create a test attachment. A few fields are specified by params, and all other fields
|
|
|
|
* are generated using pseudo-unique values.
|
2009-07-30 18:41:31 +00:00
|
|
|
*
|
2009-07-16 23:03:40 +00:00
|
|
|
* @param messageId the message to attach to
|
|
|
|
* @param fileName the "file" to indicate in the attachment
|
|
|
|
* @param length the "length" of the attachment
|
2010-08-20 16:53:46 +00:00
|
|
|
* @param flags the flags to set in the attachment
|
2009-07-16 23:03:40 +00:00
|
|
|
* @param saveIt if true, write the new attachment directly to the DB
|
|
|
|
* @param context use this context
|
|
|
|
*/
|
|
|
|
public static Attachment setupAttachment(long messageId, String fileName, long length,
|
2010-08-20 16:53:46 +00:00
|
|
|
int flags, boolean saveIt, Context context) {
|
2009-07-16 23:03:40 +00:00
|
|
|
Attachment att = new Attachment();
|
|
|
|
att.mSize = length;
|
|
|
|
att.mFileName = fileName;
|
|
|
|
att.mContentId = "contentId " + fileName;
|
2013-11-27 04:41:53 +00:00
|
|
|
att.setContentUri("contentUri " + fileName);
|
2009-07-16 23:03:40 +00:00
|
|
|
att.mMessageKey = messageId;
|
|
|
|
att.mMimeType = "mimeType " + fileName;
|
|
|
|
att.mLocation = "location " + fileName;
|
|
|
|
att.mEncoding = "encoding " + fileName;
|
2010-02-22 20:57:33 +00:00
|
|
|
att.mContent = "content " + fileName;
|
2010-08-20 16:53:46 +00:00
|
|
|
att.mFlags = flags;
|
2010-03-12 21:30:26 +00:00
|
|
|
att.mContentBytes = Utility.toUtf8("content " + fileName);
|
2010-12-09 01:11:04 +00:00
|
|
|
att.mAccountKey = messageId + 0x1000;
|
2009-07-16 23:03:40 +00:00
|
|
|
if (saveIt) {
|
2009-07-22 22:13:30 +00:00
|
|
|
att.save(context);
|
2009-07-16 23:03:40 +00:00
|
|
|
}
|
|
|
|
return att;
|
|
|
|
}
|
|
|
|
|
2010-08-20 16:53:46 +00:00
|
|
|
/**
|
|
|
|
* Create a test attachment with flags = 0 (see above)
|
|
|
|
*
|
|
|
|
* @param messageId the message to attach to
|
|
|
|
* @param fileName the "file" to indicate in the attachment
|
|
|
|
* @param length the "length" of the attachment
|
|
|
|
* @param saveIt if true, write the new attachment directly to the DB
|
|
|
|
* @param context use this context
|
|
|
|
*/
|
|
|
|
public static Attachment setupAttachment(long messageId, String fileName, long length,
|
|
|
|
boolean saveIt, Context context) {
|
|
|
|
return setupAttachment(messageId, fileName, length, 0, saveIt, context);
|
|
|
|
}
|
|
|
|
|
2009-07-30 18:41:31 +00:00
|
|
|
private static void assertEmailContentEqual(String caller, EmailContent expect,
|
2009-07-17 23:29:35 +00:00
|
|
|
EmailContent actual) {
|
|
|
|
if (expect == actual) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
assertEquals(caller + " mId", expect.mId, actual.mId);
|
|
|
|
assertEquals(caller + " mBaseUri", expect.mBaseUri, actual.mBaseUri);
|
|
|
|
}
|
|
|
|
|
2009-07-06 17:49:38 +00:00
|
|
|
/**
|
|
|
|
* Compare two accounts for equality
|
2009-07-30 18:41:31 +00:00
|
|
|
*
|
2009-07-06 17:49:38 +00:00
|
|
|
* TODO: check host auth?
|
|
|
|
*/
|
|
|
|
public static void assertAccountEqual(String caller, Account expect, Account actual) {
|
|
|
|
if (expect == actual) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2009-07-17 23:29:35 +00:00
|
|
|
assertEmailContentEqual(caller, expect, actual);
|
2009-07-06 17:49:38 +00:00
|
|
|
assertEquals(caller + " mDisplayName", expect.mDisplayName, actual.mDisplayName);
|
|
|
|
assertEquals(caller + " mEmailAddress", expect.mEmailAddress, actual.mEmailAddress);
|
|
|
|
assertEquals(caller + " mSyncKey", expect.mSyncKey, actual.mSyncKey);
|
|
|
|
|
|
|
|
assertEquals(caller + " mSyncLookback", expect.mSyncLookback, actual.mSyncLookback);
|
2009-07-22 22:13:30 +00:00
|
|
|
assertEquals(caller + " mSyncInterval", expect.mSyncInterval, actual.mSyncInterval);
|
2009-07-06 17:49:38 +00:00
|
|
|
assertEquals(caller + " mHostAuthKeyRecv", expect.mHostAuthKeyRecv,
|
|
|
|
actual.mHostAuthKeyRecv);
|
|
|
|
assertEquals(caller + " mHostAuthKeySend", expect.mHostAuthKeySend,
|
|
|
|
actual.mHostAuthKeySend);
|
|
|
|
assertEquals(caller + " mFlags", expect.mFlags, actual.mFlags);
|
|
|
|
assertEquals(caller + " mCompatibilityUuid", expect.mCompatibilityUuid,
|
|
|
|
actual.mCompatibilityUuid);
|
|
|
|
assertEquals(caller + " mSenderName", expect.mSenderName, actual.mSenderName);
|
2009-07-17 23:29:35 +00:00
|
|
|
assertEquals(caller + " mProtocolVersion", expect.mProtocolVersion,
|
|
|
|
actual.mProtocolVersion);
|
2009-08-18 19:14:15 +00:00
|
|
|
assertEquals(caller + " mNewMessageCount", expect.mNewMessageCount,
|
|
|
|
actual.mNewMessageCount);
|
2010-01-27 01:24:15 +00:00
|
|
|
assertEquals(caller + " mSecuritySyncKey", expect.mSecuritySyncKey,
|
|
|
|
actual.mSecuritySyncKey);
|
|
|
|
assertEquals(caller + " mSignature", expect.mSignature, actual.mSignature);
|
2013-11-27 04:41:53 +00:00
|
|
|
assertEquals(caller + " mPolicyKey", expect.mPolicyKey, actual.mPolicyKey);
|
|
|
|
assertEquals(caller + " mPingDuration", expect.mPingDuration, actual.mPingDuration);
|
2009-07-06 17:49:38 +00:00
|
|
|
}
|
|
|
|
|
2009-09-15 21:10:12 +00:00
|
|
|
/**
|
|
|
|
* Compare two hostauth records for equality
|
|
|
|
*/
|
|
|
|
public static void assertHostAuthEqual(String caller, HostAuth expect, HostAuth actual) {
|
2011-05-06 19:07:39 +00:00
|
|
|
assertHostAuthEqual(caller, expect, actual, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void assertHostAuthEqual(String caller, HostAuth expect, HostAuth actual,
|
|
|
|
boolean testEmailContent) {
|
2009-09-15 21:10:12 +00:00
|
|
|
if (expect == actual) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2011-05-06 19:07:39 +00:00
|
|
|
if (testEmailContent) {
|
|
|
|
assertEmailContentEqual(caller, expect, actual);
|
|
|
|
}
|
2009-09-15 21:10:12 +00:00
|
|
|
assertEquals(caller + " mProtocol", expect.mProtocol, actual.mProtocol);
|
|
|
|
assertEquals(caller + " mAddress", expect.mAddress, actual.mAddress);
|
|
|
|
assertEquals(caller + " mPort", expect.mPort, actual.mPort);
|
|
|
|
assertEquals(caller + " mFlags", expect.mFlags, actual.mFlags);
|
|
|
|
assertEquals(caller + " mLogin", expect.mLogin, actual.mLogin);
|
|
|
|
assertEquals(caller + " mPassword", expect.mPassword, actual.mPassword);
|
|
|
|
assertEquals(caller + " mDomain", expect.mDomain, actual.mDomain);
|
|
|
|
// This field is dead and is not checked
|
|
|
|
// assertEquals(caller + " mAccountKey", expect.mAccountKey, actual.mAccountKey);
|
|
|
|
}
|
|
|
|
|
2009-07-06 17:49:38 +00:00
|
|
|
/**
|
|
|
|
* Compare two mailboxes for equality
|
|
|
|
*/
|
|
|
|
public static void assertMailboxEqual(String caller, Mailbox expect, Mailbox actual) {
|
|
|
|
if (expect == actual) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2009-07-17 23:29:35 +00:00
|
|
|
assertEmailContentEqual(caller, expect, actual);
|
2009-07-06 17:49:38 +00:00
|
|
|
assertEquals(caller + " mDisplayName", expect.mDisplayName, actual.mDisplayName);
|
|
|
|
assertEquals(caller + " mServerId", expect.mServerId, actual.mServerId);
|
|
|
|
assertEquals(caller + " mParentServerId", expect.mParentServerId, actual.mParentServerId);
|
2011-03-01 18:45:50 +00:00
|
|
|
assertEquals(caller + " mParentKey", expect.mParentKey, actual.mParentKey);
|
2009-07-06 17:49:38 +00:00
|
|
|
assertEquals(caller + " mAccountKey", expect.mAccountKey, actual.mAccountKey);
|
|
|
|
assertEquals(caller + " mType", expect.mType, actual.mType);
|
|
|
|
assertEquals(caller + " mDelimiter", expect.mDelimiter, actual.mDelimiter);
|
|
|
|
assertEquals(caller + " mSyncKey", expect.mSyncKey, actual.mSyncKey);
|
|
|
|
assertEquals(caller + " mSyncLookback", expect.mSyncLookback, actual.mSyncLookback);
|
2009-07-22 22:13:30 +00:00
|
|
|
assertEquals(caller + " mSyncInterval", expect.mSyncInterval, actual.mSyncInterval);
|
2009-07-06 17:49:38 +00:00
|
|
|
assertEquals(caller + " mSyncTime", expect.mSyncTime, actual.mSyncTime);
|
|
|
|
assertEquals(caller + " mFlagVisible", expect.mFlagVisible, actual.mFlagVisible);
|
2013-11-27 04:41:53 +00:00
|
|
|
assertEquals(caller + " mSyncStatus", expect.mSyncStatus, actual.mSyncStatus);
|
|
|
|
assertEquals(caller + " mLastTouchedTime", expect.mLastTouchedTime, actual.mLastTouchedTime);
|
|
|
|
assertEquals(caller + " mUiSyncStatus", expect.mUiSyncStatus, actual.mUiSyncStatus);
|
|
|
|
assertEquals(caller + " mUiLastSyncResult", expect.mUiLastSyncResult, actual.mUiLastSyncResult);
|
|
|
|
assertEquals(caller + " mTotalCount", expect.mTotalCount, actual.mTotalCount);
|
|
|
|
assertEquals(caller + " mHierarchicalName", expect.mHierarchicalName, actual.mHierarchicalName);
|
|
|
|
assertEquals(caller + " mLastFullSyncTime", expect.mLastFullSyncTime, actual.mLastFullSyncTime);
|
2009-07-06 17:49:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Compare two messages for equality
|
2009-07-30 18:41:31 +00:00
|
|
|
*
|
2009-07-06 17:49:38 +00:00
|
|
|
* TODO: body?
|
|
|
|
* TODO: attachments?
|
|
|
|
*/
|
|
|
|
public static void assertMessageEqual(String caller, Message expect, Message actual) {
|
|
|
|
if (expect == actual) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2009-07-17 23:29:35 +00:00
|
|
|
assertEmailContentEqual(caller, expect, actual);
|
2009-07-06 17:49:38 +00:00
|
|
|
assertEquals(caller + " mDisplayName", expect.mDisplayName, actual.mDisplayName);
|
|
|
|
assertEquals(caller + " mTimeStamp", expect.mTimeStamp, actual.mTimeStamp);
|
|
|
|
assertEquals(caller + " mSubject", expect.mSubject, actual.mSubject);
|
|
|
|
assertEquals(caller + " mFlagRead = false", expect.mFlagRead, actual.mFlagRead);
|
2013-11-27 04:41:53 +00:00
|
|
|
assertEquals(caller + " mFlagRead = false", expect.mFlagSeen, actual.mFlagSeen);
|
2009-07-06 17:49:38 +00:00
|
|
|
assertEquals(caller + " mFlagLoaded", expect.mFlagLoaded, actual.mFlagLoaded);
|
|
|
|
assertEquals(caller + " mFlagFavorite", expect.mFlagFavorite, actual.mFlagFavorite);
|
|
|
|
assertEquals(caller + " mFlagAttachment", expect.mFlagAttachment, actual.mFlagAttachment);
|
|
|
|
assertEquals(caller + " mFlags", expect.mFlags, actual.mFlags);
|
|
|
|
|
|
|
|
assertEquals(caller + " mServerId", expect.mServerId, actual.mServerId);
|
2009-09-23 01:31:10 +00:00
|
|
|
assertEquals(caller + " mServerTimeStamp", expect.mServerTimeStamp,actual.mServerTimeStamp);
|
2013-11-27 04:41:53 +00:00
|
|
|
assertEquals(caller + " mDraftInfo", expect.mDraftInfo,actual.mDraftInfo);
|
2009-07-06 17:49:38 +00:00
|
|
|
assertEquals(caller + " mMessageId", expect.mMessageId, actual.mMessageId);
|
|
|
|
|
|
|
|
assertEquals(caller + " mMailboxKey", expect.mMailboxKey, actual.mMailboxKey);
|
|
|
|
assertEquals(caller + " mAccountKey", expect.mAccountKey, actual.mAccountKey);
|
2013-11-27 04:41:53 +00:00
|
|
|
assertEquals(caller + " mMainMailboxKey", expect.mMainMailboxKey, actual.mMainMailboxKey);
|
2009-07-06 17:49:38 +00:00
|
|
|
|
|
|
|
assertEquals(caller + " mFrom", expect.mFrom, actual.mFrom);
|
|
|
|
assertEquals(caller + " mTo", expect.mTo, actual.mTo);
|
|
|
|
assertEquals(caller + " mCc", expect.mCc, actual.mCc);
|
|
|
|
assertEquals(caller + " mBcc", expect.mBcc, actual.mBcc);
|
|
|
|
assertEquals(caller + " mReplyTo", expect.mReplyTo, actual.mReplyTo);
|
|
|
|
|
2010-02-16 00:01:38 +00:00
|
|
|
assertEquals(caller + " mMeetingInfo", expect.mMeetingInfo, actual.mMeetingInfo);
|
|
|
|
|
2010-09-02 02:06:15 +00:00
|
|
|
assertEquals(caller + " mSnippet", expect.mSnippet, actual.mSnippet);
|
|
|
|
|
2013-11-27 04:41:53 +00:00
|
|
|
assertEquals(caller + " mProtocolSearchInfo", expect.mProtocolSearchInfo, actual.mProtocolSearchInfo);
|
|
|
|
|
|
|
|
assertEquals(caller + " mThreadTopic", expect.mThreadTopic, actual.mThreadTopic);
|
|
|
|
|
|
|
|
assertEquals(caller + " mSyncData", expect.mSyncData, actual.mSyncData);
|
|
|
|
|
|
|
|
assertEquals(caller + " mSyncData", expect.mServerConversationId, actual.mServerConversationId);
|
|
|
|
|
2009-07-06 17:49:38 +00:00
|
|
|
assertEquals(caller + " mText", expect.mText, actual.mText);
|
|
|
|
assertEquals(caller + " mHtml", expect.mHtml, actual.mHtml);
|
2009-09-07 23:03:02 +00:00
|
|
|
assertEquals(caller + " mSourceKey", expect.mSourceKey, actual.mSourceKey);
|
2013-11-27 04:41:53 +00:00
|
|
|
assertEquals(caller + " mQuotedTextStartPos", expect.mQuotedTextStartPos, actual.mQuotedTextStartPos);
|
2009-07-06 17:49:38 +00:00
|
|
|
}
|
2009-07-16 23:03:40 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Compare to attachments for equality
|
2009-07-30 18:41:31 +00:00
|
|
|
*
|
2009-07-16 23:03:40 +00:00
|
|
|
* TODO: file / content URI mapping? Compare the actual files?
|
|
|
|
*/
|
|
|
|
public static void assertAttachmentEqual(String caller, Attachment expect, Attachment actual) {
|
|
|
|
if (expect == actual) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2009-07-17 23:29:35 +00:00
|
|
|
assertEmailContentEqual(caller, expect, actual);
|
2009-07-16 23:03:40 +00:00
|
|
|
assertEquals(caller + " mFileName", expect.mFileName, actual.mFileName);
|
2013-11-27 04:41:53 +00:00
|
|
|
assertEquals(caller + " mMimeType", expect.mMimeType, actual.mMimeType);
|
|
|
|
assertEquals(caller + " mSize", expect.mSize, actual.mSize);
|
2009-07-16 23:03:40 +00:00
|
|
|
assertEquals(caller + " mContentId", expect.mContentId, actual.mContentId);
|
2013-11-27 04:41:53 +00:00
|
|
|
assertEquals(caller + " mContentUri", expect.getContentUri(), actual.getContentUri());
|
|
|
|
assertEquals(caller + " mCachedFileUri", expect.getCachedFileUri(), actual.getCachedFileUri());
|
2009-07-16 23:03:40 +00:00
|
|
|
assertEquals(caller + " mMessageKey", expect.mMessageKey, actual.mMessageKey);
|
|
|
|
assertEquals(caller + " mLocation", expect.mLocation, actual.mLocation);
|
|
|
|
assertEquals(caller + " mEncoding", expect.mEncoding, actual.mEncoding);
|
2010-02-22 20:57:33 +00:00
|
|
|
assertEquals(caller + " mContent", expect.mContent, actual.mContent);
|
|
|
|
assertEquals(caller + " mFlags", expect.mFlags, actual.mFlags);
|
2010-03-12 21:30:26 +00:00
|
|
|
MoreAsserts.assertEquals(caller + " mContentBytes",
|
|
|
|
expect.mContentBytes, actual.mContentBytes);
|
2010-12-09 01:11:04 +00:00
|
|
|
assertEquals(caller + " mAccountKey", expect.mAccountKey, actual.mAccountKey);
|
2009-07-16 23:03:40 +00:00
|
|
|
}
|
2010-07-30 00:06:00 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a temporary EML file based on {@code msg} in the directory {@code directory}.
|
|
|
|
*/
|
|
|
|
public static Uri createTempEmlFile(Context context, Message msg, File directory)
|
|
|
|
throws Exception {
|
|
|
|
// Write out the message in rfc822 format
|
|
|
|
File outputFile = File.createTempFile("message", "tmp", directory);
|
|
|
|
assertNotNull(outputFile);
|
|
|
|
FileOutputStream outputStream = new FileOutputStream(outputFile);
|
2013-11-27 04:41:53 +00:00
|
|
|
Rfc822Output.writeTo(context, msg, outputStream, true, false, null);
|
2010-07-30 00:06:00 +00:00
|
|
|
outputStream.close();
|
|
|
|
|
|
|
|
return Uri.fromFile(outputFile);
|
|
|
|
}
|
2009-07-06 17:49:38 +00:00
|
|
|
}
|