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 ba69fe78eb8b47aee9d8ebc1bb8ecb8fff4a3cc8..f330972736cf467df881669f298e4a5e9226348d 100644 |
| --- a/chrome/browser/ssl/ssl_browser_tests.cc |
| +++ b/chrome/browser/ssl/ssl_browser_tests.cc |
| @@ -19,6 +19,7 @@ |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/safe_browsing/ping_manager.h" |
| #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| +#include "chrome/browser/ssl/chrome_ssl_host_state_delegate.h" |
| #include "chrome/browser/ssl/ssl_blocking_page.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_commands.h" |
| @@ -2129,6 +2130,36 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, InterstitialNotAffectedByHideShow) { |
| EXPECT_TRUE(tab->GetRenderWidgetHostView()->IsShowing()); |
| } |
| +// Verifies that if a bad certificate is seen for a host and the user proceeds |
| +// through the interstitial, the decision to proceed is initially remembered. |
| +// However, if this is followed by another visit, and a good certificate |
| +// is seen for the same host, the original exception is forgotten. |
| +IN_PROC_BROWSER_TEST_F(SSLUITest, BadCertFollowedByGoodCert) { |
| + ASSERT_TRUE(https_server_mismatched_.Start()); |
| + |
| + ui_test_utils::NavigateToURL( |
| + browser(), https_server_mismatched_.GetURL("files/ssl/google.html")); |
| + WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); |
| + |
| + ChromeSSLHostStateDelegate* state = |
| + reinterpret_cast<ChromeSSLHostStateDelegate*>( |
| + Profile::FromBrowserContext(tab->GetBrowserContext()) |
| + ->GetSSLHostStateDelegate()); |
| + |
| + ProceedThroughInterstitial(tab); |
| + |
| + EXPECT_TRUE(state->HasAllowException(tab->GetURL().host())); |
| + |
|
davidben
2015/04/07 21:08:43
You should probably flush the socket pools here fo
jww
2015/04/08 00:57:40
Done.
|
| + net::SpawnedTestServer::SSLOptions new_options( |
| + net::SpawnedTestServer::SSLOptions::CERT_OK); |
| + https_server_mismatched_.set_ssl_options(new_options); |
| + ui_test_utils::NavigateToURL( |
| + browser(), https_server_mismatched_.GetURL("files/ssl/google.html")); |
| + tab = browser()->tab_strip_model()->GetActiveWebContents(); |
| + |
| + EXPECT_FALSE(state->HasAllowException(tab->GetURL().host())); |
| +} |
| + |
| class SSLBlockingPageIDNTest : public SecurityInterstitialIDNTest { |
| protected: |
| // SecurityInterstitialIDNTest implementation |