OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.tabmodel; | 5 package org.chromium.chrome.browser.tabmodel; |
6 | 6 |
7 import android.app.Activity; | 7 import android.app.Activity; |
| 8 import android.support.test.annotation.UiThreadTest; |
8 import android.support.test.filters.SmallTest; | 9 import android.support.test.filters.SmallTest; |
9 import android.test.InstrumentationTestCase; | 10 import android.support.test.rule.UiThreadTestRule; |
10 import android.test.UiThreadTest; | 11 |
| 12 import org.junit.Assert; |
| 13 import org.junit.Rule; |
| 14 import org.junit.Test; |
| 15 import org.junit.runner.RunWith; |
11 | 16 |
12 import org.chromium.base.ActivityState; | 17 import org.chromium.base.ActivityState; |
13 import org.chromium.base.ApplicationStatus; | 18 import org.chromium.base.ApplicationStatus; |
14 import org.chromium.base.test.util.Feature; | 19 import org.chromium.base.test.util.Feature; |
15 import org.chromium.chrome.browser.ChromeActivity; | 20 import org.chromium.chrome.browser.ChromeActivity; |
16 import org.chromium.chrome.browser.customtabs.CustomTabActivity; | 21 import org.chromium.chrome.browser.customtabs.CustomTabActivity; |
17 import org.chromium.chrome.browser.tab.Tab; | 22 import org.chromium.chrome.browser.tab.Tab; |
18 import org.chromium.chrome.browser.tabmodel.TabWindowManager.TabModelSelectorFac
tory; | 23 import org.chromium.chrome.browser.tabmodel.TabWindowManager.TabModelSelectorFac
tory; |
| 24 import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
19 import org.chromium.chrome.test.util.browser.tabmodel.MockTabModelSelector; | 25 import org.chromium.chrome.test.util.browser.tabmodel.MockTabModelSelector; |
20 | 26 |
21 /** | 27 /** |
22 * Test for {@link TabWindowManager} APIs. Makes sure the class handles multipl
e {@link Activity}s | 28 * Test for {@link TabWindowManager} APIs. Makes sure the class handles multipl
e {@link Activity}s |
23 * requesting {@link TabModelSelector}s, {@link Activity}s getting destroyed, et
c.. | 29 * requesting {@link TabModelSelector}s, {@link Activity}s getting destroyed, et
c.. |
24 */ | 30 */ |
25 public class TabWindowManagerTest extends InstrumentationTestCase { | 31 @RunWith(ChromeJUnit4ClassRunner.class) |
| 32 public class TabWindowManagerTest { |
26 private final TabModelSelectorFactory mMockTabModelSelectorFactory = | 33 private final TabModelSelectorFactory mMockTabModelSelectorFactory = |
27 new TabModelSelectorFactory() { | 34 new TabModelSelectorFactory() { |
28 @Override | 35 @Override |
29 public TabModelSelector buildSelector(Activity activity, | 36 public TabModelSelector buildSelector(Activity activity, |
30 TabCreatorManager tabCreatorManager, int selectorIndex)
{ | 37 TabCreatorManager tabCreatorManager, int selectorIndex)
{ |
31 return new MockTabModelSelector(0, 0, null); | 38 return new MockTabModelSelector(0, 0, null); |
32 } | 39 } |
33 }; | 40 }; |
34 | 41 |
35 private ChromeActivity buildActivity() { | 42 private ChromeActivity buildActivity() { |
36 ChromeActivity activity = new CustomTabActivity(); | 43 ChromeActivity activity = new CustomTabActivity(); |
37 ApplicationStatus.onStateChangeForTesting(activity, ActivityState.CREATE
D); | 44 ApplicationStatus.onStateChangeForTesting(activity, ActivityState.CREATE
D); |
38 return activity; | 45 return activity; |
39 } | 46 } |
40 | 47 |
41 private MockTabModelSelector requestSelector(ChromeActivity activity, int re
questedIndex) { | 48 private MockTabModelSelector requestSelector(ChromeActivity activity, int re
questedIndex) { |
42 final TabWindowManager manager = TabWindowManager.getInstance(); | 49 final TabWindowManager manager = TabWindowManager.getInstance(); |
43 manager.setTabModelSelectorFactory(mMockTabModelSelectorFactory); | 50 manager.setTabModelSelectorFactory(mMockTabModelSelectorFactory); |
44 return (MockTabModelSelector) manager.requestSelector(activity, activity
, requestedIndex); | 51 return (MockTabModelSelector) manager.requestSelector(activity, activity
, requestedIndex); |
45 } | 52 } |
46 | 53 |
| 54 @Rule |
| 55 public UiThreadTestRule mRule = new UiThreadTestRule(); |
| 56 |
47 /** | 57 /** |
48 * Test that a single {@link Activity} can request a {@link TabModelSelector
}. | 58 * Test that a single {@link Activity} can request a {@link TabModelSelector
}. |
49 */ | 59 */ |
| 60 @Test |
50 @SmallTest | 61 @SmallTest |
51 @Feature({"Multiwindow"}) | 62 @Feature({"Multiwindow"}) |
52 @UiThreadTest | 63 @UiThreadTest |
53 public void testSingleActivity() { | 64 public void testSingleActivity() { |
54 final TabWindowManager manager = TabWindowManager.getInstance(); | 65 final TabWindowManager manager = TabWindowManager.getInstance(); |
55 | 66 |
56 ChromeActivity activity0 = buildActivity(); | 67 ChromeActivity activity0 = buildActivity(); |
57 TabModelSelector selector0 = requestSelector(activity0, 0); | 68 TabModelSelector selector0 = requestSelector(activity0, 0); |
58 | 69 |
59 assertNotNull("Was not able to build the TabModelSelector", selector0); | 70 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor0); |
60 assertEquals("Unexpected model index", 0, manager.getIndexForWindow(acti
vity0)); | 71 Assert.assertEquals("Unexpected model index", 0, manager.getIndexForWind
ow(activity0)); |
61 } | 72 } |
62 | 73 |
63 /** | 74 /** |
64 * Test that two {@link Activity}s can request different {@link TabModelSele
ctor}s. | 75 * Test that two {@link Activity}s can request different {@link TabModelSele
ctor}s. |
65 */ | 76 */ |
| 77 @Test |
66 @SmallTest | 78 @SmallTest |
67 @Feature({"Multiwindow"}) | 79 @Feature({"Multiwindow"}) |
68 @UiThreadTest | 80 @UiThreadTest |
69 public void testMultipleActivities() { | 81 public void testMultipleActivities() { |
70 assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SEL
ECTORS >= 2); | 82 Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANE
OUS_SELECTORS >= 2); |
71 final TabWindowManager manager = TabWindowManager.getInstance(); | 83 final TabWindowManager manager = TabWindowManager.getInstance(); |
72 | 84 |
73 ChromeActivity activity0 = buildActivity(); | 85 ChromeActivity activity0 = buildActivity(); |
74 ChromeActivity activity1 = buildActivity(); | 86 ChromeActivity activity1 = buildActivity(); |
75 TabModelSelector selector0 = requestSelector(activity0, 0); | 87 TabModelSelector selector0 = requestSelector(activity0, 0); |
76 TabModelSelector selector1 = requestSelector(activity1, 1); | 88 TabModelSelector selector1 = requestSelector(activity1, 1); |
77 | 89 |
78 assertNotNull("Was not able to build the TabModelSelector", selector0); | 90 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor0); |
79 assertNotNull("Was not able to build the TabModelSelector", selector1); | 91 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor1); |
80 assertEquals("Unexpected model index", 0, manager.getIndexForWindow(acti
vity0)); | 92 Assert.assertEquals("Unexpected model index", 0, manager.getIndexForWind
ow(activity0)); |
81 assertEquals("Unexpected model index", 1, manager.getIndexForWindow(acti
vity1)); | 93 Assert.assertEquals("Unexpected model index", 1, manager.getIndexForWind
ow(activity1)); |
82 } | 94 } |
83 | 95 |
84 /** | 96 /** |
85 * Test that trying to have too many {@link Activity}s requesting {@link Tab
ModelSelector}s is | 97 * Test that trying to have too many {@link Activity}s requesting {@link Tab
ModelSelector}s is |
86 * properly capped and returns {@code null}. | 98 * properly capped and returns {@code null}. |
87 */ | 99 */ |
| 100 @Test |
88 @SmallTest | 101 @SmallTest |
89 @Feature({"Multiwindow"}) | 102 @Feature({"Multiwindow"}) |
90 @UiThreadTest | 103 @UiThreadTest |
91 public void testTooManyActivities() { | 104 public void testTooManyActivities() { |
92 for (int i = 0; i < TabWindowManager.MAX_SIMULTANEOUS_SELECTORS; i++) { | 105 for (int i = 0; i < TabWindowManager.MAX_SIMULTANEOUS_SELECTORS; i++) { |
93 assertNotNull("Could not build selector", requestSelector(buildActiv
ity(), 0)); | 106 Assert.assertNotNull("Could not build selector", requestSelector(bui
ldActivity(), 0)); |
94 } | 107 } |
95 | 108 |
96 assertNull("Built selectors past the max number supported", | 109 Assert.assertNull("Built selectors past the max number supported", |
97 requestSelector(buildActivity(), 0)); | 110 requestSelector(buildActivity(), 0)); |
98 } | 111 } |
99 | 112 |
100 /** | 113 /** |
101 * Test that requesting the same {@link TabModelSelector} index will fall ba
ck and return a | 114 * Test that requesting the same {@link TabModelSelector} index will fall ba
ck and return a |
102 * model for a different available index instead. In this case, a higher in
dex (0 -> 1). | 115 * model for a different available index instead. In this case, a higher in
dex (0 -> 1). |
103 */ | 116 */ |
| 117 @Test |
104 @SmallTest | 118 @SmallTest |
105 @Feature({"Multiwindow"}) | 119 @Feature({"Multiwindow"}) |
106 @UiThreadTest | 120 @UiThreadTest |
107 public void testIndexFallback() { | 121 public void testIndexFallback() { |
108 assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SEL
ECTORS >= 2); | 122 Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANE
OUS_SELECTORS >= 2); |
109 | 123 |
110 final TabWindowManager manager = TabWindowManager.getInstance(); | 124 final TabWindowManager manager = TabWindowManager.getInstance(); |
111 | 125 |
112 ChromeActivity activity0 = buildActivity(); | 126 ChromeActivity activity0 = buildActivity(); |
113 ChromeActivity activity1 = buildActivity(); | 127 ChromeActivity activity1 = buildActivity(); |
114 TabModelSelector selector0 = requestSelector(activity0, 0); | 128 TabModelSelector selector0 = requestSelector(activity0, 0); |
115 // Request 0 again, but should get 1 instead. | 129 // Request 0 again, but should get 1 instead. |
116 TabModelSelector selector1 = requestSelector(activity1, 0); | 130 TabModelSelector selector1 = requestSelector(activity1, 0); |
117 | 131 |
118 assertNotNull("Was not able to build the TabModelSelector", selector0); | 132 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor0); |
119 assertNotNull("Was not able to build the TabModelSelector", selector1); | 133 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor1); |
120 assertEquals("Unexpected model index", 0, manager.getIndexForWindow(acti
vity0)); | 134 Assert.assertEquals("Unexpected model index", 0, manager.getIndexForWind
ow(activity0)); |
121 assertEquals("Unexpected model index", 1, manager.getIndexForWindow(acti
vity1)); | 135 Assert.assertEquals("Unexpected model index", 1, manager.getIndexForWind
ow(activity1)); |
122 } | 136 } |
123 | 137 |
124 /** | 138 /** |
125 * Test that requesting the same {@link TabModelSelector} index will fall ba
ck and return a | 139 * Test that requesting the same {@link TabModelSelector} index will fall ba
ck and return a |
126 * model for a different available index instead. In this case, a lower ind
ex (2 -> 0). | 140 * model for a different available index instead. In this case, a lower ind
ex (2 -> 0). |
127 */ | 141 */ |
| 142 @Test |
128 @SmallTest | 143 @SmallTest |
129 @Feature({"Multiwindow"}) | 144 @Feature({"Multiwindow"}) |
130 @UiThreadTest | 145 @UiThreadTest |
131 public void testIndexFallback2() { | 146 public void testIndexFallback2() { |
132 assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SEL
ECTORS >= 3); | 147 Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANE
OUS_SELECTORS >= 3); |
133 | 148 |
134 final TabWindowManager manager = TabWindowManager.getInstance(); | 149 final TabWindowManager manager = TabWindowManager.getInstance(); |
135 | 150 |
136 ChromeActivity activity0 = buildActivity(); | 151 ChromeActivity activity0 = buildActivity(); |
137 ChromeActivity activity1 = buildActivity(); | 152 ChromeActivity activity1 = buildActivity(); |
138 TabModelSelector selector0 = requestSelector(activity0, 2); | 153 TabModelSelector selector0 = requestSelector(activity0, 2); |
139 // Request 2 again, but should get 0 instead. | 154 // Request 2 again, but should get 0 instead. |
140 TabModelSelector selector1 = requestSelector(activity1, 2); | 155 TabModelSelector selector1 = requestSelector(activity1, 2); |
141 | 156 |
142 assertNotNull("Was not able to build the TabModelSelector", selector0); | 157 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor0); |
143 assertNotNull("Was not able to build the TabModelSelector", selector1); | 158 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor1); |
144 assertEquals("Unexpected model index", 2, manager.getIndexForWindow(acti
vity0)); | 159 Assert.assertEquals("Unexpected model index", 2, manager.getIndexForWind
ow(activity0)); |
145 assertEquals("Unexpected model index", 0, manager.getIndexForWindow(acti
vity1)); | 160 Assert.assertEquals("Unexpected model index", 0, manager.getIndexForWind
ow(activity1)); |
146 } | 161 } |
147 | 162 |
148 /** | 163 /** |
149 * Test that a destroyed {@link Activity} properly gets removed from {@link
TabWindowManager}. | 164 * Test that a destroyed {@link Activity} properly gets removed from {@link
TabWindowManager}. |
150 */ | 165 */ |
| 166 @Test |
151 @SmallTest | 167 @SmallTest |
152 @Feature({"Multiwindow"}) | 168 @Feature({"Multiwindow"}) |
153 @UiThreadTest | 169 @UiThreadTest |
154 public void testActivityDeathRemovesSingle() { | 170 public void testActivityDeathRemovesSingle() { |
155 final TabWindowManager manager = TabWindowManager.getInstance(); | 171 final TabWindowManager manager = TabWindowManager.getInstance(); |
156 | 172 |
157 ChromeActivity activity0 = buildActivity(); | 173 ChromeActivity activity0 = buildActivity(); |
158 TabModelSelector selector0 = requestSelector(activity0, 0); | 174 TabModelSelector selector0 = requestSelector(activity0, 0); |
159 | 175 |
160 assertNotNull("Was not able to build the TabModelSelector", selector0); | 176 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor0); |
161 assertEquals("Unexpected model index", 0, manager.getIndexForWindow(acti
vity0)); | 177 Assert.assertEquals("Unexpected model index", 0, manager.getIndexForWind
ow(activity0)); |
162 | 178 |
163 ApplicationStatus.onStateChangeForTesting(activity0, ActivityState.DESTR
OYED); | 179 ApplicationStatus.onStateChangeForTesting(activity0, ActivityState.DESTR
OYED); |
164 | 180 |
165 assertEquals("Still found model", TabWindowManager.INVALID_WINDOW_INDEX, | 181 Assert.assertEquals("Still found model", TabWindowManager.INVALID_WINDOW
_INDEX, |
166 manager.getIndexForWindow(activity0)); | 182 manager.getIndexForWindow(activity0)); |
167 } | 183 } |
168 | 184 |
169 /** | 185 /** |
170 * Test that an {@link Activity} requesting an index that was previously ass
igned to a destroyed | 186 * Test that an {@link Activity} requesting an index that was previously ass
igned to a destroyed |
171 * {@link Activity} can take that {@link TabModelSelector}. | 187 * {@link Activity} can take that {@link TabModelSelector}. |
172 */ | 188 */ |
| 189 @Test |
173 @SmallTest | 190 @SmallTest |
174 @Feature({"Multiwindow"}) | 191 @Feature({"Multiwindow"}) |
175 @UiThreadTest | 192 @UiThreadTest |
176 public void testActivityDeathLetsModelReassign() { | 193 public void testActivityDeathLetsModelReassign() { |
177 final TabWindowManager manager = TabWindowManager.getInstance(); | 194 final TabWindowManager manager = TabWindowManager.getInstance(); |
178 | 195 |
179 ChromeActivity activity0 = buildActivity(); | 196 ChromeActivity activity0 = buildActivity(); |
180 TabModelSelector selector0 = requestSelector(activity0, 0); | 197 TabModelSelector selector0 = requestSelector(activity0, 0); |
181 | 198 |
182 assertNotNull("Was not able to build the TabModelSelector", selector0); | 199 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor0); |
183 assertEquals("Unexpected model index", 0, manager.getIndexForWindow(acti
vity0)); | 200 Assert.assertEquals("Unexpected model index", 0, manager.getIndexForWind
ow(activity0)); |
184 | 201 |
185 ApplicationStatus.onStateChangeForTesting(activity0, ActivityState.DESTR
OYED); | 202 ApplicationStatus.onStateChangeForTesting(activity0, ActivityState.DESTR
OYED); |
186 | 203 |
187 assertEquals("Still found model", TabWindowManager.INVALID_WINDOW_INDEX, | 204 Assert.assertEquals("Still found model", TabWindowManager.INVALID_WINDOW
_INDEX, |
188 manager.getIndexForWindow(activity0)); | 205 manager.getIndexForWindow(activity0)); |
189 | 206 |
190 ChromeActivity activity1 = buildActivity(); | 207 ChromeActivity activity1 = buildActivity(); |
191 TabModelSelector selector1 = requestSelector(activity1, 0); | 208 TabModelSelector selector1 = requestSelector(activity1, 0); |
192 | 209 |
193 assertNotNull("Was not able to build the TabModelSelector", selector1); | 210 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor1); |
194 assertEquals("Unexpected model index", 0, manager.getIndexForWindow(acti
vity1)); | 211 Assert.assertEquals("Unexpected model index", 0, manager.getIndexForWind
ow(activity1)); |
195 } | 212 } |
196 | 213 |
197 /** | 214 /** |
198 * Test that an {@link Activity} requesting an index that was previously ass
igned to a destroyed | 215 * Test that an {@link Activity} requesting an index that was previously ass
igned to a destroyed |
199 * {@link Activity} can take that {@link TabModelSelector} when there are ot
her | 216 * {@link Activity} can take that {@link TabModelSelector} when there are ot
her |
200 * {@link Activity}s assigned {@link TabModelSelector}s. | 217 * {@link Activity}s assigned {@link TabModelSelector}s. |
201 */ | 218 */ |
| 219 @Test |
202 @SmallTest | 220 @SmallTest |
203 @Feature({"Multiwindow"}) | 221 @Feature({"Multiwindow"}) |
204 @UiThreadTest | 222 @UiThreadTest |
205 public void testActivityDeathWithMultipleActivities() { | 223 public void testActivityDeathWithMultipleActivities() { |
206 assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANEOUS_SEL
ECTORS >= 2); | 224 Assert.assertTrue("Not enough selectors", TabWindowManager.MAX_SIMULTANE
OUS_SELECTORS >= 2); |
207 | 225 |
208 final TabWindowManager manager = TabWindowManager.getInstance(); | 226 final TabWindowManager manager = TabWindowManager.getInstance(); |
209 | 227 |
210 ChromeActivity activity0 = buildActivity(); | 228 ChromeActivity activity0 = buildActivity(); |
211 ChromeActivity activity1 = buildActivity(); | 229 ChromeActivity activity1 = buildActivity(); |
212 TabModelSelector selector0 = requestSelector(activity0, 0); | 230 TabModelSelector selector0 = requestSelector(activity0, 0); |
213 TabModelSelector selector1 = requestSelector(activity1, 1); | 231 TabModelSelector selector1 = requestSelector(activity1, 1); |
214 | 232 |
215 assertNotNull("Was not able to build the TabModelSelector", selector0); | 233 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor0); |
216 assertNotNull("Was not able to build the TabModelSelector", selector1); | 234 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor1); |
217 assertEquals("Unexpected model index", 0, manager.getIndexForWindow(acti
vity0)); | 235 Assert.assertEquals("Unexpected model index", 0, manager.getIndexForWind
ow(activity0)); |
218 assertEquals("Unexpected model index", 1, manager.getIndexForWindow(acti
vity1)); | 236 Assert.assertEquals("Unexpected model index", 1, manager.getIndexForWind
ow(activity1)); |
219 | 237 |
220 ApplicationStatus.onStateChangeForTesting(activity1, ActivityState.DESTR
OYED); | 238 ApplicationStatus.onStateChangeForTesting(activity1, ActivityState.DESTR
OYED); |
221 | 239 |
222 assertEquals("Still found model", TabWindowManager.INVALID_WINDOW_INDEX, | 240 Assert.assertEquals("Still found model", TabWindowManager.INVALID_WINDOW
_INDEX, |
223 manager.getIndexForWindow(activity1)); | 241 manager.getIndexForWindow(activity1)); |
224 | 242 |
225 ChromeActivity activity2 = buildActivity(); | 243 ChromeActivity activity2 = buildActivity(); |
226 TabModelSelector selector2 = requestSelector(activity2, 1); | 244 TabModelSelector selector2 = requestSelector(activity2, 1); |
227 | 245 |
228 assertNotNull("Was not able to build the TabModelSelector", selector2); | 246 Assert.assertNotNull("Was not able to build the TabModelSelector", selec
tor2); |
229 assertEquals("Unexpected model index", 0, manager.getIndexForWindow(acti
vity0)); | 247 Assert.assertEquals("Unexpected model index", 0, manager.getIndexForWind
ow(activity0)); |
230 assertEquals("Unexpected model index", 1, manager.getIndexForWindow(acti
vity2)); | 248 Assert.assertEquals("Unexpected model index", 1, manager.getIndexForWind
ow(activity2)); |
231 } | 249 } |
232 | 250 |
233 /** | 251 /** |
234 * Tests that tabExistsInAnySelector() functions properly. | 252 * Tests that tabExistsInAnySelector() functions properly. |
235 */ | 253 */ |
| 254 @Test |
236 @SmallTest | 255 @SmallTest |
237 @Feature({"Multiwindow"}) | 256 @Feature({"Multiwindow"}) |
238 @UiThreadTest | 257 @UiThreadTest |
239 public void testTabExistsInAnySelector() { | 258 public void testTabExistsInAnySelector() { |
240 final TabWindowManager manager = TabWindowManager.getInstance(); | 259 final TabWindowManager manager = TabWindowManager.getInstance(); |
241 | 260 |
242 ChromeActivity activity0 = buildActivity(); | 261 ChromeActivity activity0 = buildActivity(); |
243 ChromeActivity activity1 = buildActivity(); | 262 ChromeActivity activity1 = buildActivity(); |
244 MockTabModelSelector selector0 = requestSelector(activity0, 0); | 263 MockTabModelSelector selector0 = requestSelector(activity0, 0); |
245 MockTabModelSelector selector1 = requestSelector(activity1, 1); | 264 MockTabModelSelector selector1 = requestSelector(activity1, 1); |
246 Tab tab1 = selector0.addMockTab(); | 265 Tab tab1 = selector0.addMockTab(); |
247 Tab tab2 = selector1.addMockIncognitoTab(); | 266 Tab tab2 = selector1.addMockIncognitoTab(); |
248 | 267 |
249 assertFalse(manager.tabExistsInAnySelector(tab1.getId() - 1)); | 268 Assert.assertFalse(manager.tabExistsInAnySelector(tab1.getId() - 1)); |
250 assertTrue(manager.tabExistsInAnySelector(tab1.getId())); | 269 Assert.assertTrue(manager.tabExistsInAnySelector(tab1.getId())); |
251 assertTrue(manager.tabExistsInAnySelector(tab2.getId())); | 270 Assert.assertTrue(manager.tabExistsInAnySelector(tab2.getId())); |
252 assertFalse(manager.tabExistsInAnySelector(tab2.getId() + 1)); | 271 Assert.assertFalse(manager.tabExistsInAnySelector(tab2.getId() + 1)); |
253 | 272 |
254 AsyncTabParamsManager.getAsyncTabParams().clear(); | 273 AsyncTabParamsManager.getAsyncTabParams().clear(); |
255 final int asyncTabId = 123; | 274 final int asyncTabId = 123; |
256 final TabReparentingParams dummyParams = | 275 final TabReparentingParams dummyParams = |
257 new TabReparentingParams(new Tab(0, false, null), null, null); | 276 new TabReparentingParams(new Tab(0, false, null), null, null); |
258 assertFalse(manager.tabExistsInAnySelector(asyncTabId)); | 277 Assert.assertFalse(manager.tabExistsInAnySelector(asyncTabId)); |
259 AsyncTabParamsManager.add(asyncTabId, dummyParams); | 278 AsyncTabParamsManager.add(asyncTabId, dummyParams); |
260 try { | 279 try { |
261 assertTrue(manager.tabExistsInAnySelector(asyncTabId)); | 280 Assert.assertTrue(manager.tabExistsInAnySelector(asyncTabId)); |
262 } finally { | 281 } finally { |
263 AsyncTabParamsManager.getAsyncTabParams().clear(); | 282 AsyncTabParamsManager.getAsyncTabParams().clear(); |
264 } | 283 } |
265 } | 284 } |
266 | 285 |
267 /** | 286 /** |
268 * Tests that getTabById() functions properly. | 287 * Tests that getTabById() functions properly. |
269 */ | 288 */ |
| 289 @Test |
270 @SmallTest | 290 @SmallTest |
271 @Feature({"Multiwindow"}) | 291 @Feature({"Multiwindow"}) |
272 @UiThreadTest | 292 @UiThreadTest |
273 public void testGetTabById() { | 293 public void testGetTabById() { |
274 final TabWindowManager manager = TabWindowManager.getInstance(); | 294 final TabWindowManager manager = TabWindowManager.getInstance(); |
275 | 295 |
276 ChromeActivity activity0 = buildActivity(); | 296 ChromeActivity activity0 = buildActivity(); |
277 ChromeActivity activity1 = buildActivity(); | 297 ChromeActivity activity1 = buildActivity(); |
278 MockTabModelSelector selector0 = requestSelector(activity0, 0); | 298 MockTabModelSelector selector0 = requestSelector(activity0, 0); |
279 MockTabModelSelector selector1 = requestSelector(activity1, 1); | 299 MockTabModelSelector selector1 = requestSelector(activity1, 1); |
280 Tab tab1 = selector0.addMockTab(); | 300 Tab tab1 = selector0.addMockTab(); |
281 Tab tab2 = selector1.addMockIncognitoTab(); | 301 Tab tab2 = selector1.addMockIncognitoTab(); |
282 | 302 |
283 assertNull(manager.getTabById(tab1.getId() - 1)); | 303 Assert.assertNull(manager.getTabById(tab1.getId() - 1)); |
284 assertNotNull(manager.getTabById(tab1.getId())); | 304 Assert.assertNotNull(manager.getTabById(tab1.getId())); |
285 assertNotNull(manager.getTabById(tab2.getId())); | 305 Assert.assertNotNull(manager.getTabById(tab2.getId())); |
286 assertNull(manager.getTabById(tab2.getId() + 1)); | 306 Assert.assertNull(manager.getTabById(tab2.getId() + 1)); |
287 | 307 |
288 AsyncTabParamsManager.getAsyncTabParams().clear(); | 308 AsyncTabParamsManager.getAsyncTabParams().clear(); |
289 final int asyncTabId = 123; | 309 final int asyncTabId = 123; |
290 final TabReparentingParams dummyParams = | 310 final TabReparentingParams dummyParams = |
291 new TabReparentingParams(new Tab(0, false, null), null, null); | 311 new TabReparentingParams(new Tab(0, false, null), null, null); |
292 assertNull(manager.getTabById(asyncTabId)); | 312 Assert.assertNull(manager.getTabById(asyncTabId)); |
293 AsyncTabParamsManager.add(asyncTabId, dummyParams); | 313 AsyncTabParamsManager.add(asyncTabId, dummyParams); |
294 try { | 314 try { |
295 assertNotNull(manager.getTabById(asyncTabId)); | 315 Assert.assertNotNull(manager.getTabById(asyncTabId)); |
296 } finally { | 316 } finally { |
297 AsyncTabParamsManager.getAsyncTabParams().clear(); | 317 AsyncTabParamsManager.getAsyncTabParams().clear(); |
298 } | 318 } |
299 } | 319 } |
300 } | 320 } |
OLD | NEW |