Chromium Code Reviews| Index: chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc |
| diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc |
| index 275df6d24c6fa8455776618282692478c271b88d..c8c4141ee2d208fbf0357258c834b8f704397b53 100644 |
| --- a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc |
| +++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc |
| @@ -305,18 +305,18 @@ class TestMalwareDetailsFactory : public MalwareDetailsFactory { |
| }; |
| // A SafeBrowingBlockingPage class that lets us wait until it's hidden. |
| -class TestSafeBrowsingBlockingPage : public SafeBrowsingBlockingPageV2 { |
| +class TestSafeBrowsingBlockingPageV2 : public SafeBrowsingBlockingPageV2 { |
| public: |
| - TestSafeBrowsingBlockingPage(SafeBrowsingUIManager* manager, |
| - WebContents* web_contents, |
| - const UnsafeResourceList& unsafe_resources) |
| + TestSafeBrowsingBlockingPageV2(SafeBrowsingUIManager* manager, |
| + WebContents* web_contents, |
| + const UnsafeResourceList& unsafe_resources) |
| : SafeBrowsingBlockingPageV2(manager, web_contents, unsafe_resources), |
| wait_for_delete_(false) { |
| // Don't wait the whole 3 seconds for the browser test. |
| malware_details_proceed_delay_ms_ = 100; |
| } |
| - virtual ~TestSafeBrowsingBlockingPage() { |
| + virtual ~TestSafeBrowsingBlockingPageV2() { |
| LOG(INFO) << __FUNCTION__; |
| if (!wait_for_delete_) |
| return; |
| @@ -350,10 +350,56 @@ class TestSafeBrowsingBlockingPage : public SafeBrowsingBlockingPageV2 { |
| bool wait_for_delete_; |
| }; |
| +// A SafeBrowingBlockingPage class that lets us wait until it's hidden. |
| +class TestSafeBrowsingBlockingPageV3 : public SafeBrowsingBlockingPageV3 { |
| + public: |
| + TestSafeBrowsingBlockingPageV3(SafeBrowsingUIManager* manager, |
| + WebContents* web_contents, |
| + const UnsafeResourceList& unsafe_resources) |
| + : SafeBrowsingBlockingPageV3(manager, web_contents, unsafe_resources), |
| + wait_for_delete_(false) { |
| + // Don't wait the whole 3 seconds for the browser test. |
| + malware_details_proceed_delay_ms_ = 100; |
| + } |
| + |
| + virtual ~TestSafeBrowsingBlockingPageV3() { |
| + LOG(INFO) << __FUNCTION__; |
| + if (!wait_for_delete_) |
| + return; |
| + |
| + // Notify that we are gone |
| + base::MessageLoopForUI::current()->Quit(); |
| + wait_for_delete_ = false; |
| + } |
| + |
| + void WaitForDelete() { |
| + LOG(INFO) << __FUNCTION__; |
| + wait_for_delete_ = true; |
| + content::RunMessageLoop(); |
| + } |
| + |
| + // InterstitialPageDelegate methods: |
| + virtual void CommandReceived(const std::string& command) OVERRIDE { |
| + LOG(INFO) << __FUNCTION__ << " " << command; |
| + SafeBrowsingBlockingPageV3::CommandReceived(command); |
| + } |
| + virtual void OnProceed() OVERRIDE { |
| + LOG(INFO) << __FUNCTION__; |
| + SafeBrowsingBlockingPageV3::OnProceed(); |
| + } |
| + virtual void OnDontProceed() OVERRIDE { |
| + LOG(INFO) << __FUNCTION__; |
| + SafeBrowsingBlockingPageV3::OnDontProceed(); |
| + } |
| + |
| + private: |
| + bool wait_for_delete_; |
| +}; |
| + |
| class TestSafeBrowsingBlockingPageFactory |
| : public SafeBrowsingBlockingPageFactory { |
| public: |
| - TestSafeBrowsingBlockingPageFactory() { } |
| + TestSafeBrowsingBlockingPageFactory() : version_(2) { } |
| virtual ~TestSafeBrowsingBlockingPageFactory() { } |
| virtual SafeBrowsingBlockingPage* CreateSafeBrowsingPage( |
| @@ -361,28 +407,42 @@ class TestSafeBrowsingBlockingPageFactory |
| WebContents* web_contents, |
| const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) |
| OVERRIDE { |
| - return new TestSafeBrowsingBlockingPage(delegate, web_contents, |
| - unsafe_resources); |
| + if (version_ == 3) { |
| + return new TestSafeBrowsingBlockingPageV3(delegate, web_contents, |
| + unsafe_resources); |
| + } |
| + return new TestSafeBrowsingBlockingPageV2(delegate, web_contents, |
| + unsafe_resources); |
| } |
| + |
| + void SetTestVersion(int version) { |
| + version_ = version; |
| + } |
| + |
| + private: |
| + int version_; |
| }; |
| } // namespace |
| // Tests the safe browsing blocking page in a browser. |
| -class SafeBrowsingBlockingPageTest : public InProcessBrowserTest { |
| +class SafeBrowsingBlockingPageBrowserTest |
| + : public InProcessBrowserTest, |
| + public testing::WithParamInterface<int> { |
| public: |
| enum Visibility { |
| VISIBILITY_ERROR = -1, |
| HIDDEN = 0, |
| - VISIBLE = 1, |
| + VISIBLE = 1 |
| }; |
| - SafeBrowsingBlockingPageTest() { |
| + SafeBrowsingBlockingPageBrowserTest() { |
| } |
| virtual void SetUp() OVERRIDE { |
| SafeBrowsingService::RegisterFactory(&factory_); |
| SafeBrowsingBlockingPage::RegisterFactory(&blocking_page_factory_); |
| + blocking_page_factory_.SetTestVersion(GetParam()); |
| MalwareDetails::RegisterFactory(&details_factory_); |
| InProcessBrowserTest::SetUp(); |
| } |
| @@ -472,10 +532,17 @@ class SafeBrowsingBlockingPageTest : public InProcessBrowserTest { |
| if (contents->ShowingInterstitialPage() && wait_for_delete) { |
| // We'll get notified when the interstitial is deleted. |
| - TestSafeBrowsingBlockingPage* page = |
| - static_cast<TestSafeBrowsingBlockingPage*>( |
| - contents->GetInterstitialPage()->GetDelegateForTesting()); |
| - page->WaitForDelete(); |
| + if (GetParam() == 3) { |
| + TestSafeBrowsingBlockingPageV3* page = |
| + static_cast<TestSafeBrowsingBlockingPageV3*>( |
| + contents->GetInterstitialPage()->GetDelegateForTesting()); |
| + page->WaitForDelete(); |
| + } else { |
| + TestSafeBrowsingBlockingPageV2* page = |
| + static_cast<TestSafeBrowsingBlockingPageV2*>( |
| + contents->GetInterstitialPage()->GetDelegateForTesting()); |
| + page->WaitForDelete(); |
| + } |
| } |
| // Can't use InterstitialPage::GetInterstitialPage() because that |
| @@ -630,9 +697,13 @@ class SafeBrowsingBlockingPageTest : public InProcessBrowserTest { |
| TestSafeBrowsingServiceFactory factory_; |
| TestSafeBrowsingBlockingPageFactory blocking_page_factory_; |
| - DISALLOW_COPY_AND_ASSIGN(SafeBrowsingBlockingPageTest); |
| + DISALLOW_COPY_AND_ASSIGN(SafeBrowsingBlockingPageBrowserTest); |
| }; |
| +INSTANTIATE_TEST_CASE_P(SafeBrowsingInterstitialVersions, |
| + SafeBrowsingBlockingPageBrowserTest, |
| + testing::Values(2, 3)); |
| + |
| // TODO(linux_aura) http://crbug.com/163931 |
| // TODO(win_aura) http://crbug.com/154081 |
| #if defined(USE_AURA) && !defined(OS_CHROMEOS) |
| @@ -640,7 +711,7 @@ class SafeBrowsingBlockingPageTest : public InProcessBrowserTest { |
| #else |
| #define MAYBE_MalwareRedirectInIFrameCanceled MalwareRedirectInIFrameCanceled |
| #endif |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| MAYBE_MalwareRedirectInIFrameCanceled) { |
| // 1. Test the case that redirect is a subresource. |
| MalwareRedirectCancelAndProceed("openWinIFrame"); |
| @@ -649,7 +720,7 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| AssertNoInterstitial(true); |
| } |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| MalwareRedirectCanceled) { |
| // 2. Test the case that redirect is the only resource. |
| MalwareRedirectCancelAndProceed("openWin"); |
| @@ -658,7 +729,8 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| EXPECT_TRUE(YesInterstitial()); |
| } |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MalwareDontProceed) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| + MalwareDontProceed) { |
| #if defined(OS_WIN) && defined(USE_ASH) |
| // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) |
| @@ -667,35 +739,51 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MalwareDontProceed) { |
| SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE); |
| - EXPECT_EQ(VISIBLE, GetVisibility("malware-icon")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("subresource-icon")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("phishing-icon")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("check-report")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| - EXPECT_TRUE(Click("see-more-link")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("proceed")); |
| + if (GetParam() == 2) { |
| + EXPECT_EQ(VISIBLE, GetVisibility("malware-icon")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("subresource-icon")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("phishing-icon")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("check-report")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| + EXPECT_TRUE(Click("see-more-link")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("proceed")); |
| + EXPECT_TRUE(ClickAndWaitForDetach("back")); |
| + } else { |
| + EXPECT_EQ(VISIBLE, GetVisibility("primary-button")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("details")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("error-code")); |
| + EXPECT_TRUE(Click("details-button")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("details")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("proceed-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("error-code")); |
| + EXPECT_TRUE(ClickAndWaitForDetach("primary-button")); |
| + } |
| - EXPECT_TRUE(ClickAndWaitForDetach("back")); |
| AssertNoInterstitial(false); // Assert the interstitial is gone |
| EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank" |
| browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); |
| } |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MalwareProceed) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, MalwareProceed) { |
| GURL url = SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE); |
| - EXPECT_TRUE(ClickAndWaitForDetach("proceed")); |
| + if (GetParam() == 2) |
| + EXPECT_TRUE(ClickAndWaitForDetach("proceed")); |
| + else |
| + EXPECT_TRUE(ClickAndWaitForDetach("proceed-link")); |
| AssertNoInterstitial(true); // Assert the interstitial is gone. |
| EXPECT_EQ(url, |
| browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); |
| } |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| - MalwareLearnMore) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| + MalwareLearnMoreV2) { |
| + if (GetParam() == 3) return; // Don't have this link in V3. |
| SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE); |
| EXPECT_TRUE(ClickAndWaitForDetach("learn-more-link")); |
| @@ -707,7 +795,7 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| browser()->tab_strip_model()->GetActiveWebContents()->GetURL().path()); |
| } |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| MalwareIframeDontProceed) { |
| #if defined(OS_WIN) && defined(USE_ASH) |
| // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| @@ -717,29 +805,45 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| SetupMalwareIframeWarningAndNavigate(); |
| - EXPECT_EQ(HIDDEN, GetVisibility("malware-icon")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("subresource-icon")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("phishing-icon")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("check-report")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| - EXPECT_TRUE(Click("see-more-link")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("proceed")); |
| + if (GetParam() == 2) { |
| + EXPECT_EQ(HIDDEN, GetVisibility("malware-icon")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("subresource-icon")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("phishing-icon")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("check-report")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| + EXPECT_TRUE(Click("see-more-link")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("proceed")); |
| + EXPECT_TRUE(ClickAndWaitForDetach("back")); |
| + } else { |
| + EXPECT_EQ(VISIBLE, GetVisibility("primary-button")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("details")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("error-code")); |
| + EXPECT_TRUE(Click("details-button")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("details")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("proceed-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("error-code")); |
| + EXPECT_TRUE(ClickAndWaitForDetach("primary-button")); |
| + } |
| - EXPECT_TRUE(ClickAndWaitForDetach("back")); |
| AssertNoInterstitial(false); // Assert the interstitial is gone |
| EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank" |
| browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); |
| } |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MalwareIframeProceed) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| + MalwareIframeProceed) { |
| GURL url = SetupMalwareIframeWarningAndNavigate(); |
| - EXPECT_TRUE(ClickAndWaitForDetach("proceed")); |
| + if (GetParam() == 2) |
| + EXPECT_TRUE(ClickAndWaitForDetach("proceed")); |
| + else |
| + EXPECT_TRUE(ClickAndWaitForDetach("proceed-link")); |
| AssertNoInterstitial(true); // Assert the interstitial is gone |
| EXPECT_EQ(url, |
| @@ -753,8 +857,11 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MalwareIframeProceed) { |
| #else |
| #define MAYBE_MalwareIframeReportDetails MalwareIframeReportDetails |
| #endif |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| MAYBE_MalwareIframeReportDetails) { |
| + // TODO(felt): Enable for V3 when the checkbox is added. |
| + if (GetParam() == 3) return; |
| + |
| scoped_refptr<content::MessageLoopRunner> malware_report_sent_runner( |
| new content::MessageLoopRunner); |
| SetReportSentCallback(malware_report_sent_runner->QuitClosure()); |
| @@ -795,12 +902,13 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, |
| // Verifies that the "proceed anyway" link isn't available when it is disabled |
| // by the corresponding policy. Also verifies that sending the "proceed" |
| // command anyway doesn't advance to the malware site. |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, ProceedDisabled) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, ProceedDisabled) { |
| #if defined(OS_WIN) && defined(USE_ASH) |
| // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) |
| return; |
| #endif |
| + if (GetParam() == 3) return; |
| // Simulate a policy disabling the "proceed anyway" link. |
| browser()->profile()->GetPrefs()->SetBoolean( |
| @@ -808,17 +916,28 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, ProceedDisabled) { |
| SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE); |
| - EXPECT_EQ(VISIBLE, GetVisibility("check-report")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("proceed-span")); |
| - EXPECT_TRUE(Click("see-more-link")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("proceed-span")); |
| + if (GetParam() == 2) { |
| + EXPECT_EQ(VISIBLE, GetVisibility("check-report")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed-span")); |
| + EXPECT_TRUE(Click("see-more-link")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed-span")); |
| + EXPECT_TRUE(ClickAndWaitForDetach("proceed")); |
| + } else { |
| + EXPECT_EQ(VISIBLE, GetVisibility("primary-button")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("details")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("final-paragraph")); |
| + EXPECT_TRUE(Click("details-button")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("final-paragraph")); |
| + SendCommand("proceed"); |
|
mattm
2014/06/14 02:00:20
Why is this SendCommand instead of ClickAndWaitFor
felt
2014/06/14 02:10:27
When a warning is non-overridable, I don't attach
|
| + } |
| // The "proceed" command should go back instead, if proceeding is disabled. |
| - EXPECT_TRUE(ClickAndWaitForDetach("proceed")); |
| AssertNoInterstitial(true); |
| EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank" |
| browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); |
| @@ -827,12 +946,14 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, ProceedDisabled) { |
| // Verifies that the reporting checkbox is hidden on non-HTTP pages. |
| // TODO(mattm): Should also verify that no report is sent, but there isn't a |
| // good way to do that in the current design. |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, ReportingDisabled) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, ReportingDisabled) { |
| #if defined(OS_WIN) && defined(USE_ASH) |
| // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) |
| return; |
| #endif |
| + // TODO(felt): Enable for V3 when the checkbox is added. |
| + if (GetParam() == 3) return; |
| browser()->profile()->GetPrefs()->SetBoolean( |
| prefs::kSafeBrowsingReportingEnabled, true); |
| @@ -859,7 +980,8 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, ReportingDisabled) { |
| browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); |
| } |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, PhishingDontProceed) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| + PhishingDontProceed) { |
| #if defined(OS_WIN) && defined(USE_ASH) |
| // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) |
| @@ -868,19 +990,31 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, PhishingDontProceed) { |
| SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING); |
| - EXPECT_EQ(HIDDEN, GetVisibility("malware-icon")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("subresource-icon")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("phishing-icon")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("check-report")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| - EXPECT_TRUE(Click("see-more-link")); |
| - EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("report-error-link")); |
| - EXPECT_EQ(VISIBLE, GetVisibility("proceed")); |
| + if (GetParam() == 2) { |
| + EXPECT_EQ(HIDDEN, GetVisibility("malware-icon")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("subresource-icon")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("phishing-icon")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("check-report")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("report-error-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed")); |
| + EXPECT_TRUE(Click("see-more-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("report-error-link")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("proceed")); |
| + EXPECT_TRUE(ClickAndWaitForDetach("back")); |
| + } else { |
| + EXPECT_EQ(VISIBLE, GetVisibility("primary-button")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("details")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("proceed-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("error-code")); |
| + EXPECT_TRUE(Click("details-button")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("details")); |
| + EXPECT_EQ(VISIBLE, GetVisibility("proceed-link")); |
| + EXPECT_EQ(HIDDEN, GetVisibility("error-code")); |
| + EXPECT_TRUE(ClickAndWaitForDetach("primary-button")); |
| + } |
| - EXPECT_TRUE(ClickAndWaitForDetach("back")); |
| AssertNoInterstitial(false); // Assert the interstitial is gone |
| EXPECT_EQ(GURL(url::kAboutBlankURL), // We are back to "about:blank". |
| browser()->tab_strip_model()->GetActiveWebContents()->GetURL()); |
| @@ -894,11 +1028,15 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, PhishingDontProceed) { |
| #define MAYBE_PhishingProceed PhishingProceed |
| #endif |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MAYBE_PhishingProceed) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| + MAYBE_PhishingProceed) { |
| GURL url = SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING); |
| LOG(INFO) << "1"; |
| - EXPECT_TRUE(ClickAndWaitForDetach("proceed")); |
| + if (GetParam() == 2) |
| + EXPECT_TRUE(ClickAndWaitForDetach("proceed")); |
| + else |
| + EXPECT_TRUE(ClickAndWaitForDetach("primary-button")); |
| LOG(INFO) << "2"; |
| AssertNoInterstitial(true); // Assert the interstitial is gone |
| LOG(INFO) << "3"; |
| @@ -907,7 +1045,9 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MAYBE_PhishingProceed) { |
| LOG(INFO) << "4"; |
| } |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, PhishingReportError) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| + PhishingReportErrorV2) { |
| + if (GetParam() == 3) return; // Not supported in V3. |
| SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING); |
| EXPECT_TRUE(ClickAndWaitForDetach("report-error-link")); |
| @@ -927,11 +1067,15 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, PhishingReportError) { |
| #define MAYBE_PhishingLearnMore PhishingLearnMore |
| #endif |
| -IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MAYBE_PhishingLearnMore) { |
| +IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, |
| + MAYBE_PhishingLearnMore) { |
| SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING); |
| LOG(INFO) << "1"; |
| - EXPECT_TRUE(ClickAndWaitForDetach("learn-more-link")); |
| + if (GetParam() == 2) |
| + EXPECT_TRUE(ClickAndWaitForDetach("learn-more-link")); |
| + else |
| + EXPECT_TRUE(ClickAndWaitForDetach("help-link")); |
| LOG(INFO) << "2"; |
| AssertNoInterstitial(false); // Assert the interstitial is gone |