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; | 5 package org.chromium.chrome.browser; |
6 | 6 |
7 import android.preference.PreferenceScreen; | 7 import android.preference.PreferenceScreen; |
| 8 import android.support.test.InstrumentationRegistry; |
8 import android.support.test.filters.LargeTest; | 9 import android.support.test.filters.LargeTest; |
9 import android.support.test.filters.MediumTest; | 10 import android.support.test.filters.MediumTest; |
10 import android.util.JsonReader; | 11 import android.util.JsonReader; |
11 | 12 |
| 13 import org.junit.After; |
| 14 import org.junit.Assert; |
| 15 import org.junit.Before; |
| 16 import org.junit.Rule; |
| 17 import org.junit.Test; |
| 18 import org.junit.runner.RunWith; |
| 19 |
12 import org.chromium.base.ThreadUtils; | 20 import org.chromium.base.ThreadUtils; |
13 import org.chromium.base.test.util.CallbackHelper; | 21 import org.chromium.base.test.util.CallbackHelper; |
14 import org.chromium.base.test.util.CommandLineFlags; | 22 import org.chromium.base.test.util.CommandLineFlags; |
15 import org.chromium.base.test.util.DisabledTest; | 23 import org.chromium.base.test.util.DisabledTest; |
16 import org.chromium.base.test.util.Feature; | 24 import org.chromium.base.test.util.Feature; |
17 import org.chromium.base.test.util.RetryOnFailure; | 25 import org.chromium.base.test.util.RetryOnFailure; |
18 import org.chromium.chrome.browser.preferences.ButtonPreference; | 26 import org.chromium.chrome.browser.preferences.ButtonPreference; |
19 import org.chromium.chrome.browser.preferences.Preferences; | 27 import org.chromium.chrome.browser.preferences.Preferences; |
20 import org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataPreferen
ces; | 28 import org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataPreferen
ces; |
21 import org.chromium.chrome.browser.tab.EmptyTabObserver; | 29 import org.chromium.chrome.browser.tab.EmptyTabObserver; |
22 import org.chromium.chrome.browser.tab.Tab; | 30 import org.chromium.chrome.browser.tab.Tab; |
23 import org.chromium.chrome.browser.tab.TabObserver; | 31 import org.chromium.chrome.browser.tab.TabObserver; |
24 import org.chromium.chrome.test.ChromeActivityTestCaseBase; | 32 import org.chromium.chrome.test.ChromeActivityTestRule; |
| 33 import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
25 import org.chromium.chrome.test.util.ActivityUtils; | 34 import org.chromium.chrome.test.util.ActivityUtils; |
26 import org.chromium.content.browser.ContentViewCore; | 35 import org.chromium.content.browser.ContentViewCore; |
27 import org.chromium.content.browser.test.util.Criteria; | 36 import org.chromium.content.browser.test.util.Criteria; |
28 import org.chromium.content.browser.test.util.CriteriaHelper; | 37 import org.chromium.content.browser.test.util.CriteriaHelper; |
29 import org.chromium.content.browser.test.util.JavaScriptUtils; | 38 import org.chromium.content.browser.test.util.JavaScriptUtils; |
30 import org.chromium.net.test.EmbeddedTestServer; | 39 import org.chromium.net.test.EmbeddedTestServer; |
31 | 40 |
32 import java.io.IOException; | 41 import java.io.IOException; |
33 import java.io.StringReader; | 42 import java.io.StringReader; |
34 import java.util.Vector; | 43 import java.util.Vector; |
35 import java.util.concurrent.TimeoutException; | 44 import java.util.concurrent.TimeoutException; |
36 | 45 |
37 /** | 46 /** |
38 * UI Tests for the history page. | 47 * UI Tests for the history page. |
39 */ | 48 */ |
40 @CommandLineFlags.Add("disable-features=AndroidHistoryManager") | 49 @RunWith(ChromeJUnit4ClassRunner.class) |
41 public class HistoryUITest extends ChromeActivityTestCaseBase<ChromeActivity> { | 50 @CommandLineFlags.Add({"disable-features=AndroidHistoryManager", |
| 51 ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
| 52 ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG}) |
| 53 public class HistoryUITest { |
| 54 @Rule |
| 55 public ChromeActivityTestRule<ChromeActivity> mActivityTestRule = |
| 56 new ChromeActivityTestRule<>(ChromeActivity.class); |
| 57 |
42 private static final String HISTORY_URL = "chrome://history-frame/"; | 58 private static final String HISTORY_URL = "chrome://history-frame/"; |
43 | 59 |
44 private EmbeddedTestServer mTestServer; | 60 private EmbeddedTestServer mTestServer; |
45 | 61 |
46 public HistoryUITest() { | 62 @Before |
47 super(ChromeActivity.class); | 63 public void setUp() throws Exception { |
| 64 mActivityTestRule.startMainActivityOnBlankPage(); |
| 65 mTestServer = EmbeddedTestServer.createAndStartServer( |
| 66 InstrumentationRegistry.getInstrumentation().getContext()); |
48 } | 67 } |
49 | 68 |
50 @Override | 69 @After |
51 protected void setUp() throws Exception { | 70 public void tearDown() throws Exception { |
52 super.setUp(); | |
53 mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation
().getContext()); | |
54 } | |
55 | |
56 @Override | |
57 protected void tearDown() throws Exception { | |
58 mTestServer.stopAndDestroyServer(); | 71 mTestServer.stopAndDestroyServer(); |
59 super.tearDown(); | |
60 } | |
61 | |
62 @Override | |
63 public void startMainActivity() throws InterruptedException { | |
64 startMainActivityOnBlankPage(); | |
65 } | 72 } |
66 | 73 |
67 private static class HistoryItem { | 74 private static class HistoryItem { |
68 public final String url; | 75 public final String url; |
69 public final String title; | 76 public final String title; |
70 | 77 |
71 HistoryItem(String url, String title) { | 78 HistoryItem(String url, String title) { |
72 this.url = url; | 79 this.url = url; |
73 this.title = title; | 80 this.title = title; |
74 } | 81 } |
75 } | 82 } |
76 | 83 |
77 private HistoryItem[] getHistoryContents() throws InterruptedException, Time
outException { | 84 private HistoryItem[] getHistoryContents() throws InterruptedException, Time
outException { |
78 getInstrumentation().waitForIdleSync(); | 85 InstrumentationRegistry.getInstrumentation().waitForIdleSync(); |
79 String jsResults = runJavaScriptCodeInCurrentTab(new StringBuilder() | 86 String jsResults = mActivityTestRule.runJavaScriptCodeInCurrentTab( |
80 .append("var rawResults = document.querySelectorAll('.title');\n
") | 87 new StringBuilder() |
81 .append("var results = [];\n") | 88 .append("var rawResults = document.querySelectorAll('.ti
tle');\n") |
82 .append("for (i = 0; i < rawResults.length; ++i) {\n") | 89 .append("var results = [];\n") |
83 .append(" results.push([rawResults[i].childNodes[0].href,\n") | 90 .append("for (i = 0; i < rawResults.length; ++i) {\n") |
84 .append(" rawResults[i].childNodes[0].childNodes[0].textConte
nt]);\n") | 91 .append(" results.push([rawResults[i].childNodes[0].h
ref,\n") |
85 .append("}\n") | 92 .append(" rawResults[i].childNodes[0].childNodes[0].t
extContent]);\n") |
86 .append("results").toString()); | 93 .append("}\n") |
| 94 .append("results") |
| 95 .toString()); |
87 | 96 |
88 JsonReader jsonReader = new JsonReader(new StringReader(jsResults)); | 97 JsonReader jsonReader = new JsonReader(new StringReader(jsResults)); |
89 Vector<HistoryItem> results = new Vector<HistoryItem>(); | 98 Vector<HistoryItem> results = new Vector<HistoryItem>(); |
90 try { | 99 try { |
91 jsonReader.beginArray(); | 100 jsonReader.beginArray(); |
92 while (jsonReader.hasNext()) { | 101 while (jsonReader.hasNext()) { |
93 jsonReader.beginArray(); | 102 jsonReader.beginArray(); |
94 assertTrue(jsonReader.hasNext()); | 103 Assert.assertTrue(jsonReader.hasNext()); |
95 String url = jsonReader.nextString(); | 104 String url = jsonReader.nextString(); |
96 assertTrue(jsonReader.hasNext()); | 105 Assert.assertTrue(jsonReader.hasNext()); |
97 String title = jsonReader.nextString(); | 106 String title = jsonReader.nextString(); |
98 assertFalse(jsonReader.hasNext()); | 107 Assert.assertFalse(jsonReader.hasNext()); |
99 jsonReader.endArray(); | 108 jsonReader.endArray(); |
100 results.add(new HistoryItem(url, title)); | 109 results.add(new HistoryItem(url, title)); |
101 } | 110 } |
102 jsonReader.endArray(); | 111 jsonReader.endArray(); |
103 jsonReader.close(); | 112 jsonReader.close(); |
104 } catch (IOException ioe) { | 113 } catch (IOException ioe) { |
105 fail("Failed to evaluate JavaScript: " + jsResults + "\n" + ioe); | 114 Assert.fail("Failed to evaluate JavaScript: " + jsResults + "\n" + i
oe); |
106 } | 115 } |
107 | 116 |
108 HistoryItem[] history = new HistoryItem[results.size()]; | 117 HistoryItem[] history = new HistoryItem[results.size()]; |
109 results.toArray(history); | 118 results.toArray(history); |
110 return history; | 119 return history; |
111 } | 120 } |
112 | 121 |
113 private void removeSelectedHistoryEntryAtIndex(int index) | 122 private void removeSelectedHistoryEntryAtIndex(int index) |
114 throws InterruptedException, TimeoutException { | 123 throws InterruptedException, TimeoutException { |
115 runJavaScriptCodeInCurrentTab( | 124 mActivityTestRule.runJavaScriptCodeInCurrentTab( |
116 "document.getElementsByClassName('remove-entry')[" + index + "].
click();"); | 125 "document.getElementsByClassName('remove-entry')[" + index + "].
click();"); |
117 } | 126 } |
118 | 127 |
119 private int getHistoryLength(ContentViewCore cvc) | 128 private int getHistoryLength(ContentViewCore cvc) |
120 throws InterruptedException, TimeoutException { | 129 throws InterruptedException, TimeoutException { |
121 String numResultsString = JavaScriptUtils.executeJavaScriptAndWaitForRes
ult( | 130 String numResultsString = JavaScriptUtils.executeJavaScriptAndWaitForRes
ult( |
122 cvc.getWebContents(), "document.querySelectorAll('.entry').lengt
h"); | 131 cvc.getWebContents(), "document.querySelectorAll('.entry').lengt
h"); |
123 int numResults = Integer.parseInt(numResultsString); | 132 int numResults = Integer.parseInt(numResultsString); |
124 return numResults; | 133 return numResults; |
125 } | 134 } |
(...skipping 13 matching lines...) Expand all Loading... |
139 e.printStackTrace(); | 148 e.printStackTrace(); |
140 return false; | 149 return false; |
141 } catch (TimeoutException e) { | 150 } catch (TimeoutException e) { |
142 e.printStackTrace(); | 151 e.printStackTrace(); |
143 return false; | 152 return false; |
144 } | 153 } |
145 } | 154 } |
146 }); | 155 }); |
147 } | 156 } |
148 | 157 |
| 158 @Test |
149 @MediumTest | 159 @MediumTest |
150 @Feature({"History"}) | 160 @Feature({"History"}) |
151 @RetryOnFailure | 161 @RetryOnFailure |
152 public void testSearchHistory() throws InterruptedException, TimeoutExceptio
n { | 162 public void testSearchHistory() throws InterruptedException, TimeoutExceptio
n { |
153 // Introduce some entries in the history page. | 163 // Introduce some entries in the history page. |
154 loadUrl(mTestServer.getURL("/chrome/test/data/android/about.html")); | 164 mActivityTestRule.loadUrl(mTestServer.getURL("/chrome/test/data/android/
about.html")); |
155 loadUrl(mTestServer.getURL("/chrome/test/data/android/get_title_test.htm
l")); | 165 mActivityTestRule.loadUrl( |
156 loadUrl(HISTORY_URL); | 166 mTestServer.getURL("/chrome/test/data/android/get_title_test.htm
l")); |
157 waitForResultCount(getActivity().getCurrentContentViewCore(), 2); | 167 mActivityTestRule.loadUrl(HISTORY_URL); |
| 168 waitForResultCount(mActivityTestRule.getActivity().getCurrentContentView
Core(), 2); |
158 | 169 |
159 // Search for one of them. | 170 // Search for one of them. |
160 Tab tab = getActivity().getActivityTab(); | 171 Tab tab = mActivityTestRule.getActivity().getActivityTab(); |
161 final CallbackHelper loadCallback = new CallbackHelper(); | 172 final CallbackHelper loadCallback = new CallbackHelper(); |
162 TabObserver observer = new EmptyTabObserver() { | 173 TabObserver observer = new EmptyTabObserver() { |
163 @Override | 174 @Override |
164 public void onLoadStopped(Tab tab, boolean toDifferentDocument) { | 175 public void onLoadStopped(Tab tab, boolean toDifferentDocument) { |
165 if (tab.getUrl().startsWith(HISTORY_URL)) { | 176 if (tab.getUrl().startsWith(HISTORY_URL)) { |
166 loadCallback.notifyCalled(); | 177 loadCallback.notifyCalled(); |
167 } | 178 } |
168 } | 179 } |
169 }; | 180 }; |
170 tab.addObserver(observer); | 181 tab.addObserver(observer); |
171 runJavaScriptCodeInCurrentTab("historyView.setSearch('about')"); | 182 mActivityTestRule.runJavaScriptCodeInCurrentTab("historyView.setSearch('
about')"); |
172 loadCallback.waitForCallback(0); | 183 loadCallback.waitForCallback(0); |
173 waitForResultCount(getActivity().getCurrentContentViewCore(), 1); | 184 waitForResultCount(mActivityTestRule.getActivity().getCurrentContentView
Core(), 1); |
174 | 185 |
175 // Delete the search term. | 186 // Delete the search term. |
176 runJavaScriptCodeInCurrentTab("historyView.setSearch('')"); | 187 mActivityTestRule.runJavaScriptCodeInCurrentTab("historyView.setSearch('
')"); |
177 loadCallback.waitForCallback(1); | 188 loadCallback.waitForCallback(1); |
178 waitForResultCount(getActivity().getCurrentContentViewCore(), 2); | 189 waitForResultCount(mActivityTestRule.getActivity().getCurrentContentView
Core(), 2); |
179 tab.removeObserver(observer); | 190 tab.removeObserver(observer); |
180 } | 191 } |
181 | 192 |
182 // @LargeTest | 193 // @LargeTest |
183 // @Feature({"History"}) | 194 // @Feature({"History"}) |
| 195 @Test |
184 @DisabledTest | 196 @DisabledTest |
185 public void testRemovingEntries() throws InterruptedException, TimeoutExcept
ion { | 197 public void testRemovingEntries() throws InterruptedException, TimeoutExcept
ion { |
186 // Urls will be visited in reverse order to preserve the array ordering | 198 // Urls will be visited in reverse order to preserve the array ordering |
187 // in the history results. | 199 // in the history results. |
188 String[] testUrls = new String[] { | 200 String[] testUrls = new String[] { |
189 mTestServer.getURL("/chrome/test/data/android/google.html"), | 201 mTestServer.getURL("/chrome/test/data/android/google.html"), |
190 mTestServer.getURL("/chrome/test/data/android/about.html"), | 202 mTestServer.getURL("/chrome/test/data/android/about.html"), |
191 }; | 203 }; |
192 | 204 |
193 String[] testTitles = new String[testUrls.length]; | 205 String[] testTitles = new String[testUrls.length]; |
194 for (int i = testUrls.length - 1; i >= 0; --i) { | 206 for (int i = testUrls.length - 1; i >= 0; --i) { |
195 loadUrl(testUrls[i]); | 207 mActivityTestRule.loadUrl(testUrls[i]); |
196 testTitles[i] = getActivity().getActivityTab().getTitle(); | 208 testTitles[i] = mActivityTestRule.getActivity().getActivityTab().get
Title(); |
197 } | 209 } |
198 | 210 |
199 // Check that the history page contains the visited pages. | 211 // Check that the history page contains the visited pages. |
200 loadUrl(HISTORY_URL); | 212 mActivityTestRule.loadUrl(HISTORY_URL); |
201 waitForResultCount(getActivity().getCurrentContentViewCore(), 2); | 213 waitForResultCount(mActivityTestRule.getActivity().getCurrentContentView
Core(), 2); |
202 | 214 |
203 HistoryItem[] history = getHistoryContents(); | 215 HistoryItem[] history = getHistoryContents(); |
204 for (int i = 0; i < testUrls.length; ++i) { | 216 for (int i = 0; i < testUrls.length; ++i) { |
205 assertEquals(testUrls[i], history[i].url); | 217 Assert.assertEquals(testUrls[i], history[i].url); |
206 assertEquals(testTitles[i], history[i].title); | 218 Assert.assertEquals(testTitles[i], history[i].title); |
207 } | 219 } |
208 | 220 |
209 // Remove the first entry from history. | 221 // Remove the first entry from history. |
210 assertTrue(history.length >= 1); | 222 Assert.assertTrue(history.length >= 1); |
211 removeSelectedHistoryEntryAtIndex(0); | 223 removeSelectedHistoryEntryAtIndex(0); |
212 waitForResultCount(getActivity().getCurrentContentViewCore(), 1); | 224 waitForResultCount(mActivityTestRule.getActivity().getCurrentContentView
Core(), 1); |
213 | 225 |
214 // Check that now the first result is the second visited page. | 226 // Check that now the first result is the second visited page. |
215 history = getHistoryContents(); | 227 history = getHistoryContents(); |
216 assertEquals(testUrls[1], history[0].url); | 228 Assert.assertEquals(testUrls[1], history[0].url); |
217 assertEquals(testTitles[1], history[0].title); | 229 Assert.assertEquals(testTitles[1], history[0].title); |
218 } | 230 } |
219 | 231 |
| 232 @Test |
220 @LargeTest | 233 @LargeTest |
221 @Feature({"History"}) | 234 @Feature({"History"}) |
222 @RetryOnFailure | 235 @RetryOnFailure |
223 public void testClearBrowsingData() throws InterruptedException, TimeoutExce
ption { | 236 public void testClearBrowsingData() throws InterruptedException, TimeoutExce
ption { |
224 // Introduce some entries in the history page. | 237 // Introduce some entries in the history page. |
225 loadUrl(mTestServer.getURL("/chrome/test/data/android/google.html")); | 238 mActivityTestRule.loadUrl(mTestServer.getURL("/chrome/test/data/android/
google.html")); |
226 loadUrl(mTestServer.getURL("/chrome/test/data/android/about.html")); | 239 mActivityTestRule.loadUrl(mTestServer.getURL("/chrome/test/data/android/
about.html")); |
227 loadUrl(HISTORY_URL); | 240 mActivityTestRule.loadUrl(HISTORY_URL); |
228 waitForResultCount(getActivity().getCurrentContentViewCore(), 2); | 241 waitForResultCount(mActivityTestRule.getActivity().getCurrentContentView
Core(), 2); |
229 | 242 |
230 // Trigger cleaning up all the browsing data. JS finishing events will m
ake it synchronous | 243 // Trigger cleaning up all the browsing data. JS finishing events will m
ake it synchronous |
231 // to us. | 244 // to us. |
232 final Preferences prefActivity = ActivityUtils.waitForActivity( | 245 final Preferences prefActivity = ActivityUtils.waitForActivity( |
233 getInstrumentation(), Preferences.class, new Runnable() { | 246 InstrumentationRegistry.getInstrumentation(), Preferences.class,
new Runnable() { |
234 @Override | 247 @Override |
235 public void run() { | 248 public void run() { |
236 try { | 249 try { |
237 runJavaScriptCodeInCurrentTab("openClearBrowsingData
()"); | 250 mActivityTestRule.runJavaScriptCodeInCurrentTab( |
| 251 "openClearBrowsingData()"); |
238 } catch (InterruptedException e) { | 252 } catch (InterruptedException e) { |
239 fail("Exception occurred while attempting to open cl
ear browing data"); | 253 Assert.fail("Exception occurred while attempting to
open clear browing" |
| 254 + " data"); |
240 } catch (TimeoutException e) { | 255 } catch (TimeoutException e) { |
241 fail("Exception occurred while attempting to open cl
ear browing data"); | 256 Assert.fail("Exception occurred while attempting to
open clear browing" |
| 257 + " data"); |
242 } | 258 } |
243 } | 259 } |
244 }); | 260 }); |
245 assertNotNull("Could not find the preferences activity", prefActivity); | 261 Assert.assertNotNull("Could not find the preferences activity", prefActi
vity); |
246 | 262 |
247 final ClearBrowsingDataPreferences clearBrowsingFragment = | 263 final ClearBrowsingDataPreferences clearBrowsingFragment = |
248 (ClearBrowsingDataPreferences) prefActivity.getFragmentForTest()
; | 264 (ClearBrowsingDataPreferences) prefActivity.getFragmentForTest()
; |
249 assertNotNull("Could not find clear browsing data fragment", clearBrowsi
ngFragment); | 265 Assert.assertNotNull("Could not find clear browsing data fragment", clea
rBrowsingFragment); |
250 | 266 |
251 final ChromeActivity mainActivity = ActivityUtils.waitForActivity( | 267 final ChromeActivity mainActivity = ActivityUtils.waitForActivity( |
252 getInstrumentation(), getActivity().getClass(), new Runnable() { | 268 InstrumentationRegistry.getInstrumentation(), |
| 269 mActivityTestRule.getActivity().getClass(), new Runnable() { |
253 @Override | 270 @Override |
254 public void run() { | 271 public void run() { |
255 ThreadUtils.runOnUiThread(new Runnable() { | 272 ThreadUtils.runOnUiThread(new Runnable() { |
256 @Override | 273 @Override |
257 public void run() { | 274 public void run() { |
258 PreferenceScreen screen = | 275 PreferenceScreen screen = |
259 clearBrowsingFragment.getPreferenceScree
n(); | 276 clearBrowsingFragment.getPreferenceScree
n(); |
260 ButtonPreference clearButton = | 277 ButtonPreference clearButton = |
261 (ButtonPreference) screen.findPreference
( | 278 (ButtonPreference) screen.findPreference
( |
262 ClearBrowsingDataPreferences.PREF_
CLEAR_BUTTON); | 279 ClearBrowsingDataPreferences.PREF_
CLEAR_BUTTON); |
263 clearButton.getOnPreferenceClickListener().onPre
ferenceClick( | 280 clearButton.getOnPreferenceClickListener().onPre
ferenceClick( |
264 clearButton); | 281 clearButton); |
265 } | 282 } |
266 }); | 283 }); |
267 } | 284 } |
268 }); | 285 }); |
269 assertNotNull("Main never resumed", mainActivity); | 286 Assert.assertNotNull("Main never resumed", mainActivity); |
270 CriteriaHelper.pollUiThread(new Criteria("Main tab never restored") { | 287 CriteriaHelper.pollUiThread(new Criteria("Main tab never restored") { |
271 @Override | 288 @Override |
272 public boolean isSatisfied() { | 289 public boolean isSatisfied() { |
273 return !clearBrowsingFragment.isVisible() | 290 return !clearBrowsingFragment.isVisible() |
274 && mainActivity.getActivityTab() != null | 291 && mainActivity.getActivityTab() != null |
275 && !mainActivity.getActivityTab().isFrozen(); | 292 && !mainActivity.getActivityTab().isFrozen(); |
276 } | 293 } |
277 }); | 294 }); |
278 JavaScriptUtils.executeJavaScriptAndWaitForResult( | 295 JavaScriptUtils.executeJavaScriptAndWaitForResult( |
279 mainActivity.getCurrentContentViewCore().getWebContents(), "relo
adHistory()"); | 296 mainActivity.getCurrentContentViewCore().getWebContents(), "relo
adHistory()"); |
280 waitForResultCount(getActivity().getCurrentContentViewCore(), 0); | 297 waitForResultCount(mActivityTestRule.getActivity().getCurrentContentView
Core(), 0); |
281 } | 298 } |
282 } | 299 } |
OLD | NEW |