Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(356)

Side by Side Diff: ios/chrome/browser/metrics/tab_usage_recorder_egtest.mm

Issue 2798773002: Create ChromeEarlGrey waitForWebViewContainingText. (Closed)
Patch Set: review comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "base/mac/bind_objc_block.h" 5 #include "base/mac/bind_objc_block.h"
6 #include "base/memory/ptr_util.h" 6 #include "base/memory/ptr_util.h"
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/strings/sys_string_conversions.h" 8 #include "base/strings/sys_string_conversions.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #import "base/test/ios/wait_util.h" 10 #import "base/test/ios/wait_util.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 Wait(matcher, name); 84 Wait(matcher, name);
85 [[EarlGrey selectElementWithMatcher:matcher] performAction:grey_tap()]; 85 [[EarlGrey selectElementWithMatcher:matcher] performAction:grey_tap()];
86 } 86 }
87 87
88 // Creates a new main tab and load |url|. Wait until |word| is visible on the 88 // Creates a new main tab and load |url|. Wait until |word| is visible on the
89 // page. 89 // page.
90 void NewMainTabWithURL(const GURL& url, const std::string& word) { 90 void NewMainTabWithURL(const GURL& url, const std::string& word) {
91 int number_of_tabs = chrome_test_util::GetMainTabCount(); 91 int number_of_tabs = chrome_test_util::GetMainTabCount();
92 chrome_test_util::OpenNewTab(); 92 chrome_test_util::OpenNewTab();
93 [ChromeEarlGrey loadURL:url]; 93 [ChromeEarlGrey loadURL:url];
94 [[EarlGrey 94 [ChromeEarlGrey waitForWebViewContainingText:word];
95 selectElementWithMatcher:chrome_test_util::WebViewContainingText(word)]
96 assertWithMatcher:grey_notNil()];
97 chrome_test_util::AssertMainTabCount(number_of_tabs + 1); 95 chrome_test_util::AssertMainTabCount(number_of_tabs + 1);
98 } 96 }
99 97
100 // Opens 2 new tabs with different URLs. 98 // Opens 2 new tabs with different URLs.
101 void OpenTwoTabs() { 99 void OpenTwoTabs() {
102 chrome_test_util::CloseAllTabsInCurrentMode(); 100 chrome_test_util::CloseAllTabsInCurrentMode();
103 101
104 const GURL url1 = web::test::HttpServer::MakeUrl(kTestUrl1); 102 const GURL url1 = web::test::HttpServer::MakeUrl(kTestUrl1);
105 const GURL url2 = web::test::HttpServer::MakeUrl(kTestUrl2); 103 const GURL url2 = web::test::HttpServer::MakeUrl(kTestUrl2);
106 NewMainTabWithURL(url1, kURL1FirstWord); 104 NewMainTabWithURL(url1, kURL1FirstWord);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 histogramTester.ExpectUniqueSample( 196 histogramTester.ExpectUniqueSample(
199 kSelectedTabHistogramName, TabUsageRecorder::IN_MEMORY, 1, failureBlock); 197 kSelectedTabHistogramName, TabUsageRecorder::IN_MEMORY, 1, failureBlock);
200 198
201 // Evict the tab. 199 // Evict the tab.
202 OpenNewIncognitoTabUsingUIAndEvictMainTabs(); 200 OpenNewIncognitoTabUsingUIAndEvictMainTabs();
203 GREYAssertTrue(chrome_test_util::IsIncognitoMode(), 201 GREYAssertTrue(chrome_test_util::IsIncognitoMode(),
204 @"Failed to switch to incognito mode"); 202 @"Failed to switch to incognito mode");
205 203
206 // Switch back to the normal tabs. Should be on tab one. 204 // Switch back to the normal tabs. Should be on tab one.
207 SwitchToNormalMode(); 205 SwitchToNormalMode();
208 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 206 [ChromeEarlGrey waitForWebViewContainingText:kURL1FirstWord];
209 kURL1FirstWord)]
210 assertWithMatcher:grey_notNil()];
211 207
212 histogramTester.ExpectTotalCount(kSelectedTabHistogramName, 2, failureBlock); 208 histogramTester.ExpectTotalCount(kSelectedTabHistogramName, 2, failureBlock);
213 histogramTester.ExpectBucketCount(kSelectedTabHistogramName, 209 histogramTester.ExpectBucketCount(kSelectedTabHistogramName,
214 TabUsageRecorder::EVICTED, 1, failureBlock); 210 TabUsageRecorder::EVICTED, 1, failureBlock);
215 } 211 }
216 212
217 // Verifies the UMA metric for page loads before a tab eviction by loading 213 // Verifies the UMA metric for page loads before a tab eviction by loading
218 // some tabs, forcing a tab eviction, then checking the histogram. 214 // some tabs, forcing a tab eviction, then checking the histogram.
219 - (void)testPageLoadCountBeforeEvictedTab { 215 - (void)testPageLoadCountBeforeEvictedTab {
220 web::test::SetUpFileBasedHttpServer(); 216 web::test::SetUpFileBasedHttpServer();
221 chrome_test_util::HistogramTester histogramTester; 217 chrome_test_util::HistogramTester histogramTester;
222 ResetTabUsageRecorder(); 218 ResetTabUsageRecorder();
223 const GURL url1 = web::test::HttpServer::MakeUrl(kTestUrl1); 219 const GURL url1 = web::test::HttpServer::MakeUrl(kTestUrl1);
224 FailureBlock failureBlock = ^(NSString* error) { 220 FailureBlock failureBlock = ^(NSString* error) {
225 GREYFail(error); 221 GREYFail(error);
226 }; 222 };
227 223
228 // This test opens three tabs. 224 // This test opens three tabs.
229 const int numberOfTabs = 3; 225 const int numberOfTabs = 3;
230 chrome_test_util::CloseAllTabsInCurrentMode(); 226 chrome_test_util::CloseAllTabsInCurrentMode();
231 // Open three tabs with http:// urls. 227 // Open three tabs with http:// urls.
232 for (NSUInteger i = 0; i < numberOfTabs; i++) { 228 for (NSUInteger i = 0; i < numberOfTabs; i++) {
233 chrome_test_util::OpenNewTab(); 229 chrome_test_util::OpenNewTab();
234 [ChromeEarlGrey loadURL:url1]; 230 [ChromeEarlGrey loadURL:url1];
235 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 231 [ChromeEarlGrey waitForWebViewContainingText:kURL1FirstWord];
236 kURL1FirstWord)]
237 assertWithMatcher:grey_notNil()];
238 } 232 }
239 chrome_test_util::AssertMainTabCount(numberOfTabs); 233 chrome_test_util::AssertMainTabCount(numberOfTabs);
240 234
241 // Switch between the tabs. They are currently in memory. 235 // Switch between the tabs. They are currently in memory.
242 chrome_test_util::SelectTabAtIndexInCurrentMode(0); 236 chrome_test_util::SelectTabAtIndexInCurrentMode(0);
243 237
244 // Verify that no page-load count has been recorded. 238 // Verify that no page-load count has been recorded.
245 histogramTester.ExpectTotalCount(kPageLoadsBeforeEvictedTabSelected, 0, 239 histogramTester.ExpectTotalCount(kPageLoadsBeforeEvictedTabSelected, 0,
246 failureBlock); 240 failureBlock);
247 241
248 // Reload each tab. 242 // Reload each tab.
249 for (NSUInteger i = 0; i < numberOfTabs; i++) { 243 for (NSUInteger i = 0; i < numberOfTabs; i++) {
250 chrome_test_util::SelectTabAtIndexInCurrentMode(i); 244 chrome_test_util::SelectTabAtIndexInCurrentMode(i);
251 // Clear the page so that we can check when page reload is complete. 245 // Clear the page so that we can check when page reload is complete.
252 __block bool finished = false; 246 __block bool finished = false;
253 chrome_test_util::GetCurrentWebState()->ExecuteJavaScript( 247 chrome_test_util::GetCurrentWebState()->ExecuteJavaScript(
254 base::UTF8ToUTF16(kClearPageScript), 248 base::UTF8ToUTF16(kClearPageScript),
255 base::BindBlockArc(^(const base::Value*) { 249 base::BindBlockArc(^(const base::Value*) {
256 finished = true; 250 finished = true;
257 })); 251 }));
258 252
259 GREYAssert(testing::WaitUntilConditionOrTimeout(1.0, 253 GREYAssert(testing::WaitUntilConditionOrTimeout(1.0,
260 ^{ 254 ^{
261 return finished; 255 return finished;
262 }), 256 }),
263 @"JavaScript to reload each tab did not finish"); 257 @"JavaScript to reload each tab did not finish");
264 [ChromeEarlGreyUI reload]; 258 [ChromeEarlGreyUI reload];
265 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 259 [ChromeEarlGrey waitForWebViewContainingText:kURL1FirstWord];
266 kURL1FirstWord)]
267 assertWithMatcher:grey_notNil()];
268 } 260 }
269 261
270 // Evict the tab. Create a dummy tab so that switching back to normal mode 262 // Evict the tab. Create a dummy tab so that switching back to normal mode
271 // does not trigger a reload immediatly. 263 // does not trigger a reload immediatly.
272 chrome_test_util::OpenNewTab(); 264 chrome_test_util::OpenNewTab();
273 OpenNewIncognitoTabUsingUIAndEvictMainTabs(); 265 OpenNewIncognitoTabUsingUIAndEvictMainTabs();
274 chrome_test_util::AssertIncognitoTabCount(1); 266 chrome_test_util::AssertIncognitoTabCount(1);
275 267
276 // Switch back to the normal tabs. Should be on tab one. 268 // Switch back to the normal tabs. Should be on tab one.
277 SwitchToNormalMode(); 269 SwitchToNormalMode();
278 chrome_test_util::SelectTabAtIndexInCurrentMode(0); 270 chrome_test_util::SelectTabAtIndexInCurrentMode(0);
279 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 271 [ChromeEarlGrey waitForWebViewContainingText:kURL1FirstWord];
280 kURL1FirstWord)]
281 assertWithMatcher:grey_notNil()];
282 272
283 // Verify that one page-load count has been recorded. It should contain two 273 // Verify that one page-load count has been recorded. It should contain two
284 // page loads for each tab created. 274 // page loads for each tab created.
285 histogramTester.ExpectTotalCount(kPageLoadsBeforeEvictedTabSelected, 1, 275 histogramTester.ExpectTotalCount(kPageLoadsBeforeEvictedTabSelected, 1,
286 failureBlock); 276 failureBlock);
287 277
288 std::unique_ptr<base::HistogramSamples> samples = 278 std::unique_ptr<base::HistogramSamples> samples =
289 histogramTester.GetHistogramSamplesSinceCreation( 279 histogramTester.GetHistogramSamplesSinceCreation(
290 kPageLoadsBeforeEvictedTabSelected); 280 kPageLoadsBeforeEvictedTabSelected);
291 int sampleSum = samples ? samples->sum() : 0; 281 int sampleSum = samples ? samples->sum() : 0;
(...skipping 16 matching lines...) Expand all
308 GREYAssertTrue(chrome_test_util::SetCurrentTabsToBeColdStartTabs(), 298 GREYAssertTrue(chrome_test_util::SetCurrentTabsToBeColdStartTabs(),
309 @"Fail to state tabs as cold start tabs"); 299 @"Fail to state tabs as cold start tabs");
310 300
311 // Open two incognito tabs with urls, clearing normal tabs from memory. 301 // Open two incognito tabs with urls, clearing normal tabs from memory.
312 OpenNewIncognitoTabUsingUIAndEvictMainTabs(); 302 OpenNewIncognitoTabUsingUIAndEvictMainTabs();
313 OpenNewIncognitoTabUsingUIAndEvictMainTabs(); 303 OpenNewIncognitoTabUsingUIAndEvictMainTabs();
314 chrome_test_util::AssertIncognitoTabCount(2); 304 chrome_test_util::AssertIncognitoTabCount(2);
315 305
316 // Switch back to the normal tabs. 306 // Switch back to the normal tabs.
317 SwitchToNormalMode(); 307 SwitchToNormalMode();
318 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 308 [ChromeEarlGrey waitForWebViewContainingText:kURL2FirstWord];
319 kURL2FirstWord)]
320 assertWithMatcher:grey_notNil()];
321 309
322 // Select the other one so it also reloads. 310 // Select the other one so it also reloads.
323 chrome_test_util::SelectTabAtIndexInCurrentMode(0); 311 chrome_test_util::SelectTabAtIndexInCurrentMode(0);
324 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 312 [ChromeEarlGrey waitForWebViewContainingText:kURL1FirstWord];
325 kURL1FirstWord)]
326 assertWithMatcher:grey_notNil()];
327
328 FailureBlock failureBlock = ^(NSString* error) { 313 FailureBlock failureBlock = ^(NSString* error) {
329 GREYFail(error); 314 GREYFail(error);
330 }; 315 };
331 // Make sure that one of the 2 tab loads (excluding the selected tab) is 316 // Make sure that one of the 2 tab loads (excluding the selected tab) is
332 // counted as a cold start eviction. 317 // counted as a cold start eviction.
333 histogramTester.ExpectBucketCount(kSelectedTabHistogramName, 318 histogramTester.ExpectBucketCount(kSelectedTabHistogramName,
334 TabUsageRecorder::EVICTED_DUE_TO_COLD_START, 319 TabUsageRecorder::EVICTED_DUE_TO_COLD_START,
335 1, failureBlock); 320 1, failureBlock);
336 321
337 histogramTester.ExpectBucketCount( 322 histogramTester.ExpectBucketCount(
338 kSelectedTabHistogramName, TabUsageRecorder::IN_MEMORY, 0, failureBlock); 323 kSelectedTabHistogramName, TabUsageRecorder::IN_MEMORY, 0, failureBlock);
339 // Re-select the same tab and make sure it is not counted again as evicted. 324 // Re-select the same tab and make sure it is not counted again as evicted.
340 chrome_test_util::SelectTabAtIndexInCurrentMode(1); 325 chrome_test_util::SelectTabAtIndexInCurrentMode(1);
341 chrome_test_util::SelectTabAtIndexInCurrentMode(0); 326 chrome_test_util::SelectTabAtIndexInCurrentMode(0);
342 327
343 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 328 [ChromeEarlGrey waitForWebViewContainingText:kURL1FirstWord];
344 kURL1FirstWord)]
345 assertWithMatcher:grey_notNil()];
346 histogramTester.ExpectBucketCount(kSelectedTabHistogramName, 329 histogramTester.ExpectBucketCount(kSelectedTabHistogramName,
347 TabUsageRecorder::EVICTED_DUE_TO_COLD_START, 330 TabUsageRecorder::EVICTED_DUE_TO_COLD_START,
348 1, failureBlock); 331 1, failureBlock);
349 332
350 histogramTester.ExpectBucketCount( 333 histogramTester.ExpectBucketCount(
351 kSelectedTabHistogramName, TabUsageRecorder::IN_MEMORY, 2, failureBlock); 334 kSelectedTabHistogramName, TabUsageRecorder::IN_MEMORY, 2, failureBlock);
352 } 335 }
353 336
354 // Tests that tabs reloads after backgrounding and eviction. 337 // Tests that tabs reloads after backgrounding and eviction.
355 - (void)testBackgroundingReloadCount { 338 - (void)testBackgroundingReloadCount {
(...skipping 13 matching lines...) Expand all
369 @"Fail to simulate tab backgrounding."); 352 @"Fail to simulate tab backgrounding.");
370 353
371 // Open incognito and clear normal tabs from memory. 354 // Open incognito and clear normal tabs from memory.
372 OpenNewIncognitoTabUsingUIAndEvictMainTabs(); 355 OpenNewIncognitoTabUsingUIAndEvictMainTabs();
373 GREYAssertTrue(chrome_test_util::IsIncognitoMode(), 356 GREYAssertTrue(chrome_test_util::IsIncognitoMode(),
374 @"Failed to switch to incognito mode"); 357 @"Failed to switch to incognito mode");
375 histogramTester.ExpectTotalCount(kEvictedTabReloadTime, 0, failureBlock); 358 histogramTester.ExpectTotalCount(kEvictedTabReloadTime, 0, failureBlock);
376 359
377 // Switch back to the normal tabs. 360 // Switch back to the normal tabs.
378 SwitchToNormalMode(); 361 SwitchToNormalMode();
379 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 362 [ChromeEarlGrey waitForWebViewContainingText:kURL2FirstWord];
380 kURL2FirstWord)]
381 assertWithMatcher:grey_notNil()];
382 363
383 const GURL url1 = web::test::HttpServer::MakeUrl(kTestUrl1); 364 const GURL url1 = web::test::HttpServer::MakeUrl(kTestUrl1);
384 const GURL url2 = web::test::HttpServer::MakeUrl(kTestUrl2); 365 const GURL url2 = web::test::HttpServer::MakeUrl(kTestUrl2);
385 [[EarlGrey 366 [[EarlGrey
386 selectElementWithMatcher:chrome_test_util::OmniboxText(url2.GetContent())] 367 selectElementWithMatcher:chrome_test_util::OmniboxText(url2.GetContent())]
387 assertWithMatcher:grey_notNil()]; 368 assertWithMatcher:grey_notNil()];
388 histogramTester.ExpectTotalCount(kEvictedTabReloadTime, 1, failureBlock); 369 histogramTester.ExpectTotalCount(kEvictedTabReloadTime, 1, failureBlock);
389 370
390 chrome_test_util::SelectTabAtIndexInCurrentMode(0); 371 chrome_test_util::SelectTabAtIndexInCurrentMode(0);
391 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 372 [ChromeEarlGrey waitForWebViewContainingText:kURL1FirstWord];
392 kURL1FirstWord)]
393 assertWithMatcher:grey_notNil()];
394 [[EarlGrey 373 [[EarlGrey
395 selectElementWithMatcher:chrome_test_util::OmniboxText(url1.GetContent())] 374 selectElementWithMatcher:chrome_test_util::OmniboxText(url1.GetContent())]
396 assertWithMatcher:grey_notNil()]; 375 assertWithMatcher:grey_notNil()];
397 histogramTester.ExpectTotalCount(kEvictedTabReloadTime, 2, failureBlock); 376 histogramTester.ExpectTotalCount(kEvictedTabReloadTime, 2, failureBlock);
398 } 377 }
399 378
400 // Verify correct recording of metrics when the reloading of an evicted tab 379 // Verify correct recording of metrics when the reloading of an evicted tab
401 // succeeds. 380 // succeeds.
402 - (void)testEvictedTabReloadSuccess { 381 - (void)testEvictedTabReloadSuccess {
403 web::test::SetUpFileBasedHttpServer(); 382 web::test::SetUpFileBasedHttpServer();
404 chrome_test_util::HistogramTester histogramTester; 383 chrome_test_util::HistogramTester histogramTester;
405 FailureBlock failureBlock = ^(NSString* error) { 384 FailureBlock failureBlock = ^(NSString* error) {
406 GREYFail(error); 385 GREYFail(error);
407 }; 386 };
408 387
409 GURL URL = web::test::HttpServer::MakeUrl(kTestUrl1); 388 GURL URL = web::test::HttpServer::MakeUrl(kTestUrl1);
410 NewMainTabWithURL(URL, kURL1FirstWord); 389 NewMainTabWithURL(URL, kURL1FirstWord);
411 OpenNewIncognitoTabUsingUIAndEvictMainTabs(); 390 OpenNewIncognitoTabUsingUIAndEvictMainTabs();
412 SwitchToNormalMode(); 391 SwitchToNormalMode();
413 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 392 [ChromeEarlGrey waitForWebViewContainingText:kURL1FirstWord];
414 kURL1FirstWord)]
415 assertWithMatcher:grey_notNil()];
416 393
417 histogramTester.ExpectUniqueSample(kEvictedTabReloadSuccessRate, 394 histogramTester.ExpectUniqueSample(kEvictedTabReloadSuccessRate,
418 TabUsageRecorder::LOAD_SUCCESS, 1, 395 TabUsageRecorder::LOAD_SUCCESS, 1,
419 failureBlock); 396 failureBlock);
420 histogramTester.ExpectUniqueSample(kDidUserWaitForEvictedTabReload, 397 histogramTester.ExpectUniqueSample(kDidUserWaitForEvictedTabReload,
421 TabUsageRecorder::USER_WAITED, 1, 398 TabUsageRecorder::USER_WAITED, 1,
422 failureBlock); 399 failureBlock);
423 histogramTester.ExpectTotalCount(kEvictedTabReloadTime, 1, failureBlock); 400 histogramTester.ExpectTotalCount(kEvictedTabReloadTime, 1, failureBlock);
424 } 401 }
425 402
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 [[GREYConfiguration sharedInstance] 504 [[GREYConfiguration sharedInstance]
528 setValue:@(NO) 505 setValue:@(NO)
529 forConfigKey:kGREYConfigKeySynchronizationEnabled]; 506 forConfigKey:kGREYConfigKeySynchronizationEnabled];
530 OpenSettingsMenuUnsynced(); 507 OpenSettingsMenuUnsynced();
531 OpenSettingsSubMenuUnsynced(IDS_OPTIONS_ADVANCED_SECTION_TITLE_PRIVACY); 508 OpenSettingsSubMenuUnsynced(IDS_OPTIONS_ADVANCED_SECTION_TITLE_PRIVACY);
532 Wait(grey_accessibilityID(kPrivacyCollectionViewId), 509 Wait(grey_accessibilityID(kPrivacyCollectionViewId),
533 @"Privacy settings view."); 510 @"Privacy settings view.");
534 511
535 WaitAndTap(chrome_test_util::NavigationBarDoneButton(), @"Close settings"); 512 WaitAndTap(chrome_test_util::NavigationBarDoneButton(), @"Close settings");
536 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; 513 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle];
537 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 514 [ChromeEarlGrey waitForWebViewContainingText:responses[slowURL]];
538 responses[slowURL])]
539 assertWithMatcher:grey_notNil()];
540 515
541 [[GREYConfiguration sharedInstance] 516 [[GREYConfiguration sharedInstance]
542 setValue:@(YES) 517 setValue:@(YES)
543 forConfigKey:kGREYConfigKeySynchronizationEnabled]; 518 forConfigKey:kGREYConfigKeySynchronizationEnabled];
544 519
545 histogramTester.ExpectBucketCount(kDidUserWaitForEvictedTabReload, 520 histogramTester.ExpectBucketCount(kDidUserWaitForEvictedTabReload,
546 TabUsageRecorder::USER_DID_NOT_WAIT, 0, 521 TabUsageRecorder::USER_DID_NOT_WAIT, 0,
547 failureBlock); 522 failureBlock);
548 histogramTester.ExpectBucketCount(kDidUserWaitForEvictedTabReload, 523 histogramTester.ExpectBucketCount(kDidUserWaitForEvictedTabReload,
549 TabUsageRecorder::USER_WAITED, 1, 524 TabUsageRecorder::USER_WAITED, 1,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 615
641 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText( 616 [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText(
642 destinationURL.GetContent())] 617 destinationURL.GetContent())]
643 assertWithMatcher:grey_notNil()]; 618 assertWithMatcher:grey_notNil()];
644 619
645 NSUInteger tabIndex = chrome_test_util::GetMainTabCount() - 1; 620 NSUInteger tabIndex = chrome_test_util::GetMainTabCount() - 1;
646 chrome_test_util::OpenNewTab(); 621 chrome_test_util::OpenNewTab();
647 OpenNewIncognitoTabUsingUIAndEvictMainTabs(); 622 OpenNewIncognitoTabUsingUIAndEvictMainTabs();
648 SwitchToNormalMode(); 623 SwitchToNormalMode();
649 chrome_test_util::SelectTabAtIndexInCurrentMode(tabIndex); 624 chrome_test_util::SelectTabAtIndexInCurrentMode(tabIndex);
650 [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewContainingText( 625 [ChromeEarlGrey waitForWebViewContainingText:"arrived"];
651 "arrived")]
652 assertWithMatcher:grey_notNil()];
653 626
654 FailureBlock failureBlock = ^(NSString* error) { 627 FailureBlock failureBlock = ^(NSString* error) {
655 GREYFail(error); 628 GREYFail(error);
656 }; 629 };
657 // Verify that one page-load count has been recorded. It should contain a 630 // Verify that one page-load count has been recorded. It should contain a
658 // sum of 1 - one sample with 1 page load. 631 // sum of 1 - one sample with 1 page load.
659 histogramTester.ExpectTotalCount(kPageLoadsBeforeEvictedTabSelected, 1, 632 histogramTester.ExpectTotalCount(kPageLoadsBeforeEvictedTabSelected, 1,
660 failureBlock); 633 failureBlock);
661 634
662 std::unique_ptr<base::HistogramSamples> samples = 635 std::unique_ptr<base::HistogramSamples> samples =
(...skipping 19 matching lines...) Expand all
682 responses[destinationURL] = "Whee!"; 655 responses[destinationURL] = "Whee!";
683 web::test::SetUpHttpServer(base::MakeUnique<HtmlResponseProvider>(responses)); 656 web::test::SetUpHttpServer(base::MakeUnique<HtmlResponseProvider>(responses));
684 chrome_test_util::HistogramTester histogramTester; 657 chrome_test_util::HistogramTester histogramTester;
685 ResetTabUsageRecorder(); 658 ResetTabUsageRecorder();
686 659
687 // Open a tab with a link to click. 660 // Open a tab with a link to click.
688 NewMainTabWithURL(initialURL, "link"); 661 NewMainTabWithURL(initialURL, "link");
689 // Click the link. 662 // Click the link.
690 chrome_test_util::TapWebViewElementWithId("link"); 663 chrome_test_util::TapWebViewElementWithId("link");
691 664
692 [[EarlGrey 665 [ChromeEarlGrey waitForWebViewContainingText:"Whee"];
693 selectElementWithMatcher:chrome_test_util::WebViewContainingText("Whee")]
694 assertWithMatcher:grey_notNil()];
695
696 NSUInteger tabIndex = chrome_test_util::GetMainTabCount() - 1; 666 NSUInteger tabIndex = chrome_test_util::GetMainTabCount() - 1;
697 chrome_test_util::OpenNewTab(); 667 chrome_test_util::OpenNewTab();
698 OpenNewIncognitoTabUsingUIAndEvictMainTabs(); 668 OpenNewIncognitoTabUsingUIAndEvictMainTabs();
699 SwitchToNormalMode(); 669 SwitchToNormalMode();
700 chrome_test_util::SelectTabAtIndexInCurrentMode(tabIndex); 670 chrome_test_util::SelectTabAtIndexInCurrentMode(tabIndex);
701 [[EarlGrey 671 [ChromeEarlGrey waitForWebViewContainingText:"Whee"];
702 selectElementWithMatcher:chrome_test_util::WebViewContainingText("Whee")]
703 assertWithMatcher:grey_notNil()];
704 672
705 // Verify that the page-load count has been recorded. It should contain a 673 // Verify that the page-load count has been recorded. It should contain a
706 // sum of 2 - one sample with 2 page loads. 674 // sum of 2 - one sample with 2 page loads.
707 std::unique_ptr<base::HistogramSamples> samples = 675 std::unique_ptr<base::HistogramSamples> samples =
708 histogramTester.GetHistogramSamplesSinceCreation( 676 histogramTester.GetHistogramSamplesSinceCreation(
709 kPageLoadsBeforeEvictedTabSelected); 677 kPageLoadsBeforeEvictedTabSelected);
710 int sampleSum = samples->sum(); 678 int sampleSum = samples->sum();
711 GREYAssertEqual(sampleSum, 2, @"Expected page loads is %d, actual %d.", 2, 679 GREYAssertEqual(sampleSum, 2, @"Expected page loads is %d, actual %d.", 2,
712 sampleSum); 680 sampleSum);
713 681
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 performAction:chrome_test_util::LongPressElementForContextMenu( 718 performAction:chrome_test_util::LongPressElementForContextMenu(
751 "link", true /* menu should appear */)]; 719 "link", true /* menu should appear */)];
752 720
753 [[EarlGrey selectElementWithMatcher:OpenLinkInNewTabButton()] 721 [[EarlGrey selectElementWithMatcher:OpenLinkInNewTabButton()]
754 performAction:grey_tap()]; 722 performAction:grey_tap()];
755 chrome_test_util::AssertMainTabCount(numberOfTabs + 1); 723 chrome_test_util::AssertMainTabCount(numberOfTabs + 1);
756 724
757 SelectTabUsingUI(base::SysUTF8ToNSString(destinationURL.GetContent())); 725 SelectTabUsingUI(base::SysUTF8ToNSString(destinationURL.GetContent()));
758 726
759 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; 727 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle];
760 [[EarlGrey 728 [ChromeEarlGrey waitForWebViewContainingText:"Whee"];
761 selectElementWithMatcher:chrome_test_util::WebViewContainingText("Whee")]
762 assertWithMatcher:grey_notNil()];
763 729
764 FailureBlock failureBlock = ^(NSString* error) { 730 FailureBlock failureBlock = ^(NSString* error) {
765 GREYFail(error); 731 GREYFail(error);
766 }; 732 };
767 histogramTester.ExpectTotalCount(kSelectedTabHistogramName, 1, failureBlock); 733 histogramTester.ExpectTotalCount(kSelectedTabHistogramName, 1, failureBlock);
768 histogramTester.ExpectBucketCount( 734 histogramTester.ExpectBucketCount(
769 kSelectedTabHistogramName, TabUsageRecorder::IN_MEMORY, 1, failureBlock); 735 kSelectedTabHistogramName, TabUsageRecorder::IN_MEMORY, 1, failureBlock);
770 } 736 }
771 737
772 // Tests that opening tabs from external app will not cause tab eviction. 738 // Tests that opening tabs from external app will not cause tab eviction.
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle]; 799 [[GREYUIThreadExecutor sharedInstance] drainUntilIdle];
834 } 800 }
835 // The deleted tabs are purged during foregrounding and backgrounding. 801 // The deleted tabs are purged during foregrounding and backgrounding.
836 chrome_test_util::SimulateTabsBackgrounding(); 802 chrome_test_util::SimulateTabsBackgrounding();
837 // Make sure |evicted_tabs_| purged the deleted tabs. 803 // Make sure |evicted_tabs_| purged the deleted tabs.
838 int evicted = chrome_test_util::GetEvictedMainTabCount(); 804 int evicted = chrome_test_util::GetEvictedMainTabCount();
839 GREYAssertEqual(evicted, 0, @"Check number of evicted tabs"); 805 GREYAssertEqual(evicted, 0, @"Check number of evicted tabs");
840 } 806 }
841 807
842 @end 808 @end
OLDNEW
« no previous file with comments | « ios/chrome/browser/context_menu/context_menu_egtest.mm ('k') | ios/chrome/browser/translate/translate_egtest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698