| OLD | NEW |
| 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 // This test creates a fake safebrowsing service, where we can inject known- | 5 // This test creates a fake safebrowsing service, where we can inject known- |
| 6 // threat urls. It then uses a real browser to go to these urls, and sends | 6 // threat urls. It then uses a real browser to go to these urls, and sends |
| 7 // "goback" or "proceed" commands and verifies they work. | 7 // "goback" or "proceed" commands and verifies they work. |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 #include "content/public/test/test_browser_thread.h" | 45 #include "content/public/test/test_browser_thread.h" |
| 46 #include "content/public/test/test_utils.h" | 46 #include "content/public/test/test_utils.h" |
| 47 #include "net/test/url_request/url_request_mock_http_job.h" | 47 #include "net/test/url_request/url_request_mock_http_job.h" |
| 48 | 48 |
| 49 using chrome_browser_interstitials::SecurityInterstitialIDNTest; | 49 using chrome_browser_interstitials::SecurityInterstitialIDNTest; |
| 50 using content::BrowserThread; | 50 using content::BrowserThread; |
| 51 using content::InterstitialPage; | 51 using content::InterstitialPage; |
| 52 using content::NavigationController; | 52 using content::NavigationController; |
| 53 using content::WebContents; | 53 using content::WebContents; |
| 54 | 54 |
| 55 namespace { | 55 namespace safe_browsing { |
| 56 | 56 |
| 57 const char kEmptyPage[] = "empty.html"; | 57 const char kEmptyPage[] = "empty.html"; |
| 58 const char kMalwarePage[] = "safe_browsing/malware.html"; | 58 const char kMalwarePage[] = "safe_browsing/malware.html"; |
| 59 const char kMalwareIframe[] = "safe_browsing/malware_iframe.html"; | 59 const char kMalwareIframe[] = "safe_browsing/malware_iframe.html"; |
| 60 const char kUnrelatedUrl[] = "https://www.google.com"; | 60 const char kUnrelatedUrl[] = "https://www.google.com"; |
| 61 | 61 |
| 62 // A SafeBrowsingDatabaseManager class that allows us to inject the malicious | 62 // A SafeBrowsingDatabaseManager class that allows us to inject the malicious |
| 63 // URLs. | 63 // URLs. |
| 64 class FakeSafeBrowsingDatabaseManager : public TestSafeBrowsingDatabaseManager { | 64 class FakeSafeBrowsingDatabaseManager : public TestSafeBrowsingDatabaseManager { |
| 65 public: | 65 public: |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 SafeBrowsingBlockingPage* CreateSafeBrowsingPage( | 347 SafeBrowsingBlockingPage* CreateSafeBrowsingPage( |
| 348 SafeBrowsingUIManager* delegate, | 348 SafeBrowsingUIManager* delegate, |
| 349 WebContents* web_contents, | 349 WebContents* web_contents, |
| 350 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) | 350 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) |
| 351 override { | 351 override { |
| 352 return new TestSafeBrowsingBlockingPage(delegate, web_contents, | 352 return new TestSafeBrowsingBlockingPage(delegate, web_contents, |
| 353 unsafe_resources); | 353 unsafe_resources); |
| 354 } | 354 } |
| 355 }; | 355 }; |
| 356 | 356 |
| 357 } // namespace | |
| 358 | |
| 359 // Tests the safe browsing blocking page in a browser. | 357 // Tests the safe browsing blocking page in a browser. |
| 360 class SafeBrowsingBlockingPageBrowserTest | 358 class SafeBrowsingBlockingPageBrowserTest |
| 361 : public InProcessBrowserTest, | 359 : public InProcessBrowserTest, |
| 362 public testing::WithParamInterface<SBThreatType> { | 360 public testing::WithParamInterface<SBThreatType> { |
| 363 public: | 361 public: |
| 364 enum Visibility { | 362 enum Visibility { |
| 365 VISIBILITY_ERROR = -1, | 363 VISIBILITY_ERROR = -1, |
| 366 HIDDEN = 0, | 364 HIDDEN = 0, |
| 367 VISIBLE = 1 | 365 VISIBLE = 1 |
| 368 }; | 366 }; |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 737 AssertNoInterstitial(true); // Assert the interstitial is gone | 735 AssertNoInterstitial(true); // Assert the interstitial is gone |
| 738 | 736 |
| 739 EXPECT_TRUE(browser()->profile()->GetPrefs()->GetBoolean( | 737 EXPECT_TRUE(browser()->profile()->GetPrefs()->GetBoolean( |
| 740 prefs::kSafeBrowsingExtendedReportingEnabled)); | 738 prefs::kSafeBrowsingExtendedReportingEnabled)); |
| 741 EXPECT_EQ(url, | 739 EXPECT_EQ(url, |
| 742 browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); | 740 browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); |
| 743 | 741 |
| 744 if (expect_malware_details) { | 742 if (expect_malware_details) { |
| 745 malware_report_sent_runner->Run(); | 743 malware_report_sent_runner->Run(); |
| 746 std::string serialized = GetReportSent(); | 744 std::string serialized = GetReportSent(); |
| 747 safe_browsing::ClientMalwareReportRequest report; | 745 ClientMalwareReportRequest report; |
| 748 ASSERT_TRUE(report.ParseFromString(serialized)); | 746 ASSERT_TRUE(report.ParseFromString(serialized)); |
| 749 // Verify the report is complete. | 747 // Verify the report is complete. |
| 750 EXPECT_TRUE(report.complete()); | 748 EXPECT_TRUE(report.complete()); |
| 751 } | 749 } |
| 752 } | 750 } |
| 753 | 751 |
| 754 // Verifies that the "proceed anyway" link isn't available when it is disabled | 752 // Verifies that the "proceed anyway" link isn't available when it is disabled |
| 755 // by the corresponding policy. Also verifies that sending the "proceed" | 753 // by the corresponding policy. Also verifies that sending the "proceed" |
| 756 // command anyway doesn't advance to the unsafe site. | 754 // command anyway doesn't advance to the unsafe site. |
| 757 IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, ProceedDisabled) { | 755 IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, ProceedDisabled) { |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1016 IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageIDNTest, | 1014 IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageIDNTest, |
| 1017 SafeBrowsingBlockingPageDecodesIDN) { | 1015 SafeBrowsingBlockingPageDecodesIDN) { |
| 1018 EXPECT_TRUE(VerifyIDNDecoded()); | 1016 EXPECT_TRUE(VerifyIDNDecoded()); |
| 1019 } | 1017 } |
| 1020 | 1018 |
| 1021 INSTANTIATE_TEST_CASE_P(SafeBrowsingBlockingPageIDNTestWithThreatType, | 1019 INSTANTIATE_TEST_CASE_P(SafeBrowsingBlockingPageIDNTestWithThreatType, |
| 1022 SafeBrowsingBlockingPageIDNTest, | 1020 SafeBrowsingBlockingPageIDNTest, |
| 1023 testing::Values(SB_THREAT_TYPE_URL_MALWARE, | 1021 testing::Values(SB_THREAT_TYPE_URL_MALWARE, |
| 1024 SB_THREAT_TYPE_URL_PHISHING, | 1022 SB_THREAT_TYPE_URL_PHISHING, |
| 1025 SB_THREAT_TYPE_URL_UNWANTED)); | 1023 SB_THREAT_TYPE_URL_UNWANTED)); |
| 1024 |
| 1025 } // namespace safe_browsing |
| OLD | NEW |