Chromium Code Reviews| Index: chrome/browser/ssl/ssl_browser_tests.cc |
| diff --git a/chrome/browser/ssl/ssl_browser_tests.cc b/chrome/browser/ssl/ssl_browser_tests.cc |
| index 4d1ffdc5f137b86284d4beedce12b95dfd010d37..d2326bda1769c946af7a263ee58a7df61d691725 100644 |
| --- a/chrome/browser/ssl/ssl_browser_tests.cc |
| +++ b/chrome/browser/ssl/ssl_browser_tests.cc |
| @@ -380,6 +380,16 @@ class SSLUITestIgnoreCertErrors : public SSLUITest { |
| } |
| }; |
| +class SSLUITestIgnoreLocalhostCertErrors : public SSLUITest { |
| + public: |
| + SSLUITestIgnoreLocalhostCertErrors() : SSLUITest() {} |
| + |
| + void SetUpCommandLine(base::CommandLine* command_line) override { |
| + // Browser will ignore certificate errors on localhost. |
| + command_line->AppendSwitch(switches::kAllowInsecureLocalhost); |
| + } |
| +}; |
| + |
| // Visits a regular page over http. |
| IN_PROC_BROWSER_TEST_F(SSLUITest, TestHTTP) { |
| ASSERT_TRUE(test_server()->Start()); |
| @@ -534,6 +544,36 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, MAYBE_TestHTTPSExpiredCertAndDontProceed) { |
| CheckUnauthenticatedState(tab, AuthState::NONE); |
| } |
| +// Test that localhost pages don't show an interstitial. |
| +IN_PROC_BROWSER_TEST_F(SSLUITestIgnoreLocalhostCertErrors, |
| + TestNoInterstitialOnLocalhost) { |
| + ASSERT_TRUE(https_server_.Start()); |
| + |
| + WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); |
| + |
| + // Navigate to a localhost page. |
| + GURL url = https_server_.GetURL("files/ssl/page_with_subresource.html"); |
| + GURL::Replacements replacements; |
| + std::string new_host("localhost"); |
| + replacements.SetHostStr(new_host); |
| + url = url.ReplaceComponents(replacements); |
| + |
| + ui_test_utils::NavigateToURL(browser(), url); |
|
Ryan Sleevi
2015/02/04 19:34:41
Unfortunately, I think this test is going to be on
estark
2015/02/05 03:02:38
Is there any chance that using 127.0.0.1 instead o
|
| + |
| + // We should see no interstitial, but we should have an error |
| + // (red-crossed-out-https) in the URL bar. |
| + CheckAuthenticationBrokenState(tab, |
| + net::CERT_STATUS_COMMON_NAME_INVALID, |
| + AuthState::NONE); |
| + |
| + // We should see that the script tag in the page loaded and ran (and |
| + // wasn't blocked by the certificate error). |
| + base::string16 title; |
| + base::string16 expected_title = base::ASCIIToUTF16("This script has loaded"); |
| + ui_test_utils::GetCurrentTabTitle(browser(), &title); |
| + EXPECT_EQ(title, expected_title); |
| +} |
| + |
| // Visits a page with https error and then goes back using Browser::GoBack. |
| IN_PROC_BROWSER_TEST_F(SSLUITest, |
| TestHTTPSExpiredCertAndGoBackViaButton) { |