| 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 #include "chrome/browser/ui/website_settings/website_settings.h" | 5 #include "chrome/browser/ui/website_settings/website_settings.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/at_exit.h" | 10 #include "base/at_exit.h" |
| 11 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
| 12 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
| 13 #include "base/strings/string16.h" | 13 #include "base/strings/string16.h" |
| 14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
| 15 #include "build/build_config.h" | 15 #include "build/build_config.h" |
| 16 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 16 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| 17 #include "chrome/browser/infobars/infobar_service.h" | 17 #include "chrome/browser/infobars/infobar_service.h" |
| 18 #include "chrome/browser/ui/website_settings/website_settings_ui.h" | 18 #include "chrome/browser/ui/website_settings/website_settings_ui.h" |
| 19 #include "chrome/browser/usb/usb_chooser_context.h" | 19 #include "chrome/browser/usb/usb_chooser_context.h" |
| 20 #include "chrome/browser/usb/usb_chooser_context_factory.h" | 20 #include "chrome/browser/usb/usb_chooser_context_factory.h" |
| 21 #include "chrome/grit/theme_resources.h" | 21 #include "chrome/grit/theme_resources.h" |
| 22 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 22 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| 23 #include "chrome/test/base/testing_profile.h" | 23 #include "chrome/test/base/testing_profile.h" |
| 24 #include "components/content_settings/core/browser/host_content_settings_map.h" | 24 #include "components/content_settings/core/browser/host_content_settings_map.h" |
| 25 #include "components/content_settings/core/common/content_settings.h" | 25 #include "components/content_settings/core/common/content_settings.h" |
| 26 #include "components/content_settings/core/common/content_settings_types.h" | 26 #include "components/content_settings/core/common/content_settings_types.h" |
| 27 #include "components/infobars/core/infobar.h" | 27 #include "components/infobars/core/infobar.h" |
| 28 #include "content/public/browser/cert_store.h" | |
| 29 #include "content/public/common/ssl_status.h" | 28 #include "content/public/common/ssl_status.h" |
| 30 #include "device/core/mock_device_client.h" | 29 #include "device/core/mock_device_client.h" |
| 31 #include "device/usb/mock_usb_device.h" | 30 #include "device/usb/mock_usb_device.h" |
| 32 #include "device/usb/mock_usb_service.h" | 31 #include "device/usb/mock_usb_service.h" |
| 33 #include "net/cert/cert_status_flags.h" | 32 #include "net/cert/cert_status_flags.h" |
| 34 #include "net/cert/x509_certificate.h" | 33 #include "net/cert/x509_certificate.h" |
| 35 #include "net/ssl/ssl_connection_status_flags.h" | 34 #include "net/ssl/ssl_connection_status_flags.h" |
| 36 #include "net/test/cert_test_util.h" | 35 #include "net/test/cert_test_util.h" |
| 37 #include "net/test/test_certificate_data.h" | 36 #include "net/test/test_certificate_data.h" |
| 38 #include "net/test/test_data_directory.h" | 37 #include "net/test/test_data_directory.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 60 int bitmask = version << net::SSL_CONNECTION_VERSION_SHIFT; | 59 int bitmask = version << net::SSL_CONNECTION_VERSION_SHIFT; |
| 61 return bitmask | connection_status; | 60 return bitmask | connection_status; |
| 62 } | 61 } |
| 63 | 62 |
| 64 int SetSSLCipherSuite(int connection_status, int cipher_suite) { | 63 int SetSSLCipherSuite(int connection_status, int cipher_suite) { |
| 65 // Clear cipher suite bits (the 16 lowest bits). | 64 // Clear cipher suite bits (the 16 lowest bits). |
| 66 connection_status &= ~net::SSL_CONNECTION_CIPHERSUITE_MASK; | 65 connection_status &= ~net::SSL_CONNECTION_CIPHERSUITE_MASK; |
| 67 return cipher_suite | connection_status; | 66 return cipher_suite | connection_status; |
| 68 } | 67 } |
| 69 | 68 |
| 70 class MockCertStore : public content::CertStore { | |
| 71 public: | |
| 72 virtual ~MockCertStore() {} | |
| 73 MOCK_METHOD2(StoreCert, int(net::X509Certificate*, int)); | |
| 74 MOCK_METHOD2(RetrieveCert, bool(int, scoped_refptr<net::X509Certificate>*)); | |
| 75 }; | |
| 76 | |
| 77 class MockWebsiteSettingsUI : public WebsiteSettingsUI { | 69 class MockWebsiteSettingsUI : public WebsiteSettingsUI { |
| 78 public: | 70 public: |
| 79 virtual ~MockWebsiteSettingsUI() {} | 71 virtual ~MockWebsiteSettingsUI() {} |
| 80 MOCK_METHOD1(SetCookieInfo, void(const CookieInfoList& cookie_info_list)); | 72 MOCK_METHOD1(SetCookieInfo, void(const CookieInfoList& cookie_info_list)); |
| 81 MOCK_METHOD2(SetPermissionInfo, | 73 MOCK_METHOD2(SetPermissionInfo, |
| 82 void(const PermissionInfoList& permission_info_list, | 74 void(const PermissionInfoList& permission_info_list, |
| 83 const ChosenObjectInfoList& chosen_object_info_list)); | 75 const ChosenObjectInfoList& chosen_object_info_list)); |
| 84 MOCK_METHOD1(SetIdentityInfo, void(const IdentityInfo& identity_info)); | 76 MOCK_METHOD1(SetIdentityInfo, void(const IdentityInfo& identity_info)); |
| 85 MOCK_METHOD1(SetSelectedTab, void(TabId tab_id)); | 77 MOCK_METHOD1(SetSelectedTab, void(TabId tab_id)); |
| 86 }; | 78 }; |
| 87 | 79 |
| 88 class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { | 80 class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { |
| 89 public: | 81 public: |
| 90 WebsiteSettingsTest() : cert_id_(0), url_("http://www.example.com") {} | 82 WebsiteSettingsTest() : url_("http://www.example.com") {} |
| 91 | 83 |
| 92 ~WebsiteSettingsTest() override {} | 84 ~WebsiteSettingsTest() override {} |
| 93 | 85 |
| 94 void SetUp() override { | 86 void SetUp() override { |
| 95 ChromeRenderViewHostTestHarness::SetUp(); | 87 ChromeRenderViewHostTestHarness::SetUp(); |
| 96 | 88 |
| 97 // Setup stub SSLStatus. | 89 // Setup stub SSLStatus. |
| 98 security_info_.security_level = SecurityStateModel::NONE; | 90 security_info_.security_level = SecurityStateModel::NONE; |
| 99 | 91 |
| 100 // Create the certificate. | 92 // Create the certificate. |
| 101 cert_id_ = 1; | |
| 102 cert_ = | 93 cert_ = |
| 103 net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem"); | 94 net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem"); |
| 104 ASSERT_TRUE(cert_); | 95 ASSERT_TRUE(cert_); |
| 105 | 96 |
| 106 TabSpecificContentSettings::CreateForWebContents(web_contents()); | 97 TabSpecificContentSettings::CreateForWebContents(web_contents()); |
| 107 InfoBarService::CreateForWebContents(web_contents()); | 98 InfoBarService::CreateForWebContents(web_contents()); |
| 108 | 99 |
| 109 // Setup the mock cert store. | |
| 110 EXPECT_CALL(cert_store_, RetrieveCert(cert_id_, _) ) | |
| 111 .Times(AnyNumber()) | |
| 112 .WillRepeatedly(DoAll(SetArgPointee<1>(cert_), Return(true))); | |
| 113 | |
| 114 // Setup mock ui. | 100 // Setup mock ui. |
| 115 mock_ui_.reset(new MockWebsiteSettingsUI()); | 101 mock_ui_.reset(new MockWebsiteSettingsUI()); |
| 116 ON_CALL(*mock_ui_, SetPermissionInfo(_, _)) | 102 ON_CALL(*mock_ui_, SetPermissionInfo(_, _)) |
| 117 .WillByDefault(Invoke(this, &WebsiteSettingsTest::SetPermissionInfo)); | 103 .WillByDefault(Invoke(this, &WebsiteSettingsTest::SetPermissionInfo)); |
| 118 } | 104 } |
| 119 | 105 |
| 120 void TearDown() override { | 106 void TearDown() override { |
| 121 ASSERT_TRUE(website_settings_.get()) | 107 ASSERT_TRUE(website_settings_.get()) |
| 122 << "No WebsiteSettings instance created."; | 108 << "No WebsiteSettings instance created."; |
| 123 RenderViewHostTestHarness::TearDown(); | 109 RenderViewHostTestHarness::TearDown(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 139 for (WebsiteSettingsUI::ChosenObjectInfo* chosen_object_info : | 125 for (WebsiteSettingsUI::ChosenObjectInfo* chosen_object_info : |
| 140 chosen_object_info_list) | 126 chosen_object_info_list) |
| 141 last_chosen_object_info_.push_back(base::WrapUnique(chosen_object_info)); | 127 last_chosen_object_info_.push_back(base::WrapUnique(chosen_object_info)); |
| 142 } | 128 } |
| 143 | 129 |
| 144 void ResetMockUI() { mock_ui_.reset(new MockWebsiteSettingsUI()); } | 130 void ResetMockUI() { mock_ui_.reset(new MockWebsiteSettingsUI()); } |
| 145 | 131 |
| 146 void ClearWebsiteSettings() { website_settings_.reset(nullptr); } | 132 void ClearWebsiteSettings() { website_settings_.reset(nullptr); } |
| 147 | 133 |
| 148 const GURL& url() const { return url_; } | 134 const GURL& url() const { return url_; } |
| 149 MockCertStore* cert_store() { return &cert_store_; } | 135 scoped_refptr<net::X509Certificate> cert() { return cert_; } |
| 150 int cert_id() { return cert_id_; } | |
| 151 MockWebsiteSettingsUI* mock_ui() { return mock_ui_.get(); } | 136 MockWebsiteSettingsUI* mock_ui() { return mock_ui_.get(); } |
| 152 const SecurityStateModel::SecurityInfo& security_info() { | 137 const SecurityStateModel::SecurityInfo& security_info() { |
| 153 return security_info_; | 138 return security_info_; |
| 154 } | 139 } |
| 155 const std::vector<std::unique_ptr<WebsiteSettingsUI::ChosenObjectInfo>>& | 140 const std::vector<std::unique_ptr<WebsiteSettingsUI::ChosenObjectInfo>>& |
| 156 last_chosen_object_info() { | 141 last_chosen_object_info() { |
| 157 return last_chosen_object_info_; | 142 return last_chosen_object_info_; |
| 158 } | 143 } |
| 159 TabSpecificContentSettings* tab_specific_content_settings() { | 144 TabSpecificContentSettings* tab_specific_content_settings() { |
| 160 return TabSpecificContentSettings::FromWebContents(web_contents()); | 145 return TabSpecificContentSettings::FromWebContents(web_contents()); |
| 161 } | 146 } |
| 162 InfoBarService* infobar_service() { | 147 InfoBarService* infobar_service() { |
| 163 return InfoBarService::FromWebContents(web_contents()); | 148 return InfoBarService::FromWebContents(web_contents()); |
| 164 } | 149 } |
| 165 | 150 |
| 166 WebsiteSettings* website_settings() { | 151 WebsiteSettings* website_settings() { |
| 167 if (!website_settings_.get()) { | 152 if (!website_settings_.get()) { |
| 168 website_settings_.reset(new WebsiteSettings( | 153 website_settings_.reset(new WebsiteSettings( |
| 169 mock_ui(), profile(), tab_specific_content_settings(), web_contents(), | 154 mock_ui(), profile(), tab_specific_content_settings(), web_contents(), |
| 170 url(), security_info(), cert_store())); | 155 url(), security_info())); |
| 171 } | 156 } |
| 172 return website_settings_.get(); | 157 return website_settings_.get(); |
| 173 } | 158 } |
| 174 | 159 |
| 175 device::MockUsbService& usb_service() { | 160 device::MockUsbService& usb_service() { |
| 176 return *device_client_.usb_service(); | 161 return *device_client_.usb_service(); |
| 177 } | 162 } |
| 178 | 163 |
| 179 SecurityStateModel::SecurityInfo security_info_; | 164 SecurityStateModel::SecurityInfo security_info_; |
| 180 | 165 |
| 181 private: | 166 private: |
| 182 device::MockDeviceClient device_client_; | 167 device::MockDeviceClient device_client_; |
| 183 std::unique_ptr<WebsiteSettings> website_settings_; | 168 std::unique_ptr<WebsiteSettings> website_settings_; |
| 184 std::unique_ptr<MockWebsiteSettingsUI> mock_ui_; | 169 std::unique_ptr<MockWebsiteSettingsUI> mock_ui_; |
| 185 int cert_id_; | |
| 186 scoped_refptr<net::X509Certificate> cert_; | 170 scoped_refptr<net::X509Certificate> cert_; |
| 187 MockCertStore cert_store_; | |
| 188 GURL url_; | 171 GURL url_; |
| 189 std::vector<std::unique_ptr<WebsiteSettingsUI::ChosenObjectInfo>> | 172 std::vector<std::unique_ptr<WebsiteSettingsUI::ChosenObjectInfo>> |
| 190 last_chosen_object_info_; | 173 last_chosen_object_info_; |
| 191 }; | 174 }; |
| 192 | 175 |
| 193 } // namespace | 176 } // namespace |
| 194 | 177 |
| 195 TEST_F(WebsiteSettingsTest, OnPermissionsChanged) { | 178 TEST_F(WebsiteSettingsTest, OnPermissionsChanged) { |
| 196 // Setup site permissions. | 179 // Setup site permissions. |
| 197 HostContentSettingsMap* content_settings = | 180 HostContentSettingsMap* content_settings = |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_UNENCRYPTED, | 339 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_UNENCRYPTED, |
| 357 website_settings()->site_connection_status()); | 340 website_settings()->site_connection_status()); |
| 358 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_NO_CERT, | 341 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_NO_CERT, |
| 359 website_settings()->site_identity_status()); | 342 website_settings()->site_identity_status()); |
| 360 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 343 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 361 } | 344 } |
| 362 | 345 |
| 363 TEST_F(WebsiteSettingsTest, HTTPSConnection) { | 346 TEST_F(WebsiteSettingsTest, HTTPSConnection) { |
| 364 security_info_.security_level = SecurityStateModel::SECURE; | 347 security_info_.security_level = SecurityStateModel::SECURE; |
| 365 security_info_.scheme_is_cryptographic = true; | 348 security_info_.scheme_is_cryptographic = true; |
| 366 security_info_.cert_id = cert_id(); | 349 security_info_.certificate = cert(); |
| 367 security_info_.cert_status = 0; | 350 security_info_.cert_status = 0; |
| 368 security_info_.security_bits = 81; // No error if > 80. | 351 security_info_.security_bits = 81; // No error if > 80. |
| 369 int status = 0; | 352 int status = 0; |
| 370 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 353 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 371 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 354 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 372 security_info_.connection_status = status; | 355 security_info_.connection_status = status; |
| 373 | 356 |
| 374 SetDefaultUIExpectations(mock_ui()); | 357 SetDefaultUIExpectations(mock_ui()); |
| 375 EXPECT_CALL(*mock_ui(), SetSelectedTab( | 358 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 376 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); | 359 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 500 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, | 483 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, |
| 501 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_WARNING_MINOR}, | 484 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_WARNING_MINOR}, |
| 502 }; | 485 }; |
| 503 | 486 |
| 504 for (const auto& test : kTestCases) { | 487 for (const auto& test : kTestCases) { |
| 505 ResetMockUI(); | 488 ResetMockUI(); |
| 506 ClearWebsiteSettings(); | 489 ClearWebsiteSettings(); |
| 507 security_info_ = SecurityStateModel::SecurityInfo(); | 490 security_info_ = SecurityStateModel::SecurityInfo(); |
| 508 security_info_.security_level = test.security_level; | 491 security_info_.security_level = test.security_level; |
| 509 security_info_.scheme_is_cryptographic = true; | 492 security_info_.scheme_is_cryptographic = true; |
| 510 security_info_.cert_id = cert_id(); | 493 security_info_.certificate = cert(); |
| 511 security_info_.cert_status = test.cert_status; | 494 security_info_.cert_status = test.cert_status; |
| 512 security_info_.security_bits = 81; // No error if > 80. | 495 security_info_.security_bits = 81; // No error if > 80. |
| 513 security_info_.mixed_content_status = test.mixed_content_status; | 496 security_info_.mixed_content_status = test.mixed_content_status; |
| 514 security_info_.content_with_cert_errors_status = | 497 security_info_.content_with_cert_errors_status = |
| 515 test.content_with_cert_errors_status; | 498 test.content_with_cert_errors_status; |
| 516 int status = 0; | 499 int status = 0; |
| 517 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 500 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 518 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 501 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 519 security_info_.connection_status = status; | 502 security_info_.connection_status = status; |
| 520 | 503 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 531 website_settings()->site_connection_status())); | 514 website_settings()->site_connection_status())); |
| 532 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 515 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 533 } | 516 } |
| 534 } | 517 } |
| 535 | 518 |
| 536 TEST_F(WebsiteSettingsTest, HTTPSEVCert) { | 519 TEST_F(WebsiteSettingsTest, HTTPSEVCert) { |
| 537 scoped_refptr<net::X509Certificate> ev_cert = | 520 scoped_refptr<net::X509Certificate> ev_cert = |
| 538 net::X509Certificate::CreateFromBytes( | 521 net::X509Certificate::CreateFromBytes( |
| 539 reinterpret_cast<const char*>(google_der), | 522 reinterpret_cast<const char*>(google_der), |
| 540 sizeof(google_der)); | 523 sizeof(google_der)); |
| 541 int ev_cert_id = 1; | |
| 542 EXPECT_CALL(*cert_store(), RetrieveCert(ev_cert_id, _)).WillRepeatedly( | |
| 543 DoAll(SetArgPointee<1>(ev_cert), Return(true))); | |
| 544 | 524 |
| 545 security_info_.security_level = SecurityStateModel::NONE; | 525 security_info_.security_level = SecurityStateModel::NONE; |
| 546 security_info_.scheme_is_cryptographic = true; | 526 security_info_.scheme_is_cryptographic = true; |
| 547 security_info_.cert_id = ev_cert_id; | 527 security_info_.certificate = ev_cert; |
| 548 security_info_.cert_status = net::CERT_STATUS_IS_EV; | 528 security_info_.cert_status = net::CERT_STATUS_IS_EV; |
| 549 security_info_.security_bits = 81; // No error if > 80. | 529 security_info_.security_bits = 81; // No error if > 80. |
| 550 security_info_.mixed_content_status = | 530 security_info_.mixed_content_status = |
| 551 SecurityStateModel::CONTENT_STATUS_DISPLAYED; | 531 SecurityStateModel::CONTENT_STATUS_DISPLAYED; |
| 552 int status = 0; | 532 int status = 0; |
| 553 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 533 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 554 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 534 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 555 security_info_.connection_status = status; | 535 security_info_.connection_status = status; |
| 556 | 536 |
| 557 SetDefaultUIExpectations(mock_ui()); | 537 SetDefaultUIExpectations(mock_ui()); |
| 558 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 538 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 559 | 539 |
| 560 EXPECT_EQ( | 540 EXPECT_EQ( |
| 561 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, | 541 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, |
| 562 website_settings()->site_connection_status()); | 542 website_settings()->site_connection_status()); |
| 563 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, | 543 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, |
| 564 website_settings()->site_identity_status()); | 544 website_settings()->site_identity_status()); |
| 565 EXPECT_EQ(base::UTF8ToUTF16("Google Inc"), | 545 EXPECT_EQ(base::UTF8ToUTF16("Google Inc"), |
| 566 website_settings()->organization_name()); | 546 website_settings()->organization_name()); |
| 567 } | 547 } |
| 568 | 548 |
| 569 TEST_F(WebsiteSettingsTest, HTTPSRevocationError) { | 549 TEST_F(WebsiteSettingsTest, HTTPSRevocationError) { |
| 570 security_info_.security_level = SecurityStateModel::SECURE; | 550 security_info_.security_level = SecurityStateModel::SECURE; |
| 571 security_info_.scheme_is_cryptographic = true; | 551 security_info_.scheme_is_cryptographic = true; |
| 572 security_info_.cert_id = cert_id(); | 552 security_info_.certificate = cert(); |
| 573 security_info_.cert_status = net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION; | 553 security_info_.cert_status = net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION; |
| 574 security_info_.security_bits = 81; // No error if > 80. | 554 security_info_.security_bits = 81; // No error if > 80. |
| 575 int status = 0; | 555 int status = 0; |
| 576 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 556 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 577 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 557 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 578 security_info_.connection_status = status; | 558 security_info_.connection_status = status; |
| 579 | 559 |
| 580 SetDefaultUIExpectations(mock_ui()); | 560 SetDefaultUIExpectations(mock_ui()); |
| 581 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 561 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 582 | 562 |
| 583 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 563 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 584 website_settings()->site_connection_status()); | 564 website_settings()->site_connection_status()); |
| 585 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN, | 565 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN, |
| 586 website_settings()->site_identity_status()); | 566 website_settings()->site_identity_status()); |
| 587 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 567 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 588 } | 568 } |
| 589 | 569 |
| 590 TEST_F(WebsiteSettingsTest, HTTPSConnectionError) { | 570 TEST_F(WebsiteSettingsTest, HTTPSConnectionError) { |
| 591 security_info_.security_level = SecurityStateModel::SECURE; | 571 security_info_.security_level = SecurityStateModel::SECURE; |
| 592 security_info_.scheme_is_cryptographic = true; | 572 security_info_.scheme_is_cryptographic = true; |
| 593 security_info_.cert_id = cert_id(); | 573 security_info_.certificate = cert(); |
| 594 security_info_.cert_status = 0; | 574 security_info_.cert_status = 0; |
| 595 security_info_.security_bits = -1; | 575 security_info_.security_bits = -1; |
| 596 int status = 0; | 576 int status = 0; |
| 597 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 577 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 598 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 578 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 599 security_info_.connection_status = status; | 579 security_info_.connection_status = status; |
| 600 | 580 |
| 601 SetDefaultUIExpectations(mock_ui()); | 581 SetDefaultUIExpectations(mock_ui()); |
| 602 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 582 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 603 | 583 |
| 604 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED_ERROR, | 584 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED_ERROR, |
| 605 website_settings()->site_connection_status()); | 585 website_settings()->site_connection_status()); |
| 606 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 586 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 607 website_settings()->site_identity_status()); | 587 website_settings()->site_identity_status()); |
| 608 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 588 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 609 } | 589 } |
| 610 | 590 |
| 611 TEST_F(WebsiteSettingsTest, HTTPSPolicyCertConnection) { | 591 TEST_F(WebsiteSettingsTest, HTTPSPolicyCertConnection) { |
| 612 security_info_.security_level = SecurityStateModel::SECURITY_POLICY_WARNING; | 592 security_info_.security_level = SecurityStateModel::SECURITY_POLICY_WARNING; |
| 613 security_info_.scheme_is_cryptographic = true; | 593 security_info_.scheme_is_cryptographic = true; |
| 614 security_info_.cert_id = cert_id(); | 594 security_info_.certificate = cert(); |
| 615 security_info_.cert_status = 0; | 595 security_info_.cert_status = 0; |
| 616 security_info_.security_bits = 81; // No error if > 80. | 596 security_info_.security_bits = 81; // No error if > 80. |
| 617 int status = 0; | 597 int status = 0; |
| 618 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 598 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 619 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 599 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 620 security_info_.connection_status = status; | 600 security_info_.connection_status = status; |
| 621 | 601 |
| 622 SetDefaultUIExpectations(mock_ui()); | 602 SetDefaultUIExpectations(mock_ui()); |
| 623 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 603 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 624 | 604 |
| 625 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 605 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 626 website_settings()->site_connection_status()); | 606 website_settings()->site_connection_status()); |
| 627 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_ADMIN_PROVIDED_CERT, | 607 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_ADMIN_PROVIDED_CERT, |
| 628 website_settings()->site_identity_status()); | 608 website_settings()->site_identity_status()); |
| 629 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 609 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 630 } | 610 } |
| 631 | 611 |
| 632 TEST_F(WebsiteSettingsTest, HTTPSSHA1Minor) { | 612 TEST_F(WebsiteSettingsTest, HTTPSSHA1Minor) { |
| 633 security_info_.security_level = SecurityStateModel::NONE; | 613 security_info_.security_level = SecurityStateModel::NONE; |
| 634 security_info_.scheme_is_cryptographic = true; | 614 security_info_.scheme_is_cryptographic = true; |
| 635 security_info_.cert_id = cert_id(); | 615 security_info_.certificate = cert(); |
| 636 security_info_.cert_status = 0; | 616 security_info_.cert_status = 0; |
| 637 security_info_.security_bits = 81; // No error if > 80. | 617 security_info_.security_bits = 81; // No error if > 80. |
| 638 int status = 0; | 618 int status = 0; |
| 639 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 619 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 640 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 620 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 641 security_info_.connection_status = status; | 621 security_info_.connection_status = status; |
| 642 security_info_.sha1_deprecation_status = | 622 security_info_.sha1_deprecation_status = |
| 643 SecurityStateModel::DEPRECATED_SHA1_MINOR; | 623 SecurityStateModel::DEPRECATED_SHA1_MINOR; |
| 644 | 624 |
| 645 SetDefaultUIExpectations(mock_ui()); | 625 SetDefaultUIExpectations(mock_ui()); |
| 646 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 626 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 647 | 627 |
| 648 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 628 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 649 website_settings()->site_connection_status()); | 629 website_settings()->site_connection_status()); |
| 650 EXPECT_EQ(WebsiteSettings:: | 630 EXPECT_EQ(WebsiteSettings:: |
| 651 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MINOR, | 631 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MINOR, |
| 652 website_settings()->site_identity_status()); | 632 website_settings()->site_identity_status()); |
| 653 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 633 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 654 EXPECT_EQ(IDR_PAGEINFO_WARNING_MINOR, | 634 EXPECT_EQ(IDR_PAGEINFO_WARNING_MINOR, |
| 655 WebsiteSettingsUI::GetIdentityIconID( | 635 WebsiteSettingsUI::GetIdentityIconID( |
| 656 website_settings()->site_identity_status())); | 636 website_settings()->site_identity_status())); |
| 657 } | 637 } |
| 658 | 638 |
| 659 TEST_F(WebsiteSettingsTest, HTTPSSHA1Major) { | 639 TEST_F(WebsiteSettingsTest, HTTPSSHA1Major) { |
| 660 security_info_.security_level = SecurityStateModel::NONE; | 640 security_info_.security_level = SecurityStateModel::NONE; |
| 661 security_info_.scheme_is_cryptographic = true; | 641 security_info_.scheme_is_cryptographic = true; |
| 662 security_info_.cert_id = cert_id(); | 642 security_info_.certificate = cert(); |
| 663 security_info_.cert_status = 0; | 643 security_info_.cert_status = 0; |
| 664 security_info_.security_bits = 81; // No error if > 80. | 644 security_info_.security_bits = 81; // No error if > 80. |
| 665 int status = 0; | 645 int status = 0; |
| 666 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 646 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 667 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 647 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 668 security_info_.connection_status = status; | 648 security_info_.connection_status = status; |
| 669 security_info_.sha1_deprecation_status = | 649 security_info_.sha1_deprecation_status = |
| 670 SecurityStateModel::DEPRECATED_SHA1_MAJOR; | 650 SecurityStateModel::DEPRECATED_SHA1_MAJOR; |
| 671 | 651 |
| 672 SetDefaultUIExpectations(mock_ui()); | 652 SetDefaultUIExpectations(mock_ui()); |
| 673 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 653 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 674 | 654 |
| 675 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 655 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 676 website_settings()->site_connection_status()); | 656 website_settings()->site_connection_status()); |
| 677 EXPECT_EQ(WebsiteSettings:: | 657 EXPECT_EQ(WebsiteSettings:: |
| 678 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MAJOR, | 658 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MAJOR, |
| 679 website_settings()->site_identity_status()); | 659 website_settings()->site_identity_status()); |
| 680 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 660 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 681 EXPECT_EQ(IDR_PAGEINFO_BAD, | 661 EXPECT_EQ(IDR_PAGEINFO_BAD, |
| 682 WebsiteSettingsUI::GetIdentityIconID( | 662 WebsiteSettingsUI::GetIdentityIconID( |
| 683 website_settings()->site_identity_status())); | 663 website_settings()->site_identity_status())); |
| 684 } | 664 } |
| 685 | 665 |
| 686 // All SCTs are from unknown logs. | 666 // All SCTs are from unknown logs. |
| 687 TEST_F(WebsiteSettingsTest, UnknownSCTs) { | 667 TEST_F(WebsiteSettingsTest, UnknownSCTs) { |
| 688 security_info_.security_level = SecurityStateModel::SECURE; | 668 security_info_.security_level = SecurityStateModel::SECURE; |
| 689 security_info_.scheme_is_cryptographic = true; | 669 security_info_.scheme_is_cryptographic = true; |
| 690 security_info_.cert_id = cert_id(); | 670 security_info_.certificate = cert(); |
| 691 security_info_.cert_status = 0; | 671 security_info_.cert_status = 0; |
| 692 security_info_.security_bits = 81; // No error if > 80. | 672 security_info_.security_bits = 81; // No error if > 80. |
| 693 int status = 0; | 673 int status = 0; |
| 694 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 674 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 695 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 675 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 696 security_info_.connection_status = status; | 676 security_info_.connection_status = status; |
| 697 | 677 |
| 698 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); | 678 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); |
| 699 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); | 679 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); |
| 700 | 680 |
| 701 SetDefaultUIExpectations(mock_ui()); | 681 SetDefaultUIExpectations(mock_ui()); |
| 702 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 682 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 703 | 683 |
| 704 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 684 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 705 website_settings()->site_connection_status()); | 685 website_settings()->site_connection_status()); |
| 706 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, | 686 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, |
| 707 website_settings()->site_identity_status()); | 687 website_settings()->site_identity_status()); |
| 708 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( | 688 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( |
| 709 website_settings()->site_identity_status())); | 689 website_settings()->site_identity_status())); |
| 710 } | 690 } |
| 711 | 691 |
| 712 // All SCTs are invalid. | 692 // All SCTs are invalid. |
| 713 TEST_F(WebsiteSettingsTest, InvalidSCTs) { | 693 TEST_F(WebsiteSettingsTest, InvalidSCTs) { |
| 714 security_info_.security_level = SecurityStateModel::SECURE; | 694 security_info_.security_level = SecurityStateModel::SECURE; |
| 715 security_info_.scheme_is_cryptographic = true; | 695 security_info_.scheme_is_cryptographic = true; |
| 716 security_info_.cert_id = cert_id(); | 696 security_info_.certificate = cert(); |
| 717 security_info_.cert_status = 0; | 697 security_info_.cert_status = 0; |
| 718 security_info_.security_bits = 81; // No error if > 80. | 698 security_info_.security_bits = 81; // No error if > 80. |
| 719 int status = 0; | 699 int status = 0; |
| 720 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 700 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 721 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 701 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 722 security_info_.connection_status = status; | 702 security_info_.connection_status = status; |
| 723 | 703 |
| 724 security_info_.sct_verify_statuses.push_back( | 704 security_info_.sct_verify_statuses.push_back( |
| 725 net::ct::SCT_STATUS_INVALID_TIMESTAMP); | 705 net::ct::SCT_STATUS_INVALID_TIMESTAMP); |
| 726 security_info_.sct_verify_statuses.push_back( | 706 security_info_.sct_verify_statuses.push_back( |
| 727 net::ct::SCT_STATUS_INVALID_SIGNATURE); | 707 net::ct::SCT_STATUS_INVALID_SIGNATURE); |
| 728 | 708 |
| 729 SetDefaultUIExpectations(mock_ui()); | 709 SetDefaultUIExpectations(mock_ui()); |
| 730 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 710 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 731 | 711 |
| 732 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 712 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 733 website_settings()->site_connection_status()); | 713 website_settings()->site_connection_status()); |
| 734 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, | 714 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, |
| 735 website_settings()->site_identity_status()); | 715 website_settings()->site_identity_status()); |
| 736 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( | 716 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( |
| 737 website_settings()->site_identity_status())); | 717 website_settings()->site_identity_status())); |
| 738 } | 718 } |
| 739 | 719 |
| 740 // All SCTs are valid. | 720 // All SCTs are valid. |
| 741 TEST_F(WebsiteSettingsTest, ValidSCTs) { | 721 TEST_F(WebsiteSettingsTest, ValidSCTs) { |
| 742 security_info_.security_level = SecurityStateModel::SECURE; | 722 security_info_.security_level = SecurityStateModel::SECURE; |
| 743 security_info_.scheme_is_cryptographic = true; | 723 security_info_.scheme_is_cryptographic = true; |
| 744 security_info_.cert_id = cert_id(); | 724 security_info_.certificate = cert(); |
| 745 security_info_.cert_status = 0; | 725 security_info_.cert_status = 0; |
| 746 security_info_.security_bits = 81; // No error if > 80. | 726 security_info_.security_bits = 81; // No error if > 80. |
| 747 int status = 0; | 727 int status = 0; |
| 748 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 728 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 749 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 729 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 750 security_info_.connection_status = status; | 730 security_info_.connection_status = status; |
| 751 | 731 |
| 752 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); | 732 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); |
| 753 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); | 733 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); |
| 754 | 734 |
| 755 SetDefaultUIExpectations(mock_ui()); | 735 SetDefaultUIExpectations(mock_ui()); |
| 756 EXPECT_CALL(*mock_ui(), | 736 EXPECT_CALL(*mock_ui(), |
| 757 SetSelectedTab(WebsiteSettingsUI::TAB_ID_PERMISSIONS)); | 737 SetSelectedTab(WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 758 | 738 |
| 759 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 739 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 760 website_settings()->site_connection_status()); | 740 website_settings()->site_connection_status()); |
| 761 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 741 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 762 website_settings()->site_identity_status()); | 742 website_settings()->site_identity_status()); |
| 763 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID( | 743 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID( |
| 764 website_settings()->site_identity_status())); | 744 website_settings()->site_identity_status())); |
| 765 } | 745 } |
| 766 | 746 |
| 767 // All SCTs are valid for an EV cert. | 747 // All SCTs are valid for an EV cert. |
| 768 TEST_F(WebsiteSettingsTest, ValidSCTsEV) { | 748 TEST_F(WebsiteSettingsTest, ValidSCTsEV) { |
| 769 scoped_refptr<net::X509Certificate> ev_cert = | 749 scoped_refptr<net::X509Certificate> ev_cert = |
| 770 net::X509Certificate::CreateFromBytes( | 750 net::X509Certificate::CreateFromBytes( |
| 771 reinterpret_cast<const char*>(google_der), sizeof(google_der)); | 751 reinterpret_cast<const char*>(google_der), sizeof(google_der)); |
| 772 int ev_cert_id = 1; | |
| 773 EXPECT_CALL(*cert_store(), RetrieveCert(ev_cert_id, _)) | |
| 774 .WillRepeatedly(DoAll(SetArgPointee<1>(ev_cert), Return(true))); | |
| 775 | 752 |
| 776 security_info_.security_level = SecurityStateModel::SECURE; | 753 security_info_.security_level = SecurityStateModel::SECURE; |
| 777 security_info_.scheme_is_cryptographic = true; | 754 security_info_.scheme_is_cryptographic = true; |
| 778 security_info_.cert_id = ev_cert_id; | 755 security_info_.certificate = ev_cert; |
| 779 security_info_.cert_status = net::CERT_STATUS_IS_EV; | 756 security_info_.cert_status = net::CERT_STATUS_IS_EV; |
| 780 security_info_.security_bits = 81; // No error if > 80. | 757 security_info_.security_bits = 81; // No error if > 80. |
| 781 int status = 0; | 758 int status = 0; |
| 782 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 759 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 783 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 760 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 784 security_info_.connection_status = status; | 761 security_info_.connection_status = status; |
| 785 | 762 |
| 786 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); | 763 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); |
| 787 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); | 764 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); |
| 788 | 765 |
| 789 SetDefaultUIExpectations(mock_ui()); | 766 SetDefaultUIExpectations(mock_ui()); |
| 790 EXPECT_CALL(*mock_ui(), | 767 EXPECT_CALL(*mock_ui(), |
| 791 SetSelectedTab(WebsiteSettingsUI::TAB_ID_PERMISSIONS)); | 768 SetSelectedTab(WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 792 | 769 |
| 793 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 770 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 794 website_settings()->site_connection_status()); | 771 website_settings()->site_connection_status()); |
| 795 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, | 772 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, |
| 796 website_settings()->site_identity_status()); | 773 website_settings()->site_identity_status()); |
| 797 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID( | 774 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID( |
| 798 website_settings()->site_identity_status())); | 775 website_settings()->site_identity_status())); |
| 799 } | 776 } |
| 800 | 777 |
| 801 // A mix of unknown and invalid SCTs. | 778 // A mix of unknown and invalid SCTs. |
| 802 TEST_F(WebsiteSettingsTest, UnknownAndInvalidSCTs) { | 779 TEST_F(WebsiteSettingsTest, UnknownAndInvalidSCTs) { |
| 803 security_info_.security_level = SecurityStateModel::SECURE; | 780 security_info_.security_level = SecurityStateModel::SECURE; |
| 804 security_info_.scheme_is_cryptographic = true; | 781 security_info_.scheme_is_cryptographic = true; |
| 805 security_info_.cert_id = cert_id(); | 782 security_info_.certificate = cert(); |
| 806 security_info_.cert_status = 0; | 783 security_info_.cert_status = 0; |
| 807 security_info_.security_bits = 81; // No error if > 80. | 784 security_info_.security_bits = 81; // No error if > 80. |
| 808 int status = 0; | 785 int status = 0; |
| 809 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 786 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 810 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 787 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 811 security_info_.connection_status = status; | 788 security_info_.connection_status = status; |
| 812 | 789 |
| 813 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); | 790 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); |
| 814 security_info_.sct_verify_statuses.push_back( | 791 security_info_.sct_verify_statuses.push_back( |
| 815 net::ct::SCT_STATUS_INVALID_SIGNATURE); | 792 net::ct::SCT_STATUS_INVALID_SIGNATURE); |
| 816 | 793 |
| 817 SetDefaultUIExpectations(mock_ui()); | 794 SetDefaultUIExpectations(mock_ui()); |
| 818 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 795 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 819 | 796 |
| 820 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 797 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 821 website_settings()->site_connection_status()); | 798 website_settings()->site_connection_status()); |
| 822 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, | 799 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, |
| 823 website_settings()->site_identity_status()); | 800 website_settings()->site_identity_status()); |
| 824 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( | 801 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( |
| 825 website_settings()->site_identity_status())); | 802 website_settings()->site_identity_status())); |
| 826 } | 803 } |
| 827 | 804 |
| 828 // At least one SCT is valid and one is from an unknown log. | 805 // At least one SCT is valid and one is from an unknown log. |
| 829 TEST_F(WebsiteSettingsTest, ValidAndUnknownSCTs) { | 806 TEST_F(WebsiteSettingsTest, ValidAndUnknownSCTs) { |
| 830 security_info_.security_level = SecurityStateModel::SECURE; | 807 security_info_.security_level = SecurityStateModel::SECURE; |
| 831 security_info_.scheme_is_cryptographic = true; | 808 security_info_.scheme_is_cryptographic = true; |
| 832 security_info_.cert_id = cert_id(); | 809 security_info_.certificate = cert(); |
| 833 security_info_.cert_status = 0; | 810 security_info_.cert_status = 0; |
| 834 security_info_.security_bits = 81; // No error if > 80. | 811 security_info_.security_bits = 81; // No error if > 80. |
| 835 int status = 0; | 812 int status = 0; |
| 836 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 813 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 837 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 814 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 838 security_info_.connection_status = status; | 815 security_info_.connection_status = status; |
| 839 | 816 |
| 840 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); | 817 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); |
| 841 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); | 818 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); |
| 842 | 819 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 892 | 869 |
| 893 TEST_F(WebsiteSettingsTest, InternalPage) { | 870 TEST_F(WebsiteSettingsTest, InternalPage) { |
| 894 SetURL("chrome://bookmarks"); | 871 SetURL("chrome://bookmarks"); |
| 895 SetDefaultUIExpectations(mock_ui()); | 872 SetDefaultUIExpectations(mock_ui()); |
| 896 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_INTERNAL_PAGE, | 873 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_INTERNAL_PAGE, |
| 897 website_settings()->site_connection_status()); | 874 website_settings()->site_connection_status()); |
| 898 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_INTERNAL_PAGE, | 875 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_INTERNAL_PAGE, |
| 899 website_settings()->site_identity_status()); | 876 website_settings()->site_identity_status()); |
| 900 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 877 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 901 } | 878 } |
| OLD | NEW |