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 |