152 lines
5.4 KiB
Java
152 lines
5.4 KiB
Java
/*
|
|
* Copyright (C) 2010 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.activity;
|
|
|
|
import android.content.Context;
|
|
import android.test.LoaderTestCase;
|
|
|
|
import com.android.email.DBTestHelper;
|
|
import com.android.email.MessageListContext;
|
|
import com.android.email.provider.ProviderTestUtils;
|
|
import com.android.emailcommon.provider.Account;
|
|
import com.android.emailcommon.provider.Mailbox;
|
|
|
|
public class MessagesAdapterTests extends LoaderTestCase {
|
|
// Account ID that's probably not in the database.
|
|
private static final long NO_SUCH_ACCOUNT_ID = 1234567890123L;
|
|
|
|
// Mailbox ID that's probably not in the database.
|
|
private static final long NO_SUCH_MAILBOX_ID = 1234567890123L;
|
|
|
|
// Isolated Context for providers.
|
|
private Context mProviderContext;
|
|
|
|
@Override
|
|
protected void setUp() throws Exception {
|
|
mProviderContext = DBTestHelper.ProviderContextSetupHelper.getProviderContext(getContext());
|
|
}
|
|
|
|
private long createAccount(boolean isEas) {
|
|
Account acct = ProviderTestUtils.setupAccount("acct1", false, mProviderContext);
|
|
String proto = isEas ? "eas" : "non-eas";
|
|
acct.mHostAuthRecv =
|
|
ProviderTestUtils.setupHostAuth(proto, "hostauth", true, mProviderContext);
|
|
acct.mHostAuthKeyRecv = acct.mHostAuthRecv.mId;
|
|
acct.save(mProviderContext);
|
|
return acct.mId;
|
|
}
|
|
|
|
private long createMailbox(long accountId, int type) {
|
|
Mailbox box = ProviderTestUtils.setupMailbox("name", accountId, false, mProviderContext);
|
|
box.mType = type;
|
|
box.save(mProviderContext);
|
|
return box.mId;
|
|
}
|
|
|
|
private MessagesAdapter.MessagesCursor getLoaderResult(long accountId, long mailboxId) {
|
|
return (MessagesAdapter.MessagesCursor) getLoaderResultSynchronously(
|
|
MessagesAdapter.createLoader(
|
|
mProviderContext,
|
|
MessageListContext.forMailbox(accountId, mailboxId)));
|
|
}
|
|
|
|
/**
|
|
* Test for normal case. (account, mailbox found)
|
|
*/
|
|
public void testLoad() {
|
|
final long accountId = createAccount(false);
|
|
final long mailboxId = createMailbox(accountId, Mailbox.TYPE_MAIL);
|
|
|
|
MessagesAdapter.MessagesCursor result = getLoaderResult(accountId, mailboxId);
|
|
assertTrue(result.mIsFound);
|
|
assertEquals(accountId, result.mAccount.mId);
|
|
assertEquals(mailboxId, result.mMailbox.mId);
|
|
assertFalse(result.mIsEasAccount);
|
|
assertTrue(result.mIsRefreshable);
|
|
}
|
|
|
|
/**
|
|
* Load -- isEas = true
|
|
*/
|
|
public void testLoadEas() {
|
|
final long accountId = createAccount(true);
|
|
final long mailboxId = createMailbox(accountId, Mailbox.TYPE_MAIL);
|
|
|
|
MessagesAdapter.MessagesCursor result = getLoaderResult(accountId, mailboxId);
|
|
assertTrue(result.mIsFound);
|
|
assertEquals(accountId, result.mAccount.mId);
|
|
assertEquals(mailboxId, result.mMailbox.mId);
|
|
assertTrue(result.mIsEasAccount);
|
|
assertTrue(result.mIsRefreshable);
|
|
}
|
|
|
|
/**
|
|
* Load -- drafts, not refreshable.
|
|
*/
|
|
public void testLoadNotRefreshable() {
|
|
final long accountId = createAccount(false);
|
|
final long mailboxId = createMailbox(accountId, Mailbox.TYPE_DRAFTS);
|
|
|
|
MessagesAdapter.MessagesCursor result = getLoaderResult(accountId, mailboxId);
|
|
assertTrue(result.mIsFound);
|
|
assertEquals(accountId, result.mAccount.mId);
|
|
assertEquals(mailboxId, result.mMailbox.mId);
|
|
assertFalse(result.mIsEasAccount);
|
|
assertFalse(result.mIsRefreshable);
|
|
}
|
|
|
|
/**
|
|
* Mailbox not found.
|
|
*/
|
|
public void testMailboxNotFound() {
|
|
MessagesAdapter.MessagesCursor result = getLoaderResult(
|
|
createAccount(false), NO_SUCH_MAILBOX_ID);
|
|
assertFalse(result.mIsFound);
|
|
assertNull(result.mAccount);
|
|
assertNull(result.mMailbox);
|
|
assertFalse(result.mIsEasAccount);
|
|
assertFalse(result.mIsRefreshable);
|
|
}
|
|
|
|
/**
|
|
* Account not found.
|
|
*/
|
|
public void testAccountNotFound() {
|
|
final long mailboxId = createMailbox(NO_SUCH_ACCOUNT_ID, Mailbox.TYPE_MAIL);
|
|
|
|
MessagesAdapter.MessagesCursor result = getLoaderResult(NO_SUCH_ACCOUNT_ID, mailboxId);
|
|
assertFalse(result.mIsFound);
|
|
assertNull(result.mAccount);
|
|
assertNull(result.mMailbox);
|
|
assertFalse(result.mIsEasAccount);
|
|
assertFalse(result.mIsRefreshable);
|
|
}
|
|
|
|
/**
|
|
* Magic mailbox. (always found)
|
|
*/
|
|
public void testMagicMailbox() {
|
|
MessagesAdapter.MessagesCursor result = getLoaderResult(
|
|
Account.ACCOUNT_ID_COMBINED_VIEW, Mailbox.QUERY_ALL_INBOXES);
|
|
assertTrue(result.mIsFound);
|
|
assertNull(result.mAccount);
|
|
assertNull(result.mMailbox);
|
|
assertFalse(result.mIsEasAccount);
|
|
assertFalse(result.mIsRefreshable);
|
|
}
|
|
}
|