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

Unified Diff: chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc

Issue 2270283002: Downgrade security state after user clicks through SB interstitial (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove unnecessary assert in tests Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
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 1b92c1e0d4ca5252bea38c4fabd24ae4dc91a756..4f91ff86f28121f534d5041fa0fe4ef98a4e9677 100644
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
@@ -25,6 +25,8 @@
#include "chrome/browser/safe_browsing/test_safe_browsing_service.h"
#include "chrome/browser/safe_browsing/threat_details.h"
#include "chrome/browser/safe_browsing/ui_manager.h"
+#include "chrome/browser/ssl/cert_verifier_browser_test.h"
+#include "chrome/browser/ssl/chrome_security_state_model_client.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
@@ -47,6 +49,9 @@
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/test_browser_thread.h"
#include "content/public/test/test_utils.h"
+#include "net/cert/cert_verify_result.h"
+#include "net/cert/mock_cert_verifier.h"
+#include "net/test/embedded_test_server/embedded_test_server.h"
#include "net/test/url_request/url_request_mock_http_job.h"
using chrome_browser_interstitials::SecurityInterstitialIDNTest;
@@ -270,7 +275,7 @@ class TestSafeBrowsingBlockingPageFactory
// Tests the safe browsing blocking page in a browser.
class SafeBrowsingBlockingPageBrowserTest
- : public InProcessBrowserTest,
+ : public CertVerifierBrowserTest,
public testing::WithParamInterface<testing::tuple<SBThreatType, bool>> {
public:
enum Visibility {
@@ -279,7 +284,8 @@ class SafeBrowsingBlockingPageBrowserTest
VISIBLE = 1
};
- SafeBrowsingBlockingPageBrowserTest() {}
+ SafeBrowsingBlockingPageBrowserTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
void SetUp() override {
// Test UI manager and test database manager should be set before
@@ -532,12 +538,26 @@ class SafeBrowsingBlockingPageBrowserTest
EXPECT_EQ(expected_tag_name, actual_resource.tag_name());
}
+ void SetUpMockCertVerifierForHttpsServer(net::CertStatus cert_status,
+ int net_result) {
+ ASSERT_TRUE(https_server_.Start());
+ scoped_refptr<net::X509Certificate> cert(https_server_.GetCertificate());
+ net::CertVerifyResult verify_result;
+ verify_result.is_issued_by_known_root = true;
+ verify_result.verified_cert = cert;
+ verify_result.cert_status = cert_status;
+
+ mock_cert_verifier()->AddResultForCert(cert.get(), verify_result,
+ net_result);
+ }
+
protected:
TestThreatDetailsFactory details_factory_;
private:
TestSafeBrowsingServiceFactory factory_;
TestSafeBrowsingBlockingPageFactory blocking_page_factory_;
+ net::EmbeddedTestServer https_server_;
DISALLOW_COPY_AND_ASSIGN(SafeBrowsingBlockingPageBrowserTest);
};
@@ -993,6 +1013,37 @@ IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest, WhitelistUnsaved) {
AssertNoInterstitial(true);
}
+IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest,
+ SecurityStatePostInterstitial) {
+ SetupWarningAndNavigate();
+ EXPECT_TRUE(ClickAndWaitForDetach("proceed-link"));
+ AssertNoInterstitial(true);
+
+ WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
+ ASSERT_TRUE(tab);
+ ChromeSecurityStateModelClient* model_client =
+ ChromeSecurityStateModelClient::FromWebContents(tab);
+ ASSERT_TRUE(model_client);
+ EXPECT_EQ(security_state::SecurityStateModel::SECURITY_ERROR,
+ model_client->GetSecurityInfo().security_level);
+}
+
+IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageBrowserTest,
+ HTTPSOverridePostInterstitial) {
estark 2016/08/24 05:15:39 Either I'm missing something or this test is not t
Jialiu Lin 2016/08/24 06:27:20 This test seems very similar to the previous one,
felt 2016/08/24 19:27:19 All of the existing SB tests, including SecuritySt
felt 2016/08/24 19:27:19 Whoops you're right, I was missing an if-statement
+ SetUpMockCertVerifierForHttpsServer(0, net::OK);
+ SetupWarningAndNavigate();
+ EXPECT_TRUE(ClickAndWaitForDetach("proceed-link"));
+ AssertNoInterstitial(true);
+
+ WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
+ ASSERT_TRUE(tab);
+ ChromeSecurityStateModelClient* model_client =
+ ChromeSecurityStateModelClient::FromWebContents(tab);
+ ASSERT_TRUE(model_client);
+ EXPECT_EQ(security_state::SecurityStateModel::SECURITY_ERROR,
+ model_client->GetSecurityInfo().security_level);
+}
+
INSTANTIATE_TEST_CASE_P(
SafeBrowsingBlockingPageBrowserTestWithThreatTypeAndIsolationSetting,
SafeBrowsingBlockingPageBrowserTest,

Powered by Google App Engine
This is Rietveld 408576698