1844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki/* 2844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Copyright (C) 2011 The Android Open Source Project 3844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 4844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Licensed under the Apache License, Version 2.0 (the "License"); 5844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * you may not use this file except in compliance with the License. 6844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * You may obtain a copy of the License at 7844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 8844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * http://www.apache.org/licenses/LICENSE-2.0 9844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 10844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Unless required by applicable law or agreed to in writing, software 11844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * distributed under the License is distributed on an "AS IS" BASIS, 12844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * See the License for the specific language governing permissions and 14844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * limitations under the License. 15844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 16844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 17844bf745044b4564f42a68f8b7d40105c4def294Makoto Onukipackage com.android.email.activity; 18844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 19844bf745044b4564f42a68f8b7d40105c4def294Makoto Onukiimport com.android.email.DBTestHelper; 20844bf745044b4564f42a68f8b7d40105c4def294Makoto Onukiimport com.android.email.provider.ProviderTestUtils; 21f5418f1f93b02e7fab9f15eb201800b65510998eMarc Blankimport com.android.emailcommon.provider.Account; 22844bf745044b4564f42a68f8b7d40105c4def294Makoto Onukiimport com.android.emailcommon.provider.Mailbox; 23844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 24844bf745044b4564f42a68f8b7d40105c4def294Makoto Onukiimport android.content.Context; 25844bf745044b4564f42a68f8b7d40105c4def294Makoto Onukiimport android.test.AndroidTestCase; 26844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 27844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki/** 28844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Unit tests for {@link MailboxListFragment.FindParentMailboxTask}. 29844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 30844bf745044b4564f42a68f8b7d40105c4def294Makoto Onukipublic class FindParentMailboxTaskTest extends AndroidTestCase { 31844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private Context mProviderContext; 32844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 33844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /** ID of the account created by {@link #setUpMailboxes}. */ 34844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private long mAccountId; 35844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 36844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /** 37844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * IDs for the mailboxes created by {@link #setUpMailboxes}. 38844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 39844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Mailbox hierarchy: 40844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * <pre> 41844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * |-Inbox 42844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * |-Parent 43844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * |-Child1 44844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * |-Child2 45844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * |-GrandChild1 46844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * |-GrandChild2 47844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * </pre> 48844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 49844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private long mIdInbox; 50844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private long mIdParent; 51844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private long mIdChild1; 52844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private long mIdChild2; 53844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private long mIdGrandChild1; 54844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private long mIdGrandChild2; 55844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 56844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki @Override 57844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki protected void setUp() throws Exception { 58844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki super.setUp(); 59844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 60844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mProviderContext = DBTestHelper.ProviderContextSetupHelper.getProviderContext( 61844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki getContext()); 62844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki setUpMailboxes(); 63844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 64844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 65844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /** 66844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Set up a test account and mailboxes. 67844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 68844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private void setUpMailboxes() { 69844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki Account a = ProviderTestUtils.setupAccount("a", true, mProviderContext); 70844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mAccountId = a.mId; 71844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 72844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdInbox = createMailboxAndGetId("Inbox", a, Mailbox.TYPE_INBOX, Mailbox.NO_MAILBOX); 73844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent = createMailboxAndGetId("P", a, Mailbox.TYPE_MAIL, Mailbox.NO_MAILBOX); 74844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdChild1 = createMailboxAndGetId("C1", a, Mailbox.TYPE_MAIL, mIdParent); 75844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdChild2 = createMailboxAndGetId("C2", a, Mailbox.TYPE_MAIL, mIdParent); 76844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdGrandChild1 = createMailboxAndGetId("G1", a, Mailbox.TYPE_MAIL, mIdChild2); 77844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdGrandChild2 = createMailboxAndGetId("G2", a, Mailbox.TYPE_MAIL, mIdChild2); 78844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 79844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 80844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private long createMailboxAndGetId(String name, Account account, int type, 81844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki long parentMailboxId) { 82844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki Mailbox m = ProviderTestUtils.setupMailbox(name, account.mId, false, mProviderContext, 83844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki type); 84844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki m.mParentKey = parentMailboxId; 85844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki m.save(mProviderContext); 86844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki return m.mId; 87844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 88844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 89844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /** 90844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Tests for two-pane. (highlighting is enabled) 91844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 92844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki public void testWithHighlight() { 93844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 94844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * In the comments below, [MAILBOX] indicates "highlighted", and MAILBOX* indicates 95844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * "selected". 96844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 97844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 98844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * from: 99844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Child2] 100844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - GChild1 101844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - GChild2 102844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 103844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * to: 104844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Parent 105844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child1 106844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Child2]* 107844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 108844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheckWithHighlight( 109844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdChild2, // Current parent 110844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdChild2, // Current highlighted 111844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 112844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Next root 113844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdChild2, // Next highlighted 114844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdChild2 // Next selected 115844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ); 116844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 117844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 118844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * from: 119844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child2 120844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [GChild1] 121844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - GChild2 122844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 123844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * to: 124844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Parent]* 125844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child1 126844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child2 127844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 128844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheckWithHighlight( 129844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdChild2, // Current parent 130844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdGrandChild1, // Current highlighted 131844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 132844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Next root 133844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Next highlighted 134844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent // Next selected 135844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ); 136844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 137844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 138844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * from: 139844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Parent] 140844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child1 141844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child2 142844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 143844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * to: 144844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Inbox 145844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Parent]* 146844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 147844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheckWithHighlight( 148844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Current parent 149844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Current highlighted 150844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 151844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki Mailbox.NO_MAILBOX, // Next root 152844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Next highlighted 153844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent // Next selected 154844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ); 155844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 156844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 157844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * from: 158844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Parent 159844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Child1] 160844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child2 161844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 162844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * to: 163844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Inbox]* 164844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Parent 165844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 166844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheckWithHighlight( 167844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Current parent 168844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdChild1, // Current highlighted 169844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 170844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki Mailbox.NO_MAILBOX, // Next root 171844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdInbox, // Next highlighted 172844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdInbox // Next selected 173844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ); 174844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 175844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 176844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Special case. 177844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Up from root view, with "Parent" highlighted. "Up" will be disabled in this case, but 178844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * if we were to run the task, it'd work as if the current parent mailbox is gone. 179844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * i.e. just show the top level mailboxes, with Inbox highlighted. 180844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 181844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * from: 182844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Inbox 183844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Parent] 184844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 185844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * to: 186844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Inbox] 187844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Parent 188844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 189844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheckWithHighlight( 190844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki Mailbox.NO_MAILBOX, // Current parent 191844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Current highlighted 192844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 193844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki Mailbox.NO_MAILBOX, // Next root 194844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdInbox, // Next highlighted 195844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdInbox // Next selected 196844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ); 197844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 198844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 199844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Special case. 200844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Current parent mailbox is gone. The result should be same as the above. 201844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 202844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * from: 203844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * (current mailbox just removed) 204844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 205844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * to: 206844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - [Inbox] 207844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Parent 208844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 209844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheckWithHighlight( 210844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 12312234234L, // Current parent 211844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Current highlighted 212844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 213844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki Mailbox.NO_MAILBOX, // Next root 214844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdInbox, // Next highlighted 215844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdInbox // Next selected 216844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ); 217844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 218844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 219844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private void doCheckWithHighlight( 220844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki long parentMailboxId, long highlightedMailboxId, 221844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki long expectedNextParent, long expectedNextHighlighted, long expectedNextSelected) { 222844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheck(true, parentMailboxId, highlightedMailboxId, 223844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki expectedNextParent, expectedNextHighlighted, expectedNextSelected); 224844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 225844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 226844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /** 227844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Tests for one-pane. (highlighting is disable) 228844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 229844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki public void testWithNoHighlight() { 230844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 231844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * from: 232844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child2 233844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - GChild1 234844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - GChild2 235844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 236844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * to: 237844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Parent 238844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child1 239844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child2 240844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 241844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheckWithNoHighlight( 242844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdChild2, // Current parent 243844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent // Next root 244844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ); 245844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 246844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * from: 247844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Parent 248844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child1 249844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Child2 250844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 251844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * to: 252844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Inbox 253844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Parent 254844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 255844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheckWithNoHighlight( 256844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mIdParent, // Current parent 257844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki Mailbox.NO_MAILBOX // Next root 258844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ); 259844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 260844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki /* 261844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Special case. 262844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * Current parent mailbox is gone. The top-level mailboxes should be shown. 263844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 264844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * from: 265844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * (current mailbox just removed) 266844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * 267844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * to: 268844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Inbox 269844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki * - Parent 270844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki */ 271844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheckWithNoHighlight( 272844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 12312234234L, // Current parent 273844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki Mailbox.NO_MAILBOX // Next root 274844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ); 275844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 276844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 277844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private void doCheckWithNoHighlight(long parentMailboxId, long expectedNextParent) { 278844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki doCheck(false, parentMailboxId, Mailbox.NO_MAILBOX, 279844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki expectedNextParent, Mailbox.NO_MAILBOX, 280844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki expectedNextParent /* parent should always be selected */); 281844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 282844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 283844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private void doCheck(boolean enableHighlight, 284844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki long parentMailboxId, long highlightedMailboxId, 285844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki long expectedNextParent, long expectedNextHighlighted, long expectedNextSelected) { 286844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki ResultCallback result = new ResultCallback(); 287844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 288844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki MailboxListFragment.FindParentMailboxTask task 289844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki = new MailboxListFragment.FindParentMailboxTask( 290844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mProviderContext, null, mAccountId, enableHighlight, parentMailboxId, 291844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki highlightedMailboxId, result); 292844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 293844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki // Can't execute an async task on the test thread, so emulate execution... 29450d934360d51392ac2aa6f11de4d6e1446cf78c9Makoto Onuki task.onSuccess(task.doInBackground((Void[]) null)); 295844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 296844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki assertEquals("parent", expectedNextParent, result.mNextParentMailboxId); 297844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki assertEquals("highlighted", expectedNextHighlighted, result.mNextHighlightedMailboxId); 298844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki assertEquals("selected", expectedNextSelected, result.mNextSelectedMailboxId); 299844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 300844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 301844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki private static class ResultCallback 302844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki implements MailboxListFragment.FindParentMailboxTask.ResultCallback { 303844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki public long mNextParentMailboxId; 304844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki public long mNextHighlightedMailboxId; 305844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki public long mNextSelectedMailboxId; 306844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki 307844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki @Override 308844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki public void onResult(long nextParentMailboxId, long nextHighlightedMailboxId, 309844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki long nextSelectedMailboxId) { 310844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mNextParentMailboxId = nextParentMailboxId; 311844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mNextHighlightedMailboxId = nextHighlightedMailboxId; 312844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki mNextSelectedMailboxId = nextSelectedMailboxId; 313844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 314844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki } 315844bf745044b4564f42a68f8b7d40105c4def294Makoto Onuki} 316