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

Side by Side Diff: chrome/browser/safe_browsing/safe_browsing_blocking_page_unittest.cc

Issue 2418813002: [Reland] Refactoring of SBER preference usage (Closed)
Patch Set: Fix static init in preference_api Created 4 years, 2 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <list> 5 #include <list>
6 6
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "chrome/browser/interstitials/chrome_controller_client.h" 8 #include "chrome/browser/interstitials/chrome_controller_client.h"
9 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" 10 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h"
11 #include "chrome/browser/safe_browsing/test_safe_browsing_service.h" 11 #include "chrome/browser/safe_browsing/test_safe_browsing_service.h"
12 #include "chrome/browser/safe_browsing/threat_details.h" 12 #include "chrome/browser/safe_browsing/threat_details.h"
13 #include "chrome/browser/safe_browsing/ui_manager.h" 13 #include "chrome/browser/safe_browsing/ui_manager.h"
14 #include "chrome/common/pref_names.h"
15 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 14 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
16 #include "components/prefs/pref_service.h" 15 #include "components/prefs/pref_service.h"
16 #include "components/safe_browsing_db/safe_browsing_prefs.h"
17 #include "content/public/browser/interstitial_page.h" 17 #include "content/public/browser/interstitial_page.h"
18 #include "content/public/browser/navigation_entry.h" 18 #include "content/public/browser/navigation_entry.h"
19 #include "content/public/browser/render_process_host.h" 19 #include "content/public/browser/render_process_host.h"
20 #include "content/public/browser/web_contents.h" 20 #include "content/public/browser/web_contents.h"
21 #include "content/public/test/web_contents_tester.h" 21 #include "content/public/test/web_contents_tester.h"
22 22
23 using content::InterstitialPage; 23 using content::InterstitialPage;
24 using content::NavigationEntry; 24 using content::NavigationEntry;
25 using content::WebContents; 25 using content::WebContents;
26 using content::WebContentsTester; 26 using content::WebContentsTester;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 UserResponse user_response_; 228 UserResponse user_response_;
229 TestSafeBrowsingBlockingPageFactory factory_; 229 TestSafeBrowsingBlockingPageFactory factory_;
230 }; 230 };
231 231
232 232
233 // Tests showing a blocking page for a malware page and not proceeding. 233 // Tests showing a blocking page for a malware page and not proceeding.
234 TEST_F(SafeBrowsingBlockingPageTest, MalwarePageDontProceed) { 234 TEST_F(SafeBrowsingBlockingPageTest, MalwarePageDontProceed) {
235 // Enable malware details. 235 // Enable malware details.
236 Profile* profile = Profile::FromBrowserContext( 236 Profile* profile = Profile::FromBrowserContext(
237 web_contents()->GetBrowserContext()); 237 web_contents()->GetBrowserContext());
238 profile->GetPrefs()->SetBoolean( 238 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
239 prefs::kSafeBrowsingExtendedReportingEnabled, true);
240 239
241 // Start a load. 240 // Start a load.
242 controller().LoadURL(GURL(kBadURL), content::Referrer(), 241 controller().LoadURL(GURL(kBadURL), content::Referrer(),
243 ui::PAGE_TRANSITION_TYPED, std::string()); 242 ui::PAGE_TRANSITION_TYPED, std::string());
244 243
245 244
246 // Simulate the load causing a safe browsing interstitial to be shown. 245 // Simulate the load causing a safe browsing interstitial to be shown.
247 ShowInterstitial(false, kBadURL); 246 ShowInterstitial(false, kBadURL);
248 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 247 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
249 ASSERT_TRUE(sb_interstitial); 248 ASSERT_TRUE(sb_interstitial);
(...skipping 13 matching lines...) Expand all
263 // A report should have been sent. 262 // A report should have been sent.
264 EXPECT_EQ(1u, ui_manager_->GetThreatDetails()->size()); 263 EXPECT_EQ(1u, ui_manager_->GetThreatDetails()->size());
265 ui_manager_->GetThreatDetails()->clear(); 264 ui_manager_->GetThreatDetails()->clear();
266 } 265 }
267 266
268 // Tests showing a blocking page for a malware page and then proceeding. 267 // Tests showing a blocking page for a malware page and then proceeding.
269 TEST_F(SafeBrowsingBlockingPageTest, MalwarePageProceed) { 268 TEST_F(SafeBrowsingBlockingPageTest, MalwarePageProceed) {
270 // Enable malware reports. 269 // Enable malware reports.
271 Profile* profile = Profile::FromBrowserContext( 270 Profile* profile = Profile::FromBrowserContext(
272 web_contents()->GetBrowserContext()); 271 web_contents()->GetBrowserContext());
273 profile->GetPrefs()->SetBoolean( 272 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
274 prefs::kSafeBrowsingExtendedReportingEnabled, true);
275 273
276 // Start a load. 274 // Start a load.
277 controller().LoadURL(GURL(kBadURL), content::Referrer(), 275 controller().LoadURL(GURL(kBadURL), content::Referrer(),
278 ui::PAGE_TRANSITION_TYPED, std::string()); 276 ui::PAGE_TRANSITION_TYPED, std::string());
279 int pending_id = controller().GetPendingEntry()->GetUniqueID(); 277 int pending_id = controller().GetPendingEntry()->GetUniqueID();
280 278
281 // Simulate the load causing a safe browsing interstitial to be shown. 279 // Simulate the load causing a safe browsing interstitial to be shown.
282 ShowInterstitial(false, kBadURL); 280 ShowInterstitial(false, kBadURL);
283 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 281 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
284 ASSERT_TRUE(sb_interstitial); 282 ASSERT_TRUE(sb_interstitial);
(...skipping 12 matching lines...) Expand all
297 EXPECT_EQ(1u, ui_manager_->GetThreatDetails()->size()); 295 EXPECT_EQ(1u, ui_manager_->GetThreatDetails()->size());
298 ui_manager_->GetThreatDetails()->clear(); 296 ui_manager_->GetThreatDetails()->clear();
299 } 297 }
300 298
301 // Tests showing a blocking page for a page that contains malware subresources 299 // Tests showing a blocking page for a page that contains malware subresources
302 // and not proceeding. 300 // and not proceeding.
303 TEST_F(SafeBrowsingBlockingPageTest, PageWithMalwareResourceDontProceed) { 301 TEST_F(SafeBrowsingBlockingPageTest, PageWithMalwareResourceDontProceed) {
304 // Enable malware reports. 302 // Enable malware reports.
305 Profile* profile = Profile::FromBrowserContext( 303 Profile* profile = Profile::FromBrowserContext(
306 web_contents()->GetBrowserContext()); 304 web_contents()->GetBrowserContext());
307 profile->GetPrefs()->SetBoolean( 305 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
308 prefs::kSafeBrowsingExtendedReportingEnabled, true);
309 306
310 // Navigate somewhere. 307 // Navigate somewhere.
311 Navigate(kGoogleURL, 1, 0, true); 308 Navigate(kGoogleURL, 1, 0, true);
312 309
313 // Navigate somewhere else. 310 // Navigate somewhere else.
314 Navigate(kGoodURL, 2, 0, true); 311 Navigate(kGoodURL, 2, 0, true);
315 312
316 // Simulate that page loading a bad-resource triggering an interstitial. 313 // Simulate that page loading a bad-resource triggering an interstitial.
317 ShowInterstitial(true, kBadURL); 314 ShowInterstitial(true, kBadURL);
318 315
(...skipping 14 matching lines...) Expand all
333 EXPECT_EQ(1u, ui_manager_->GetThreatDetails()->size()); 330 EXPECT_EQ(1u, ui_manager_->GetThreatDetails()->size());
334 ui_manager_->GetThreatDetails()->clear(); 331 ui_manager_->GetThreatDetails()->clear();
335 } 332 }
336 333
337 // Tests showing a blocking page for a page that contains malware subresources 334 // Tests showing a blocking page for a page that contains malware subresources
338 // and proceeding. 335 // and proceeding.
339 TEST_F(SafeBrowsingBlockingPageTest, PageWithMalwareResourceProceed) { 336 TEST_F(SafeBrowsingBlockingPageTest, PageWithMalwareResourceProceed) {
340 // Enable malware reports. 337 // Enable malware reports.
341 Profile* profile = Profile::FromBrowserContext( 338 Profile* profile = Profile::FromBrowserContext(
342 web_contents()->GetBrowserContext()); 339 web_contents()->GetBrowserContext());
343 profile->GetPrefs()->SetBoolean( 340 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
344 prefs::kSafeBrowsingExtendedReportingEnabled, true);
345 341
346 // Navigate somewhere. 342 // Navigate somewhere.
347 Navigate(kGoodURL, 1, 0, true); 343 Navigate(kGoodURL, 1, 0, true);
348 344
349 // Simulate that page loading a bad-resource triggering an interstitial. 345 // Simulate that page loading a bad-resource triggering an interstitial.
350 ShowInterstitial(true, kBadURL); 346 ShowInterstitial(true, kBadURL);
351 347
352 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 348 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
353 ASSERT_TRUE(sb_interstitial); 349 ASSERT_TRUE(sb_interstitial);
354 350
(...skipping 12 matching lines...) Expand all
367 } 363 }
368 364
369 // Tests showing a blocking page for a page that contains multiple malware 365 // Tests showing a blocking page for a page that contains multiple malware
370 // subresources and not proceeding. This just tests that the extra malware 366 // subresources and not proceeding. This just tests that the extra malware
371 // subresources (which trigger queued interstitial pages) do not break anything. 367 // subresources (which trigger queued interstitial pages) do not break anything.
372 TEST_F(SafeBrowsingBlockingPageTest, 368 TEST_F(SafeBrowsingBlockingPageTest,
373 PageWithMultipleMalwareResourceDontProceed) { 369 PageWithMultipleMalwareResourceDontProceed) {
374 // Enable malware reports. 370 // Enable malware reports.
375 Profile* profile = Profile::FromBrowserContext( 371 Profile* profile = Profile::FromBrowserContext(
376 web_contents()->GetBrowserContext()); 372 web_contents()->GetBrowserContext());
377 profile->GetPrefs()->SetBoolean( 373 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
378 prefs::kSafeBrowsingExtendedReportingEnabled, true);
379 374
380 // Navigate somewhere. 375 // Navigate somewhere.
381 Navigate(kGoogleURL, 1, 0, true); 376 Navigate(kGoogleURL, 1, 0, true);
382 377
383 // Navigate somewhere else. 378 // Navigate somewhere else.
384 Navigate(kGoodURL, 2, 0, true); 379 Navigate(kGoodURL, 2, 0, true);
385 380
386 // Simulate that page loading a bad-resource triggering an interstitial. 381 // Simulate that page loading a bad-resource triggering an interstitial.
387 ShowInterstitial(true, kBadURL); 382 ShowInterstitial(true, kBadURL);
388 383
(...skipping 20 matching lines...) Expand all
409 ui_manager_->GetThreatDetails()->clear(); 404 ui_manager_->GetThreatDetails()->clear();
410 } 405 }
411 406
412 // Tests showing a blocking page for a page that contains multiple malware 407 // Tests showing a blocking page for a page that contains multiple malware
413 // subresources and proceeding through the first interstitial, but not the next. 408 // subresources and proceeding through the first interstitial, but not the next.
414 TEST_F(SafeBrowsingBlockingPageTest, 409 TEST_F(SafeBrowsingBlockingPageTest,
415 PageWithMultipleMalwareResourceProceedThenDontProceed) { 410 PageWithMultipleMalwareResourceProceedThenDontProceed) {
416 // Enable malware reports. 411 // Enable malware reports.
417 Profile* profile = Profile::FromBrowserContext( 412 Profile* profile = Profile::FromBrowserContext(
418 web_contents()->GetBrowserContext()); 413 web_contents()->GetBrowserContext());
419 profile->GetPrefs()->SetBoolean( 414 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
420 prefs::kSafeBrowsingExtendedReportingEnabled, true);
421 415
422 // Navigate somewhere. 416 // Navigate somewhere.
423 Navigate(kGoogleURL, 1, 0, true); 417 Navigate(kGoogleURL, 1, 0, true);
424 418
425 // Navigate somewhere else. 419 // Navigate somewhere else.
426 Navigate(kGoodURL, 2, 0, true); 420 Navigate(kGoodURL, 2, 0, true);
427 421
428 // Simulate that page loading a bad-resource triggering an interstitial. 422 // Simulate that page loading a bad-resource triggering an interstitial.
429 ShowInterstitial(true, kBadURL); 423 ShowInterstitial(true, kBadURL);
430 424
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 EXPECT_EQ(0u, ui_manager_->GetThreatDetails()->size()); 460 EXPECT_EQ(0u, ui_manager_->GetThreatDetails()->size());
467 ui_manager_->GetThreatDetails()->clear(); 461 ui_manager_->GetThreatDetails()->clear();
468 } 462 }
469 463
470 // Tests showing a blocking page for a page that contains multiple malware 464 // Tests showing a blocking page for a page that contains multiple malware
471 // subresources and proceeding through the multiple interstitials. 465 // subresources and proceeding through the multiple interstitials.
472 TEST_F(SafeBrowsingBlockingPageTest, PageWithMultipleMalwareResourceProceed) { 466 TEST_F(SafeBrowsingBlockingPageTest, PageWithMultipleMalwareResourceProceed) {
473 // Enable malware reports. 467 // Enable malware reports.
474 Profile* profile = Profile::FromBrowserContext( 468 Profile* profile = Profile::FromBrowserContext(
475 web_contents()->GetBrowserContext()); 469 web_contents()->GetBrowserContext());
476 profile->GetPrefs()->SetBoolean( 470 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
477 prefs::kSafeBrowsingExtendedReportingEnabled, true);
478 471
479 // Navigate somewhere else. 472 // Navigate somewhere else.
480 Navigate(kGoodURL, 1, 0, true); 473 Navigate(kGoodURL, 1, 0, true);
481 474
482 // Simulate that page loading a bad-resource triggering an interstitial. 475 // Simulate that page loading a bad-resource triggering an interstitial.
483 ShowInterstitial(true, kBadURL); 476 ShowInterstitial(true, kBadURL);
484 477
485 // More bad resources loading causing more interstitials. The new 478 // More bad resources loading causing more interstitials. The new
486 // interstitials should be queued. 479 // interstitials should be queued.
487 ShowInterstitial(true, kBadURL2); 480 ShowInterstitial(true, kBadURL2);
(...skipping 30 matching lines...) Expand all
518 EXPECT_EQ(0u, ui_manager_->GetThreatDetails()->size()); 511 EXPECT_EQ(0u, ui_manager_->GetThreatDetails()->size());
519 ui_manager_->GetThreatDetails()->clear(); 512 ui_manager_->GetThreatDetails()->clear();
520 } 513 }
521 514
522 // Tests showing a blocking page then navigating back and forth to make sure the 515 // Tests showing a blocking page then navigating back and forth to make sure the
523 // controller entries are OK. http://crbug.com/17627 516 // controller entries are OK. http://crbug.com/17627
524 TEST_F(SafeBrowsingBlockingPageTest, NavigatingBackAndForth) { 517 TEST_F(SafeBrowsingBlockingPageTest, NavigatingBackAndForth) {
525 // Enable malware reports. 518 // Enable malware reports.
526 Profile* profile = Profile::FromBrowserContext( 519 Profile* profile = Profile::FromBrowserContext(
527 web_contents()->GetBrowserContext()); 520 web_contents()->GetBrowserContext());
528 profile->GetPrefs()->SetBoolean( 521 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
529 prefs::kSafeBrowsingExtendedReportingEnabled, true);
530 522
531 // Navigate somewhere. 523 // Navigate somewhere.
532 Navigate(kGoodURL, 1, 0, true); 524 Navigate(kGoodURL, 1, 0, true);
533 525
534 // Now navigate to a bad page triggerring an interstitial. 526 // Now navigate to a bad page triggerring an interstitial.
535 controller().LoadURL(GURL(kBadURL), content::Referrer(), 527 controller().LoadURL(GURL(kBadURL), content::Referrer(),
536 ui::PAGE_TRANSITION_TYPED, std::string()); 528 ui::PAGE_TRANSITION_TYPED, std::string());
537 int pending_id = controller().GetPendingEntry()->GetUniqueID(); 529 int pending_id = controller().GetPendingEntry()->GetUniqueID();
538 ShowInterstitial(false, kBadURL); 530 ShowInterstitial(false, kBadURL);
539 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 531 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
(...skipping 30 matching lines...) Expand all
570 EXPECT_EQ(2u, ui_manager_->GetThreatDetails()->size()); 562 EXPECT_EQ(2u, ui_manager_->GetThreatDetails()->size());
571 ui_manager_->GetThreatDetails()->clear(); 563 ui_manager_->GetThreatDetails()->clear();
572 } 564 }
573 565
574 // Tests that calling "don't proceed" after "proceed" has been called doesn't 566 // Tests that calling "don't proceed" after "proceed" has been called doesn't
575 // cause problems. http://crbug.com/30079 567 // cause problems. http://crbug.com/30079
576 TEST_F(SafeBrowsingBlockingPageTest, ProceedThenDontProceed) { 568 TEST_F(SafeBrowsingBlockingPageTest, ProceedThenDontProceed) {
577 // Enable malware reports. 569 // Enable malware reports.
578 Profile* profile = Profile::FromBrowserContext( 570 Profile* profile = Profile::FromBrowserContext(
579 web_contents()->GetBrowserContext()); 571 web_contents()->GetBrowserContext());
580 profile->GetPrefs()->SetBoolean( 572 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
581 prefs::kSafeBrowsingExtendedReportingEnabled, true);
582 573
583 // Start a load. 574 // Start a load.
584 controller().LoadURL(GURL(kBadURL), content::Referrer(), 575 controller().LoadURL(GURL(kBadURL), content::Referrer(),
585 ui::PAGE_TRANSITION_TYPED, std::string()); 576 ui::PAGE_TRANSITION_TYPED, std::string());
586 577
587 // Simulate the load causing a safe browsing interstitial to be shown. 578 // Simulate the load causing a safe browsing interstitial to be shown.
588 ShowInterstitial(false, kBadURL); 579 ShowInterstitial(false, kBadURL);
589 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 580 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
590 ASSERT_TRUE(sb_interstitial); 581 ASSERT_TRUE(sb_interstitial);
591 582
(...skipping 14 matching lines...) Expand all
606 // Only one report should have been sent. 597 // Only one report should have been sent.
607 EXPECT_EQ(1u, ui_manager_->GetThreatDetails()->size()); 598 EXPECT_EQ(1u, ui_manager_->GetThreatDetails()->size());
608 ui_manager_->GetThreatDetails()->clear(); 599 ui_manager_->GetThreatDetails()->clear();
609 } 600 }
610 601
611 // Tests showing a blocking page for a malware page with reports disabled. 602 // Tests showing a blocking page for a malware page with reports disabled.
612 TEST_F(SafeBrowsingBlockingPageTest, MalwareReportsDisabled) { 603 TEST_F(SafeBrowsingBlockingPageTest, MalwareReportsDisabled) {
613 // Disable malware reports. 604 // Disable malware reports.
614 Profile* profile = Profile::FromBrowserContext( 605 Profile* profile = Profile::FromBrowserContext(
615 web_contents()->GetBrowserContext()); 606 web_contents()->GetBrowserContext());
616 profile->GetPrefs()->SetBoolean( 607 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), false);
617 prefs::kSafeBrowsingExtendedReportingEnabled, false);
618 608
619 // Start a load. 609 // Start a load.
620 controller().LoadURL(GURL(kBadURL), content::Referrer(), 610 controller().LoadURL(GURL(kBadURL), content::Referrer(),
621 ui::PAGE_TRANSITION_TYPED, std::string()); 611 ui::PAGE_TRANSITION_TYPED, std::string());
622 612
623 // Simulate the load causing a safe browsing interstitial to be shown. 613 // Simulate the load causing a safe browsing interstitial to be shown.
624 ShowInterstitial(false, kBadURL); 614 ShowInterstitial(false, kBadURL);
625 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 615 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
626 ASSERT_TRUE(sb_interstitial); 616 ASSERT_TRUE(sb_interstitial);
627 EXPECT_TRUE(sb_interstitial->CanShowThreatDetailsOption()); 617 EXPECT_TRUE(sb_interstitial->CanShowThreatDetailsOption());
(...skipping 13 matching lines...) Expand all
641 // No report should have been sent. 631 // No report should have been sent.
642 EXPECT_EQ(0u, ui_manager_->GetThreatDetails()->size()); 632 EXPECT_EQ(0u, ui_manager_->GetThreatDetails()->size());
643 ui_manager_->GetThreatDetails()->clear(); 633 ui_manager_->GetThreatDetails()->clear();
644 } 634 }
645 635
646 // Test that toggling the checkbox has the anticipated effects. 636 // Test that toggling the checkbox has the anticipated effects.
647 TEST_F(SafeBrowsingBlockingPageTest, MalwareReportsToggling) { 637 TEST_F(SafeBrowsingBlockingPageTest, MalwareReportsToggling) {
648 // Disable malware reports. 638 // Disable malware reports.
649 Profile* profile = Profile::FromBrowserContext( 639 Profile* profile = Profile::FromBrowserContext(
650 web_contents()->GetBrowserContext()); 640 web_contents()->GetBrowserContext());
651 profile->GetPrefs()->SetBoolean( 641 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), false);
652 prefs::kSafeBrowsingExtendedReportingEnabled, false);
653 642
654 // Start a load. 643 // Start a load.
655 controller().LoadURL(GURL(kBadURL), content::Referrer(), 644 controller().LoadURL(GURL(kBadURL), content::Referrer(),
656 ui::PAGE_TRANSITION_TYPED, std::string()); 645 ui::PAGE_TRANSITION_TYPED, std::string());
657 646
658 // Simulate the load causing a safe browsing interstitial to be shown. 647 // Simulate the load causing a safe browsing interstitial to be shown.
659 ShowInterstitial(false, kBadURL); 648 ShowInterstitial(false, kBadURL);
660 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 649 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
661 ASSERT_TRUE(sb_interstitial); 650 ASSERT_TRUE(sb_interstitial);
662 EXPECT_TRUE(sb_interstitial->CanShowThreatDetailsOption()); 651 EXPECT_TRUE(sb_interstitial->CanShowThreatDetailsOption());
663 652
664 base::RunLoop().RunUntilIdle(); 653 base::RunLoop().RunUntilIdle();
665 654
666 EXPECT_FALSE(profile->GetPrefs()->GetBoolean( 655 EXPECT_FALSE(IsExtendedReportingEnabled(*profile->GetPrefs()));
667 prefs::kSafeBrowsingExtendedReportingEnabled));
668 656
669 // Simulate the user check the report agreement checkbox. 657 // Simulate the user check the report agreement checkbox.
670 sb_interstitial->controller()->SetReportingPreference(true); 658 sb_interstitial->controller()->SetReportingPreference(true);
671 659
672 EXPECT_TRUE(profile->GetPrefs()->GetBoolean( 660 EXPECT_TRUE(IsExtendedReportingEnabled(*profile->GetPrefs()));
673 prefs::kSafeBrowsingExtendedReportingEnabled));
674 661
675 // Simulate the user uncheck the report agreement checkbox. 662 // Simulate the user uncheck the report agreement checkbox.
676 sb_interstitial->controller()->SetReportingPreference(false); 663 sb_interstitial->controller()->SetReportingPreference(false);
677 664
678 EXPECT_FALSE(profile->GetPrefs()->GetBoolean( 665 EXPECT_FALSE(IsExtendedReportingEnabled(*profile->GetPrefs()));
679 prefs::kSafeBrowsingExtendedReportingEnabled));
680 } 666 }
681 667
682 // Test that extended reporting option is not shown on blocking an HTTPS main 668 // Test that extended reporting option is not shown on blocking an HTTPS main
683 // page, and no report is sent. 669 // page, and no report is sent.
684 TEST_F(SafeBrowsingBlockingPageTest, ExtendedReportingNotShownOnSecurePage) { 670 TEST_F(SafeBrowsingBlockingPageTest, ExtendedReportingNotShownOnSecurePage) {
685 // Enable malware details. 671 // Enable malware details.
686 Profile* profile = Profile::FromBrowserContext( 672 Profile* profile = Profile::FromBrowserContext(
687 web_contents()->GetBrowserContext()); 673 web_contents()->GetBrowserContext());
688 profile->GetPrefs()->SetBoolean( 674 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
689 prefs::kSafeBrowsingExtendedReportingEnabled, true);
690 675
691 // Start a load. 676 // Start a load.
692 controller().LoadURL(GURL(kBadHTTPSURL), content::Referrer(), 677 controller().LoadURL(GURL(kBadHTTPSURL), content::Referrer(),
693 ui::PAGE_TRANSITION_TYPED, std::string()); 678 ui::PAGE_TRANSITION_TYPED, std::string());
694 679
695 // Simulate the load causing a safe browsing interstitial to be shown. 680 // Simulate the load causing a safe browsing interstitial to be shown.
696 ShowInterstitial(false, kBadHTTPSURL); 681 ShowInterstitial(false, kBadHTTPSURL);
697 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 682 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
698 ASSERT_TRUE(sb_interstitial); 683 ASSERT_TRUE(sb_interstitial);
699 EXPECT_FALSE(sb_interstitial->CanShowThreatDetailsOption()); 684 EXPECT_FALSE(sb_interstitial->CanShowThreatDetailsOption());
(...skipping 12 matching lines...) Expand all
712 ui_manager_->GetThreatDetails()->clear(); 697 ui_manager_->GetThreatDetails()->clear();
713 } 698 }
714 699
715 // Test that extended reporting option is not shown on blocking an HTTPS 700 // Test that extended reporting option is not shown on blocking an HTTPS
716 // subresource on an HTTPS page, and no report is sent. 701 // subresource on an HTTPS page, and no report is sent.
717 TEST_F(SafeBrowsingBlockingPageTest, 702 TEST_F(SafeBrowsingBlockingPageTest,
718 ExtendedReportingNotShownOnSecurePageWithSecureSubresource) { 703 ExtendedReportingNotShownOnSecurePageWithSecureSubresource) {
719 // Enable malware details. 704 // Enable malware details.
720 Profile* profile = Profile::FromBrowserContext( 705 Profile* profile = Profile::FromBrowserContext(
721 web_contents()->GetBrowserContext()); 706 web_contents()->GetBrowserContext());
722 profile->GetPrefs()->SetBoolean( 707 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
723 prefs::kSafeBrowsingExtendedReportingEnabled, true);
724 708
725 // Commit a load. 709 // Commit a load.
726 content::WebContentsTester::For(web_contents()) 710 content::WebContentsTester::For(web_contents())
727 ->NavigateAndCommit(GURL(kGoodHTTPSURL)); 711 ->NavigateAndCommit(GURL(kGoodHTTPSURL));
728 712
729 // Simulate a subresource load causing a safe browsing interstitial to be 713 // Simulate a subresource load causing a safe browsing interstitial to be
730 // shown. 714 // shown.
731 ShowInterstitial(true, kBadHTTPSURL); 715 ShowInterstitial(true, kBadHTTPSURL);
732 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 716 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
733 ASSERT_TRUE(sb_interstitial); 717 ASSERT_TRUE(sb_interstitial);
(...skipping 13 matching lines...) Expand all
747 ui_manager_->GetThreatDetails()->clear(); 731 ui_manager_->GetThreatDetails()->clear();
748 } 732 }
749 733
750 // Test that extended reporting option is not shown on blocking an HTTP 734 // Test that extended reporting option is not shown on blocking an HTTP
751 // subresource on an HTTPS page, and no report is sent. 735 // subresource on an HTTPS page, and no report is sent.
752 TEST_F(SafeBrowsingBlockingPageTest, 736 TEST_F(SafeBrowsingBlockingPageTest,
753 ExtendedReportingNotShownOnSecurePageWithInsecureSubresource) { 737 ExtendedReportingNotShownOnSecurePageWithInsecureSubresource) {
754 // Enable malware details. 738 // Enable malware details.
755 Profile* profile = Profile::FromBrowserContext( 739 Profile* profile = Profile::FromBrowserContext(
756 web_contents()->GetBrowserContext()); 740 web_contents()->GetBrowserContext());
757 profile->GetPrefs()->SetBoolean( 741 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
758 prefs::kSafeBrowsingExtendedReportingEnabled, true);
759 742
760 // Commit a load. 743 // Commit a load.
761 content::WebContentsTester::For(web_contents()) 744 content::WebContentsTester::For(web_contents())
762 ->NavigateAndCommit(GURL(kGoodHTTPSURL)); 745 ->NavigateAndCommit(GURL(kGoodHTTPSURL));
763 746
764 // Simulate a subresource load causing a safe browsing interstitial to be 747 // Simulate a subresource load causing a safe browsing interstitial to be
765 // shown. 748 // shown.
766 ShowInterstitial(true, kBadURL); 749 ShowInterstitial(true, kBadURL);
767 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 750 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
768 ASSERT_TRUE(sb_interstitial); 751 ASSERT_TRUE(sb_interstitial);
(...skipping 13 matching lines...) Expand all
782 ui_manager_->GetThreatDetails()->clear(); 765 ui_manager_->GetThreatDetails()->clear();
783 } 766 }
784 767
785 // Test that extended reporting option is shown on blocking an HTTPS 768 // Test that extended reporting option is shown on blocking an HTTPS
786 // subresource on an HTTP page. 769 // subresource on an HTTP page.
787 TEST_F(SafeBrowsingBlockingPageTest, 770 TEST_F(SafeBrowsingBlockingPageTest,
788 ExtendedReportingOnInsecurePageWithSecureSubresource) { 771 ExtendedReportingOnInsecurePageWithSecureSubresource) {
789 // Enable malware details. 772 // Enable malware details.
790 Profile* profile = Profile::FromBrowserContext( 773 Profile* profile = Profile::FromBrowserContext(
791 web_contents()->GetBrowserContext()); 774 web_contents()->GetBrowserContext());
792 profile->GetPrefs()->SetBoolean( 775 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
793 prefs::kSafeBrowsingExtendedReportingEnabled, true);
794 776
795 // Commit a load. 777 // Commit a load.
796 content::WebContentsTester::For(web_contents()) 778 content::WebContentsTester::For(web_contents())
797 ->NavigateAndCommit(GURL(kGoodURL)); 779 ->NavigateAndCommit(GURL(kGoodURL));
798 780
799 // Simulate a subresource load causing a safe browsing interstitial to be 781 // Simulate a subresource load causing a safe browsing interstitial to be
800 // shown. 782 // shown.
801 ShowInterstitial(true, kBadHTTPSURL); 783 ShowInterstitial(true, kBadHTTPSURL);
802 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage(); 784 SafeBrowsingBlockingPage* sb_interstitial = GetSafeBrowsingBlockingPage();
803 ASSERT_TRUE(sb_interstitial); 785 ASSERT_TRUE(sb_interstitial);
(...skipping 14 matching lines...) Expand all
818 } 800 }
819 801
820 // Test that extended reporting option is not shown on blocking an HTTPS 802 // Test that extended reporting option is not shown on blocking an HTTPS
821 // subresource on an HTTPS page while there is a pending load for an HTTP page, 803 // subresource on an HTTPS page while there is a pending load for an HTTP page,
822 // and no report is sent. 804 // and no report is sent.
823 TEST_F(SafeBrowsingBlockingPageTest, 805 TEST_F(SafeBrowsingBlockingPageTest,
824 ExtendedReportingNotShownOnSecurePageWithPendingInsecureLoad) { 806 ExtendedReportingNotShownOnSecurePageWithPendingInsecureLoad) {
825 // Enable malware details. 807 // Enable malware details.
826 Profile* profile = Profile::FromBrowserContext( 808 Profile* profile = Profile::FromBrowserContext(
827 web_contents()->GetBrowserContext()); 809 web_contents()->GetBrowserContext());
828 profile->GetPrefs()->SetBoolean( 810 profile->GetPrefs()->SetBoolean(GetExtendedReportingPrefName(), true);
829 prefs::kSafeBrowsingExtendedReportingEnabled, true);
830 811
831 // Commit a load. 812 // Commit a load.
832 content::WebContentsTester::For(web_contents()) 813 content::WebContentsTester::For(web_contents())
833 ->NavigateAndCommit(GURL(kGoodHTTPSURL)); 814 ->NavigateAndCommit(GURL(kGoodHTTPSURL));
834 815
835 GURL pending_url("http://slow.example.com"); 816 GURL pending_url("http://slow.example.com");
836 817
837 // Start a pending load. 818 // Start a pending load.
838 content::WebContentsTester::For(web_contents())->StartNavigation(pending_url); 819 content::WebContentsTester::For(web_contents())->StartNavigation(pending_url);
839 820
(...skipping 17 matching lines...) Expand all
857 838
858 // No report should have been sent. 839 // No report should have been sent.
859 EXPECT_EQ(0u, ui_manager_->GetThreatDetails()->size()); 840 EXPECT_EQ(0u, ui_manager_->GetThreatDetails()->size());
860 ui_manager_->GetThreatDetails()->clear(); 841 ui_manager_->GetThreatDetails()->clear();
861 } 842 }
862 843
863 // TODO(mattm): Add test for extended reporting not shown or sent in incognito 844 // TODO(mattm): Add test for extended reporting not shown or sent in incognito
864 // window. 845 // window.
865 846
866 } // namespace safe_browsing 847 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698