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

Side by Side Diff: chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc

Issue 2837873006: Re-enable formerly flaky tests for the PrerenderingOffliner. (Closed)
Patch Set: More comment clarification Created 3 years, 7 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/android/offline_pages/prerendering_offliner.h" 5 #include "chrome/browser/android/offline_pages/prerendering_offliner.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 } 250 }
251 251
252 void PrerenderingOfflinerTest::OnProgress(const SavePageRequest& request, 252 void PrerenderingOfflinerTest::OnProgress(const SavePageRequest& request,
253 int64_t bytes) {} 253 int64_t bytes) {}
254 254
255 void PrerenderingOfflinerTest::OnCancel(const SavePageRequest& request) { 255 void PrerenderingOfflinerTest::OnCancel(const SavePageRequest& request) {
256 DCHECK(!cancel_callback_called_); 256 DCHECK(!cancel_callback_called_);
257 cancel_callback_called_ = true; 257 cancel_callback_called_ = true;
258 } 258 }
259 259
260 TEST_F(PrerenderingOfflinerTest, DISABLED_LoadAndSaveBadUrl) { 260 TEST_F(PrerenderingOfflinerTest, LoadAndSaveBadUrl) {
261 base::Time creation_time = base::Time::Now(); 261 base::Time creation_time = base::Time::Now();
262 SavePageRequest request( 262 SavePageRequest request(
263 kRequestId, kFileUrl, kClientId, creation_time, kUserRequested); 263 kRequestId, kFileUrl, kClientId, creation_time, kUserRequested);
264 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(), 264 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(),
265 progress_callback())); 265 progress_callback()));
266 EXPECT_TRUE(loader()->IsIdle()); 266 EXPECT_TRUE(loader()->IsIdle());
267 } 267 }
268 268
269 TEST_F(PrerenderingOfflinerTest, DISABLED_LoadAndSavePrerenderingDisabled) { 269 TEST_F(PrerenderingOfflinerTest, LoadAndSavePrerenderingDisabled) {
270 base::Time creation_time = base::Time::Now(); 270 base::Time creation_time = base::Time::Now();
271 SavePageRequest request( 271 SavePageRequest request(
272 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 272 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
273 loader()->DisablePrerendering(); 273 loader()->DisablePrerendering();
274 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(), 274 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(),
275 progress_callback())); 275 progress_callback()));
276 EXPECT_TRUE(loader()->IsIdle()); 276 EXPECT_TRUE(loader()->IsIdle());
277 } 277 }
278 278
279 TEST_F(PrerenderingOfflinerTest, 279 TEST_F(PrerenderingOfflinerTest,
280 DISABLED_LoadAndSaveBlockThirdPartyCookiesForCustomTabs) { 280 LoadAndSaveBlockThirdPartyCookiesForCustomTabs) {
281 base::Time creation_time = base::Time::Now(); 281 base::Time creation_time = base::Time::Now();
282 ClientId custom_tabs_client_id("custom_tabs", "88"); 282 ClientId custom_tabs_client_id("custom_tabs", "88");
283 SavePageRequest request(kRequestId, kHttpUrl, custom_tabs_client_id, 283 SavePageRequest request(kRequestId, kHttpUrl, custom_tabs_client_id,
284 creation_time, kUserRequested); 284 creation_time, kUserRequested);
285 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true); 285 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
286 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(), 286 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(),
287 progress_callback())); 287 progress_callback()));
288 EXPECT_TRUE(loader()->IsIdle()); 288 EXPECT_TRUE(loader()->IsIdle());
289 } 289 }
290 290
291 TEST_F(PrerenderingOfflinerTest, 291 TEST_F(PrerenderingOfflinerTest,
292 DISABLED_LoadAndSaveBlockOnDisabledPrerendererForCustomTabs) { 292 LoadAndSaveBlockOnDisabledPrerendererForCustomTabs) {
293 base::Time creation_time = base::Time::Now(); 293 base::Time creation_time = base::Time::Now();
294 ClientId custom_tabs_client_id("custom_tabs", "88"); 294 ClientId custom_tabs_client_id("custom_tabs", "88");
295 SavePageRequest request(kRequestId, kHttpUrl, custom_tabs_client_id, 295 SavePageRequest request(kRequestId, kHttpUrl, custom_tabs_client_id,
296 creation_time, kUserRequested); 296 creation_time, kUserRequested);
297 profile()->GetPrefs()->SetInteger( 297 profile()->GetPrefs()->SetInteger(
298 prefs::kNetworkPredictionOptions, 298 prefs::kNetworkPredictionOptions,
299 chrome_browser_net::NETWORK_PREDICTION_NEVER); 299 chrome_browser_net::NETWORK_PREDICTION_NEVER);
300 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(), 300 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(),
301 progress_callback())); 301 progress_callback()));
302 EXPECT_TRUE(loader()->IsIdle()); 302 EXPECT_TRUE(loader()->IsIdle());
303 } 303 }
304 304
305 TEST_F(PrerenderingOfflinerTest, DISABLED_LoadAndSaveLoadStartedButFails) { 305 TEST_F(PrerenderingOfflinerTest, LoadAndSaveLoadStartedButFails) {
306 base::Time creation_time = base::Time::Now(); 306 base::Time creation_time = base::Time::Now();
307 SavePageRequest request( 307 SavePageRequest request(
308 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 308 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
309 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), 309 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
310 progress_callback())); 310 progress_callback()));
311 EXPECT_FALSE(loader()->IsIdle()); 311 EXPECT_FALSE(loader()->IsIdle());
312 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status()); 312 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status());
313 313
314 loader()->CompleteLoadingAsFailed(); 314 loader()->CompleteLoadingAsFailed();
315 PumpLoop(); 315 PumpLoop();
316 EXPECT_TRUE(completion_callback_called()); 316 EXPECT_TRUE(completion_callback_called());
317 EXPECT_EQ(Offliner::RequestStatus::LOADING_FAILED, request_status()); 317 EXPECT_EQ(Offliner::RequestStatus::LOADING_FAILED, request_status());
318 EXPECT_TRUE(loader()->IsIdle()); 318 EXPECT_TRUE(loader()->IsIdle());
319 EXPECT_FALSE(SaveInProgress()); 319 EXPECT_FALSE(SaveInProgress());
320 } 320 }
321 321
322 TEST_F(PrerenderingOfflinerTest, DISABLED_CancelWhenLoading) { 322 TEST_F(PrerenderingOfflinerTest, CancelWhenLoading) {
323 base::Time creation_time = base::Time::Now(); 323 base::Time creation_time = base::Time::Now();
324 SavePageRequest request( 324 SavePageRequest request(
325 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 325 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
326 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), 326 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
327 progress_callback())); 327 progress_callback()));
328 EXPECT_FALSE(loader()->IsIdle()); 328 EXPECT_FALSE(loader()->IsIdle());
329 329
330 offliner()->Cancel(cancel_callback()); 330 offliner()->Cancel(cancel_callback());
331 PumpLoop(); 331 PumpLoop();
332 EXPECT_TRUE(cancel_callback_called()); 332 EXPECT_TRUE(cancel_callback_called());
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 427
428 loader()->CompleteLoadingAsCanceled(); 428 loader()->CompleteLoadingAsCanceled();
429 PumpLoop(); 429 PumpLoop();
430 EXPECT_TRUE(completion_callback_called()); 430 EXPECT_TRUE(completion_callback_called());
431 EXPECT_EQ(Offliner::RequestStatus::LOADING_CANCELED, request_status()); 431 EXPECT_EQ(Offliner::RequestStatus::LOADING_CANCELED, request_status());
432 EXPECT_FALSE(loader()->IsLoaded()); 432 EXPECT_FALSE(loader()->IsLoaded());
433 // Note: save still in progress since it does not support canceling. 433 // Note: save still in progress since it does not support canceling.
434 EXPECT_TRUE(SaveInProgress()); 434 EXPECT_TRUE(SaveInProgress());
435 } 435 }
436 436
437 TEST_F(PrerenderingOfflinerTest, 437 TEST_F(PrerenderingOfflinerTest, ForegroundTransitionCancelsOnLowEndDevice) {
438 DISABLED_ForegroundTransitionCancelsOnLowEndDevice) {
439 offliner()->SetLowEndDeviceForTesting(true); 438 offliner()->SetLowEndDeviceForTesting(true);
440 439
441 base::Time creation_time = base::Time::Now(); 440 base::Time creation_time = base::Time::Now();
442 SavePageRequest request( 441 SavePageRequest request(
443 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 442 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
443 // LoadAndSave completes asynchronously, and notifies us via the
444 // completion_callback() when it completes.
444 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), 445 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
445 progress_callback())); 446 progress_callback()));
446 EXPECT_FALSE(loader()->IsIdle()); 447 EXPECT_FALSE(loader()->IsIdle());
447 448
448 offliner()->SetApplicationStateForTesting( 449 offliner()->SetApplicationStateForTesting(
449 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES); 450 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES);
450 451
452 // Wait until the completion callback arrives before checking postconditions.
453 PumpLoop();
454
451 // Loading canceled on low-end device. 455 // Loading canceled on low-end device.
452 EXPECT_TRUE(loader()->IsIdle()); 456 EXPECT_TRUE(loader()->IsIdle());
453 EXPECT_EQ(Offliner::RequestStatus::FOREGROUND_CANCELED, request_status()); 457 EXPECT_EQ(Offliner::RequestStatus::FOREGROUND_CANCELED, request_status());
454 } 458 }
455 459
456 // TODO(crbug.com/712941): Flaky test. 460 TEST_F(PrerenderingOfflinerTest, ForegroundTransitionIgnoredOnHighEndDevice) {
457 TEST_F(PrerenderingOfflinerTest,
458 DISABLED_ForegroundTransitionIgnoredOnHighEndDevice) {
459 offliner()->SetLowEndDeviceForTesting(false); 461 offliner()->SetLowEndDeviceForTesting(false);
460 462
461 base::Time creation_time = base::Time::Now(); 463 base::Time creation_time = base::Time::Now();
462 SavePageRequest request( 464 SavePageRequest request(
463 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 465 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
466 // LoadAndSave completes asynchronously, and notifies us via the
467 // completion_callback() when it completes.
464 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), 468 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
465 progress_callback())); 469 progress_callback()));
466 EXPECT_FALSE(loader()->IsIdle()); 470 EXPECT_FALSE(loader()->IsIdle());
467 471
468 offliner()->SetApplicationStateForTesting( 472 offliner()->SetApplicationStateForTesting(
469 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES); 473 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES);
470 474
475 // Wait until the completion callback arrives before checking postconditions.
476 PumpLoop();
477
471 // Loader still loading since not low-end device. 478 // Loader still loading since not low-end device.
472 EXPECT_FALSE(loader()->IsIdle()); 479 EXPECT_FALSE(loader()->IsIdle());
473 } 480 }
474 481
475 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithLowbarAndCompletedTriesMet) { 482 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithLowbarAndCompletedTriesMet) {
476 offliner()->SetLowEndDeviceForTesting(false); 483 offliner()->SetLowEndDeviceForTesting(false);
477 484
478 base::Time creation_time = base::Time::Now(); 485 base::Time creation_time = base::Time::Now();
479 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 486 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
480 kUserRequested); 487 kUserRequested);
(...skipping 20 matching lines...) Expand all
501 kUserRequested); 508 kUserRequested);
502 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1); 509 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1);
503 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), 510 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
504 progress_callback())); 511 progress_callback()));
505 loader()->set_is_lowbar_met(true); 512 loader()->set_is_lowbar_met(true);
506 EXPECT_TRUE(offliner()->HandleTimeout(kRequestId)); 513 EXPECT_TRUE(offliner()->HandleTimeout(kRequestId));
507 EXPECT_TRUE(loader()->start_snapshot_called()); 514 EXPECT_TRUE(loader()->start_snapshot_called());
508 } 515 }
509 516
510 TEST_F(PrerenderingOfflinerTest, 517 TEST_F(PrerenderingOfflinerTest,
511 DISABLED_HandleTimeoutCompletedTriesMetWithoutLowbarMet) { 518 HandleTimeoutCompletedTriesMetWithoutLowbarMet) {
512 offliner()->SetLowEndDeviceForTesting(false); 519 offliner()->SetLowEndDeviceForTesting(false);
513 520
514 base::Time creation_time = base::Time::Now(); 521 base::Time creation_time = base::Time::Now();
515 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 522 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
516 kUserRequested); 523 kUserRequested);
517 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1); 524 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1);
518 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), 525 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
519 progress_callback())); 526 progress_callback()));
520 loader()->set_is_lowbar_met(false); 527 loader()->set_is_lowbar_met(false);
521 EXPECT_FALSE(offliner()->HandleTimeout(kRequestId)); 528 EXPECT_FALSE(offliner()->HandleTimeout(kRequestId));
522 EXPECT_FALSE(loader()->start_snapshot_called()); 529 EXPECT_FALSE(loader()->start_snapshot_called());
523 } 530 }
524 531
525 TEST_F(PrerenderingOfflinerTest, 532 TEST_F(PrerenderingOfflinerTest, HandleTimeoutStartedTriesMetWithoutLowbarMet) {
526 DISABLED_HandleTimeoutStartedTriesMetWithoutLowbarMet) {
527 offliner()->SetLowEndDeviceForTesting(false); 533 offliner()->SetLowEndDeviceForTesting(false);
528 534
529 base::Time creation_time = base::Time::Now(); 535 base::Time creation_time = base::Time::Now();
530 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 536 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
531 kUserRequested); 537 kUserRequested);
532 request.set_started_attempt_count(policy()->GetMaxStartedTries() - 1); 538 request.set_started_attempt_count(policy()->GetMaxStartedTries() - 1);
533 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), 539 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
534 progress_callback())); 540 progress_callback()));
535 loader()->set_is_lowbar_met(false); 541 loader()->set_is_lowbar_met(false);
536 EXPECT_FALSE(offliner()->HandleTimeout(kRequestId)); 542 EXPECT_FALSE(offliner()->HandleTimeout(kRequestId));
537 EXPECT_FALSE(loader()->start_snapshot_called()); 543 EXPECT_FALSE(loader()->start_snapshot_called());
538 } 544 }
539 545
540 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithLowbarAndStartedTriesMet) { 546 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithLowbarAndStartedTriesMet) {
541 offliner()->SetLowEndDeviceForTesting(false); 547 offliner()->SetLowEndDeviceForTesting(false);
542 548
543 base::Time creation_time = base::Time::Now(); 549 base::Time creation_time = base::Time::Now();
544 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 550 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
545 kUserRequested); 551 kUserRequested);
546 request.set_started_attempt_count(policy()->GetMaxStartedTries() - 1); 552 request.set_started_attempt_count(policy()->GetMaxStartedTries() - 1);
547 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), 553 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
548 progress_callback())); 554 progress_callback()));
549 loader()->set_is_lowbar_met(true); 555 loader()->set_is_lowbar_met(true);
550 EXPECT_TRUE(offliner()->HandleTimeout(kRequestId)); 556 EXPECT_TRUE(offliner()->HandleTimeout(kRequestId));
551 EXPECT_TRUE(loader()->start_snapshot_called()); 557 EXPECT_TRUE(loader()->start_snapshot_called());
552 } 558 }
553 559
554 TEST_F(PrerenderingOfflinerTest, DISABLED_HandleTimeoutWithOnlyLowbarMet) { 560 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithOnlyLowbarMet) {
555 offliner()->SetLowEndDeviceForTesting(false); 561 offliner()->SetLowEndDeviceForTesting(false);
556 562
557 base::Time creation_time = base::Time::Now(); 563 base::Time creation_time = base::Time::Now();
558 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 564 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
559 kUserRequested); 565 kUserRequested);
560 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), 566 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
561 progress_callback())); 567 progress_callback()));
562 loader()->set_is_lowbar_met(true); 568 loader()->set_is_lowbar_met(true);
563 EXPECT_FALSE(offliner()->HandleTimeout(kRequestId)); 569 EXPECT_FALSE(offliner()->HandleTimeout(kRequestId));
564 EXPECT_FALSE(loader()->start_snapshot_called()); 570 EXPECT_FALSE(loader()->start_snapshot_called());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 PumpLoop(); 617 PumpLoop();
612 EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status()); 618 EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status());
613 619
614 // One extra part should be added if the flag is on. 620 // One extra part should be added if the flag is on.
615 content::MHTMLExtraParts* extra_parts = 621 content::MHTMLExtraParts* extra_parts =
616 content::MHTMLExtraParts::FromWebContents(loader()->web_contents()); 622 content::MHTMLExtraParts::FromWebContents(loader()->web_contents());
617 EXPECT_EQ(extra_parts->size(), 1); 623 EXPECT_EQ(extra_parts->size(), 1);
618 } 624 }
619 625
620 } // namespace offline_pages 626 } // namespace offline_pages
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698