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

Side by Side Diff: chrome/browser/ui/website_settings/website_settings_unittest.cc

Issue 2448943002: Refactor SecurityStateModel/Clients for simplicity and reusability. (Closed)
Patch Set: Remove SecurityStateModel. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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"
(...skipping 23 matching lines...) Expand all
34 #include "net/cert/cert_status_flags.h" 34 #include "net/cert/cert_status_flags.h"
35 #include "net/cert/x509_certificate.h" 35 #include "net/cert/x509_certificate.h"
36 #include "net/ssl/ssl_connection_status_flags.h" 36 #include "net/ssl/ssl_connection_status_flags.h"
37 #include "net/test/cert_test_util.h" 37 #include "net/test/cert_test_util.h"
38 #include "net/test/test_certificate_data.h" 38 #include "net/test/test_certificate_data.h"
39 #include "net/test/test_data_directory.h" 39 #include "net/test/test_data_directory.h"
40 #include "testing/gmock/include/gmock/gmock.h" 40 #include "testing/gmock/include/gmock/gmock.h"
41 #include "testing/gtest/include/gtest/gtest.h" 41 #include "testing/gtest/include/gtest/gtest.h"
42 42
43 using content::SSLStatus; 43 using content::SSLStatus;
44 using security_state::SecurityStateModel;
45 using testing::_; 44 using testing::_;
46 using testing::AnyNumber; 45 using testing::AnyNumber;
47 using testing::Invoke; 46 using testing::Invoke;
48 using testing::Return; 47 using testing::Return;
49 using testing::SetArgPointee; 48 using testing::SetArgPointee;
50 49
51 namespace { 50 namespace {
52 51
53 // SSL cipher suite like specified in RFC5246 Appendix A.5. "The Cipher Suite". 52 // SSL cipher suite like specified in RFC5246 Appendix A.5. "The Cipher Suite".
54 // Without the CR_ prefix, this clashes with the OS X 10.8 headers. 53 // Without the CR_ prefix, this clashes with the OS X 10.8 headers.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { 93 class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness {
95 public: 94 public:
96 WebsiteSettingsTest() : url_("http://www.example.com") {} 95 WebsiteSettingsTest() : url_("http://www.example.com") {}
97 96
98 ~WebsiteSettingsTest() override {} 97 ~WebsiteSettingsTest() override {}
99 98
100 void SetUp() override { 99 void SetUp() override {
101 ChromeRenderViewHostTestHarness::SetUp(); 100 ChromeRenderViewHostTestHarness::SetUp();
102 101
103 // Setup stub SSLStatus. 102 // Setup stub SSLStatus.
104 security_info_.security_level = SecurityStateModel::NONE; 103 security_info_.security_level = security_state::NONE;
105 104
106 // Create the certificate. 105 // Create the certificate.
107 cert_ = 106 cert_ =
108 net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem"); 107 net::ImportCertFromFile(net::GetTestCertsDirectory(), "ok_cert.pem");
109 ASSERT_TRUE(cert_); 108 ASSERT_TRUE(cert_);
110 109
111 TabSpecificContentSettings::CreateForWebContents(web_contents()); 110 TabSpecificContentSettings::CreateForWebContents(web_contents());
112 InfoBarService::CreateForWebContents(web_contents()); 111 InfoBarService::CreateForWebContents(web_contents());
113 112
114 // Setup mock ui. 113 // Setup mock ui.
(...skipping 27 matching lines...) Expand all
142 last_chosen_object_info_.push_back(std::move(chosen_object_info)); 141 last_chosen_object_info_.push_back(std::move(chosen_object_info));
143 } 142 }
144 143
145 void ResetMockUI() { mock_ui_.reset(new MockWebsiteSettingsUI()); } 144 void ResetMockUI() { mock_ui_.reset(new MockWebsiteSettingsUI()); }
146 145
147 void ClearWebsiteSettings() { website_settings_.reset(nullptr); } 146 void ClearWebsiteSettings() { website_settings_.reset(nullptr); }
148 147
149 const GURL& url() const { return url_; } 148 const GURL& url() const { return url_; }
150 scoped_refptr<net::X509Certificate> cert() { return cert_; } 149 scoped_refptr<net::X509Certificate> cert() { return cert_; }
151 MockWebsiteSettingsUI* mock_ui() { return mock_ui_.get(); } 150 MockWebsiteSettingsUI* mock_ui() { return mock_ui_.get(); }
152 const SecurityStateModel::SecurityInfo& security_info() { 151 const security_state::SecurityInfo& security_info() {
153 return security_info_; 152 return security_info_;
154 } 153 }
155 const std::vector<std::unique_ptr<WebsiteSettingsUI::ChosenObjectInfo>>& 154 const std::vector<std::unique_ptr<WebsiteSettingsUI::ChosenObjectInfo>>&
156 last_chosen_object_info() { 155 last_chosen_object_info() {
157 return last_chosen_object_info_; 156 return last_chosen_object_info_;
158 } 157 }
159 TabSpecificContentSettings* tab_specific_content_settings() { 158 TabSpecificContentSettings* tab_specific_content_settings() {
160 return TabSpecificContentSettings::FromWebContents(web_contents()); 159 return TabSpecificContentSettings::FromWebContents(web_contents());
161 } 160 }
162 InfoBarService* infobar_service() { 161 InfoBarService* infobar_service() {
163 return InfoBarService::FromWebContents(web_contents()); 162 return InfoBarService::FromWebContents(web_contents());
164 } 163 }
165 164
166 WebsiteSettings* website_settings() { 165 WebsiteSettings* website_settings() {
167 if (!website_settings_.get()) { 166 if (!website_settings_.get()) {
168 website_settings_.reset(new WebsiteSettings( 167 website_settings_.reset(new WebsiteSettings(
169 mock_ui(), profile(), tab_specific_content_settings(), web_contents(), 168 mock_ui(), profile(), tab_specific_content_settings(), web_contents(),
170 url(), security_info())); 169 url(), security_info()));
171 } 170 }
172 return website_settings_.get(); 171 return website_settings_.get();
173 } 172 }
174 173
175 device::MockUsbService& usb_service() { 174 device::MockUsbService& usb_service() {
176 return *device_client_.usb_service(); 175 return *device_client_.usb_service();
177 } 176 }
178 177
179 SecurityStateModel::SecurityInfo security_info_; 178 security_state::SecurityInfo security_info_;
180 179
181 private: 180 private:
182 device::MockDeviceClient device_client_; 181 device::MockDeviceClient device_client_;
183 std::unique_ptr<WebsiteSettings> website_settings_; 182 std::unique_ptr<WebsiteSettings> website_settings_;
184 std::unique_ptr<MockWebsiteSettingsUI> mock_ui_; 183 std::unique_ptr<MockWebsiteSettingsUI> mock_ui_;
185 scoped_refptr<net::X509Certificate> cert_; 184 scoped_refptr<net::X509Certificate> cert_;
186 GURL url_; 185 GURL url_;
187 std::vector<std::unique_ptr<WebsiteSettingsUI::ChosenObjectInfo>> 186 std::vector<std::unique_ptr<WebsiteSettingsUI::ChosenObjectInfo>>
188 last_chosen_object_info_; 187 last_chosen_object_info_;
189 }; 188 };
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 EXPECT_CALL(*mock_ui(), SetSelectedTab( 351 EXPECT_CALL(*mock_ui(), SetSelectedTab(
353 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); 352 WebsiteSettingsUI::TAB_ID_PERMISSIONS));
354 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_UNENCRYPTED, 353 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_UNENCRYPTED,
355 website_settings()->site_connection_status()); 354 website_settings()->site_connection_status());
356 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_NO_CERT, 355 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_NO_CERT,
357 website_settings()->site_identity_status()); 356 website_settings()->site_identity_status());
358 EXPECT_EQ(base::string16(), website_settings()->organization_name()); 357 EXPECT_EQ(base::string16(), website_settings()->organization_name());
359 } 358 }
360 359
361 TEST_F(WebsiteSettingsTest, HTTPSConnection) { 360 TEST_F(WebsiteSettingsTest, HTTPSConnection) {
362 security_info_.security_level = SecurityStateModel::SECURE; 361 security_info_.security_level = security_state::SECURE;
363 security_info_.scheme_is_cryptographic = true; 362 security_info_.scheme_is_cryptographic = true;
364 security_info_.certificate = cert(); 363 security_info_.certificate = cert();
365 security_info_.cert_status = 0; 364 security_info_.cert_status = 0;
366 security_info_.security_bits = 81; // No error if > 80. 365 security_info_.security_bits = 81; // No error if > 80.
367 int status = 0; 366 int status = 0;
368 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 367 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
369 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 368 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
370 security_info_.connection_status = status; 369 security_info_.connection_status = status;
371 370
372 SetDefaultUIExpectations(mock_ui()); 371 SetDefaultUIExpectations(mock_ui());
373 EXPECT_CALL(*mock_ui(), SetSelectedTab( 372 EXPECT_CALL(*mock_ui(), SetSelectedTab(
374 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); 373 WebsiteSettingsUI::TAB_ID_PERMISSIONS));
375 374
376 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 375 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
377 website_settings()->site_connection_status()); 376 website_settings()->site_connection_status());
378 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, 377 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT,
379 website_settings()->site_identity_status()); 378 website_settings()->site_identity_status());
380 EXPECT_EQ(base::string16(), website_settings()->organization_name()); 379 EXPECT_EQ(base::string16(), website_settings()->organization_name());
381 } 380 }
382 381
383 TEST_F(WebsiteSettingsTest, InsecureContent) { 382 TEST_F(WebsiteSettingsTest, InsecureContent) {
384 struct TestCase { 383 struct TestCase {
385 SecurityStateModel::SecurityLevel security_level; 384 security_state::SecurityLevel security_level;
386 net::CertStatus cert_status; 385 net::CertStatus cert_status;
387 SecurityStateModel::ContentStatus mixed_content_status; 386 security_state::ContentStatus mixed_content_status;
388 SecurityStateModel::ContentStatus content_with_cert_errors_status; 387 security_state::ContentStatus content_with_cert_errors_status;
389 WebsiteSettings::SiteConnectionStatus expected_site_connection_status; 388 WebsiteSettings::SiteConnectionStatus expected_site_connection_status;
390 WebsiteSettings::SiteIdentityStatus expected_site_identity_status; 389 WebsiteSettings::SiteIdentityStatus expected_site_identity_status;
391 int expected_connection_icon_id; 390 int expected_connection_icon_id;
392 }; 391 };
393 392
394 const TestCase kTestCases[] = { 393 const TestCase kTestCases[] = {
395 // Passive mixed content. 394 // Passive mixed content.
396 {SecurityStateModel::NONE, 0, 395 {security_state::NONE, 0, security_state::CONTENT_STATUS_DISPLAYED,
397 SecurityStateModel::CONTENT_STATUS_DISPLAYED, 396 security_state::CONTENT_STATUS_NONE,
398 SecurityStateModel::CONTENT_STATUS_NONE,
399 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, 397 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE,
400 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_WARNING_MINOR}, 398 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_WARNING_MINOR},
401 // Passive mixed content with a cert error on the main resource. 399 // Passive mixed content with a cert error on the main resource.
402 {SecurityStateModel::DANGEROUS, net::CERT_STATUS_DATE_INVALID, 400 {security_state::DANGEROUS, net::CERT_STATUS_DATE_INVALID,
403 SecurityStateModel::CONTENT_STATUS_DISPLAYED, 401 security_state::CONTENT_STATUS_DISPLAYED,
404 SecurityStateModel::CONTENT_STATUS_NONE, 402 security_state::CONTENT_STATUS_NONE,
405 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, 403 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE,
406 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_WARNING_MINOR}, 404 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_WARNING_MINOR},
407 // Active and passive mixed content. 405 // Active and passive mixed content.
408 {SecurityStateModel::DANGEROUS, 0, 406 {security_state::DANGEROUS, 0,
409 SecurityStateModel::CONTENT_STATUS_DISPLAYED_AND_RAN, 407 security_state::CONTENT_STATUS_DISPLAYED_AND_RAN,
410 SecurityStateModel::CONTENT_STATUS_NONE, 408 security_state::CONTENT_STATUS_NONE,
411 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE, 409 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE,
412 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD}, 410 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD},
413 // Active and passive mixed content with a cert error on the main 411 // Active and passive mixed content with a cert error on the main
414 // resource. 412 // resource.
415 {SecurityStateModel::DANGEROUS, net::CERT_STATUS_DATE_INVALID, 413 {security_state::DANGEROUS, net::CERT_STATUS_DATE_INVALID,
416 SecurityStateModel::CONTENT_STATUS_DISPLAYED_AND_RAN, 414 security_state::CONTENT_STATUS_DISPLAYED_AND_RAN,
417 SecurityStateModel::CONTENT_STATUS_NONE, 415 security_state::CONTENT_STATUS_NONE,
418 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE, 416 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE,
419 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_BAD}, 417 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_BAD},
420 // Active mixed content. 418 // Active mixed content.
421 {SecurityStateModel::DANGEROUS, 0, SecurityStateModel::CONTENT_STATUS_RAN, 419 {security_state::DANGEROUS, 0, security_state::CONTENT_STATUS_RAN,
422 SecurityStateModel::CONTENT_STATUS_NONE, 420 security_state::CONTENT_STATUS_NONE,
423 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE, 421 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE,
424 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD}, 422 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD},
425 // Active mixed content with a cert error on the main resource. 423 // Active mixed content with a cert error on the main resource.
426 {SecurityStateModel::DANGEROUS, net::CERT_STATUS_DATE_INVALID, 424 {security_state::DANGEROUS, net::CERT_STATUS_DATE_INVALID,
427 SecurityStateModel::CONTENT_STATUS_RAN, 425 security_state::CONTENT_STATUS_RAN, security_state::CONTENT_STATUS_NONE,
428 SecurityStateModel::CONTENT_STATUS_NONE,
429 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE, 426 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE,
430 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_BAD}, 427 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_BAD},
431 428
432 // Passive subresources with cert errors. 429 // Passive subresources with cert errors.
433 {SecurityStateModel::NONE, 0, SecurityStateModel::CONTENT_STATUS_NONE, 430 {security_state::NONE, 0, security_state::CONTENT_STATUS_NONE,
434 SecurityStateModel::CONTENT_STATUS_DISPLAYED, 431 security_state::CONTENT_STATUS_DISPLAYED,
435 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, 432 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE,
436 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_WARNING_MINOR}, 433 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_WARNING_MINOR},
437 // Passive subresources with cert errors, with a cert error on the 434 // Passive subresources with cert errors, with a cert error on the
438 // main resource also. In this case, the subresources with 435 // main resource also. In this case, the subresources with
439 // certificate errors are ignored: if the main resource had a cert 436 // certificate errors are ignored: if the main resource had a cert
440 // error, it's not that useful to warn about subresources with cert 437 // error, it's not that useful to warn about subresources with cert
441 // errors as well. 438 // errors as well.
442 {SecurityStateModel::DANGEROUS, net::CERT_STATUS_DATE_INVALID, 439 {security_state::DANGEROUS, net::CERT_STATUS_DATE_INVALID,
443 SecurityStateModel::CONTENT_STATUS_NONE, 440 security_state::CONTENT_STATUS_NONE,
444 SecurityStateModel::CONTENT_STATUS_DISPLAYED, 441 security_state::CONTENT_STATUS_DISPLAYED,
445 WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 442 WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
446 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_GOOD}, 443 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_GOOD},
447 // Passive and active subresources with cert errors. 444 // Passive and active subresources with cert errors.
448 {SecurityStateModel::DANGEROUS, 0, 445 {security_state::DANGEROUS, 0, security_state::CONTENT_STATUS_NONE,
449 SecurityStateModel::CONTENT_STATUS_NONE, 446 security_state::CONTENT_STATUS_DISPLAYED_AND_RAN,
450 SecurityStateModel::CONTENT_STATUS_DISPLAYED_AND_RAN,
451 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE, 447 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE,
452 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD}, 448 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD},
453 // Passive and active subresources with cert errors, with a cert 449 // Passive and active subresources with cert errors, with a cert
454 // error on the main resource also. 450 // error on the main resource also.
455 {SecurityStateModel::DANGEROUS, net::CERT_STATUS_DATE_INVALID, 451 {security_state::DANGEROUS, net::CERT_STATUS_DATE_INVALID,
456 SecurityStateModel::CONTENT_STATUS_NONE, 452 security_state::CONTENT_STATUS_NONE,
457 SecurityStateModel::CONTENT_STATUS_DISPLAYED_AND_RAN, 453 security_state::CONTENT_STATUS_DISPLAYED_AND_RAN,
458 WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 454 WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
459 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_GOOD}, 455 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_GOOD},
460 // Active subresources with cert errors. 456 // Active subresources with cert errors.
461 {SecurityStateModel::DANGEROUS, 0, 457 {security_state::DANGEROUS, 0, security_state::CONTENT_STATUS_NONE,
462 SecurityStateModel::CONTENT_STATUS_NONE, 458 security_state::CONTENT_STATUS_RAN,
463 SecurityStateModel::CONTENT_STATUS_RAN,
464 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE, 459 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE,
465 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD}, 460 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD},
466 // Active subresources with cert errors, with a cert error on the main 461 // Active subresources with cert errors, with a cert error on the main
467 // resource also. 462 // resource also.
468 {SecurityStateModel::DANGEROUS, net::CERT_STATUS_DATE_INVALID, 463 {security_state::DANGEROUS, net::CERT_STATUS_DATE_INVALID,
469 SecurityStateModel::CONTENT_STATUS_NONE, 464 security_state::CONTENT_STATUS_NONE, security_state::CONTENT_STATUS_RAN,
470 SecurityStateModel::CONTENT_STATUS_RAN,
471 WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 465 WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
472 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_GOOD}, 466 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_GOOD},
473 467
474 // Passive mixed content and subresources with cert errors. 468 // Passive mixed content and subresources with cert errors.
475 {SecurityStateModel::NONE, 0, 469 {security_state::NONE, 0, security_state::CONTENT_STATUS_DISPLAYED,
476 SecurityStateModel::CONTENT_STATUS_DISPLAYED, 470 security_state::CONTENT_STATUS_DISPLAYED,
477 SecurityStateModel::CONTENT_STATUS_DISPLAYED,
478 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, 471 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE,
479 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_WARNING_MINOR}, 472 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_WARNING_MINOR},
480 // Passive mixed content and active subresources with cert errors. 473 // Passive mixed content and active subresources with cert errors.
481 {SecurityStateModel::DANGEROUS, 0, 474 {security_state::DANGEROUS, 0, security_state::CONTENT_STATUS_DISPLAYED,
482 SecurityStateModel::CONTENT_STATUS_DISPLAYED, 475 security_state::CONTENT_STATUS_RAN,
483 SecurityStateModel::CONTENT_STATUS_RAN,
484 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE, 476 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE,
485 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD}, 477 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD},
486 // Active mixed content and passive subresources with cert errors. 478 // Active mixed content and passive subresources with cert errors.
487 {SecurityStateModel::DANGEROUS, 0, SecurityStateModel::CONTENT_STATUS_RAN, 479 {security_state::DANGEROUS, 0, security_state::CONTENT_STATUS_RAN,
488 SecurityStateModel::CONTENT_STATUS_DISPLAYED, 480 security_state::CONTENT_STATUS_DISPLAYED,
489 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE, 481 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_ACTIVE_SUBRESOURCE,
490 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD}, 482 WebsiteSettings::SITE_IDENTITY_STATUS_CERT, IDR_PAGEINFO_BAD},
491 // Passive mixed content, active subresources with cert errors, and a cert 483 // Passive mixed content, active subresources with cert errors, and a cert
492 // error on the main resource. 484 // error on the main resource.
493 {SecurityStateModel::DANGEROUS, net::CERT_STATUS_DATE_INVALID, 485 {security_state::DANGEROUS, net::CERT_STATUS_DATE_INVALID,
494 SecurityStateModel::CONTENT_STATUS_DISPLAYED, 486 security_state::CONTENT_STATUS_DISPLAYED,
495 SecurityStateModel::CONTENT_STATUS_RAN, 487 security_state::CONTENT_STATUS_RAN,
496 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, 488 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE,
497 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_WARNING_MINOR}, 489 WebsiteSettings::SITE_IDENTITY_STATUS_ERROR, IDR_PAGEINFO_WARNING_MINOR},
498 }; 490 };
499 491
500 for (const auto& test : kTestCases) { 492 for (const auto& test : kTestCases) {
501 ResetMockUI(); 493 ResetMockUI();
502 ClearWebsiteSettings(); 494 ClearWebsiteSettings();
503 security_info_ = SecurityStateModel::SecurityInfo(); 495 security_info_ = security_state::SecurityInfo();
504 security_info_.security_level = test.security_level; 496 security_info_.security_level = test.security_level;
505 security_info_.scheme_is_cryptographic = true; 497 security_info_.scheme_is_cryptographic = true;
506 security_info_.certificate = cert(); 498 security_info_.certificate = cert();
507 security_info_.cert_status = test.cert_status; 499 security_info_.cert_status = test.cert_status;
508 security_info_.security_bits = 81; // No error if > 80. 500 security_info_.security_bits = 81; // No error if > 80.
509 security_info_.mixed_content_status = test.mixed_content_status; 501 security_info_.mixed_content_status = test.mixed_content_status;
510 security_info_.content_with_cert_errors_status = 502 security_info_.content_with_cert_errors_status =
511 test.content_with_cert_errors_status; 503 test.content_with_cert_errors_status;
512 int status = 0; 504 int status = 0;
513 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 505 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
(...skipping 14 matching lines...) Expand all
528 EXPECT_EQ(base::string16(), website_settings()->organization_name()); 520 EXPECT_EQ(base::string16(), website_settings()->organization_name());
529 } 521 }
530 } 522 }
531 523
532 TEST_F(WebsiteSettingsTest, HTTPSEVCert) { 524 TEST_F(WebsiteSettingsTest, HTTPSEVCert) {
533 scoped_refptr<net::X509Certificate> ev_cert = 525 scoped_refptr<net::X509Certificate> ev_cert =
534 net::X509Certificate::CreateFromBytes( 526 net::X509Certificate::CreateFromBytes(
535 reinterpret_cast<const char*>(google_der), 527 reinterpret_cast<const char*>(google_der),
536 sizeof(google_der)); 528 sizeof(google_der));
537 529
538 security_info_.security_level = SecurityStateModel::NONE; 530 security_info_.security_level = security_state::NONE;
539 security_info_.scheme_is_cryptographic = true; 531 security_info_.scheme_is_cryptographic = true;
540 security_info_.certificate = ev_cert; 532 security_info_.certificate = ev_cert;
541 security_info_.cert_status = net::CERT_STATUS_IS_EV; 533 security_info_.cert_status = net::CERT_STATUS_IS_EV;
542 security_info_.security_bits = 81; // No error if > 80. 534 security_info_.security_bits = 81; // No error if > 80.
543 security_info_.mixed_content_status = 535 security_info_.mixed_content_status =
544 SecurityStateModel::CONTENT_STATUS_DISPLAYED; 536 security_state::CONTENT_STATUS_DISPLAYED;
545 int status = 0; 537 int status = 0;
546 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 538 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
547 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 539 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
548 security_info_.connection_status = status; 540 security_info_.connection_status = status;
549 541
550 SetDefaultUIExpectations(mock_ui()); 542 SetDefaultUIExpectations(mock_ui());
551 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); 543 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION));
552 544
553 EXPECT_EQ( 545 EXPECT_EQ(
554 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE, 546 WebsiteSettings::SITE_CONNECTION_STATUS_INSECURE_PASSIVE_SUBRESOURCE,
555 website_settings()->site_connection_status()); 547 website_settings()->site_connection_status());
556 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, 548 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT,
557 website_settings()->site_identity_status()); 549 website_settings()->site_identity_status());
558 EXPECT_EQ(base::UTF8ToUTF16("Google Inc"), 550 EXPECT_EQ(base::UTF8ToUTF16("Google Inc"),
559 website_settings()->organization_name()); 551 website_settings()->organization_name());
560 } 552 }
561 553
562 TEST_F(WebsiteSettingsTest, HTTPSRevocationError) { 554 TEST_F(WebsiteSettingsTest, HTTPSRevocationError) {
563 security_info_.security_level = SecurityStateModel::SECURE; 555 security_info_.security_level = security_state::SECURE;
564 security_info_.scheme_is_cryptographic = true; 556 security_info_.scheme_is_cryptographic = true;
565 security_info_.certificate = cert(); 557 security_info_.certificate = cert();
566 security_info_.cert_status = net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION; 558 security_info_.cert_status = net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION;
567 security_info_.security_bits = 81; // No error if > 80. 559 security_info_.security_bits = 81; // No error if > 80.
568 int status = 0; 560 int status = 0;
569 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 561 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
570 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 562 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
571 security_info_.connection_status = status; 563 security_info_.connection_status = status;
572 564
573 SetDefaultUIExpectations(mock_ui()); 565 SetDefaultUIExpectations(mock_ui());
574 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); 566 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION));
575 567
576 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 568 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
577 website_settings()->site_connection_status()); 569 website_settings()->site_connection_status());
578 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN, 570 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN,
579 website_settings()->site_identity_status()); 571 website_settings()->site_identity_status());
580 EXPECT_EQ(base::string16(), website_settings()->organization_name()); 572 EXPECT_EQ(base::string16(), website_settings()->organization_name());
581 } 573 }
582 574
583 TEST_F(WebsiteSettingsTest, HTTPSConnectionError) { 575 TEST_F(WebsiteSettingsTest, HTTPSConnectionError) {
584 security_info_.security_level = SecurityStateModel::SECURE; 576 security_info_.security_level = security_state::SECURE;
585 security_info_.scheme_is_cryptographic = true; 577 security_info_.scheme_is_cryptographic = true;
586 security_info_.certificate = cert(); 578 security_info_.certificate = cert();
587 security_info_.cert_status = 0; 579 security_info_.cert_status = 0;
588 security_info_.security_bits = -1; 580 security_info_.security_bits = -1;
589 int status = 0; 581 int status = 0;
590 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 582 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
591 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 583 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
592 security_info_.connection_status = status; 584 security_info_.connection_status = status;
593 585
594 SetDefaultUIExpectations(mock_ui()); 586 SetDefaultUIExpectations(mock_ui());
595 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); 587 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION));
596 588
597 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED_ERROR, 589 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED_ERROR,
598 website_settings()->site_connection_status()); 590 website_settings()->site_connection_status());
599 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, 591 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT,
600 website_settings()->site_identity_status()); 592 website_settings()->site_identity_status());
601 EXPECT_EQ(base::string16(), website_settings()->organization_name()); 593 EXPECT_EQ(base::string16(), website_settings()->organization_name());
602 } 594 }
603 595
604 TEST_F(WebsiteSettingsTest, HTTPSPolicyCertConnection) { 596 TEST_F(WebsiteSettingsTest, HTTPSPolicyCertConnection) {
605 security_info_.security_level = 597 security_info_.security_level =
606 SecurityStateModel::SECURE_WITH_POLICY_INSTALLED_CERT; 598 security_state::SECURE_WITH_POLICY_INSTALLED_CERT;
607 security_info_.scheme_is_cryptographic = true; 599 security_info_.scheme_is_cryptographic = true;
608 security_info_.certificate = cert(); 600 security_info_.certificate = cert();
609 security_info_.cert_status = 0; 601 security_info_.cert_status = 0;
610 security_info_.security_bits = 81; // No error if > 80. 602 security_info_.security_bits = 81; // No error if > 80.
611 int status = 0; 603 int status = 0;
612 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 604 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
613 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 605 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
614 security_info_.connection_status = status; 606 security_info_.connection_status = status;
615 607
616 SetDefaultUIExpectations(mock_ui()); 608 SetDefaultUIExpectations(mock_ui());
617 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); 609 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION));
618 610
619 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 611 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
620 website_settings()->site_connection_status()); 612 website_settings()->site_connection_status());
621 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_ADMIN_PROVIDED_CERT, 613 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_ADMIN_PROVIDED_CERT,
622 website_settings()->site_identity_status()); 614 website_settings()->site_identity_status());
623 EXPECT_EQ(base::string16(), website_settings()->organization_name()); 615 EXPECT_EQ(base::string16(), website_settings()->organization_name());
624 } 616 }
625 617
626 TEST_F(WebsiteSettingsTest, HTTPSSHA1Minor) { 618 TEST_F(WebsiteSettingsTest, HTTPSSHA1Minor) {
627 security_info_.security_level = SecurityStateModel::NONE; 619 security_info_.security_level = security_state::NONE;
628 security_info_.scheme_is_cryptographic = true; 620 security_info_.scheme_is_cryptographic = true;
629 security_info_.certificate = cert(); 621 security_info_.certificate = cert();
630 security_info_.cert_status = 0; 622 security_info_.cert_status = 0;
631 security_info_.security_bits = 81; // No error if > 80. 623 security_info_.security_bits = 81; // No error if > 80.
632 int status = 0; 624 int status = 0;
633 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 625 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
634 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 626 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
635 security_info_.connection_status = status; 627 security_info_.connection_status = status;
636 security_info_.sha1_deprecation_status = 628 security_info_.sha1_deprecation_status =
637 SecurityStateModel::DEPRECATED_SHA1_MINOR; 629 security_state::DEPRECATED_SHA1_MINOR;
638 630
639 SetDefaultUIExpectations(mock_ui()); 631 SetDefaultUIExpectations(mock_ui());
640 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); 632 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION));
641 633
642 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 634 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
643 website_settings()->site_connection_status()); 635 website_settings()->site_connection_status());
644 EXPECT_EQ(WebsiteSettings:: 636 EXPECT_EQ(WebsiteSettings::
645 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MINOR, 637 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MINOR,
646 website_settings()->site_identity_status()); 638 website_settings()->site_identity_status());
647 EXPECT_EQ(base::string16(), website_settings()->organization_name()); 639 EXPECT_EQ(base::string16(), website_settings()->organization_name());
648 EXPECT_EQ(IDR_PAGEINFO_WARNING_MINOR, 640 EXPECT_EQ(IDR_PAGEINFO_WARNING_MINOR,
649 WebsiteSettingsUI::GetIdentityIconID( 641 WebsiteSettingsUI::GetIdentityIconID(
650 website_settings()->site_identity_status())); 642 website_settings()->site_identity_status()));
651 } 643 }
652 644
653 TEST_F(WebsiteSettingsTest, HTTPSSHA1Major) { 645 TEST_F(WebsiteSettingsTest, HTTPSSHA1Major) {
654 security_info_.security_level = SecurityStateModel::NONE; 646 security_info_.security_level = security_state::NONE;
655 security_info_.scheme_is_cryptographic = true; 647 security_info_.scheme_is_cryptographic = true;
656 security_info_.certificate = cert(); 648 security_info_.certificate = cert();
657 security_info_.cert_status = 0; 649 security_info_.cert_status = 0;
658 security_info_.security_bits = 81; // No error if > 80. 650 security_info_.security_bits = 81; // No error if > 80.
659 int status = 0; 651 int status = 0;
660 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 652 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
661 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 653 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
662 security_info_.connection_status = status; 654 security_info_.connection_status = status;
663 security_info_.sha1_deprecation_status = 655 security_info_.sha1_deprecation_status =
664 SecurityStateModel::DEPRECATED_SHA1_MAJOR; 656 security_state::DEPRECATED_SHA1_MAJOR;
665 657
666 SetDefaultUIExpectations(mock_ui()); 658 SetDefaultUIExpectations(mock_ui());
667 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); 659 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION));
668 660
669 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 661 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
670 website_settings()->site_connection_status()); 662 website_settings()->site_connection_status());
671 EXPECT_EQ(WebsiteSettings:: 663 EXPECT_EQ(WebsiteSettings::
672 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MAJOR, 664 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MAJOR,
673 website_settings()->site_identity_status()); 665 website_settings()->site_identity_status());
674 EXPECT_EQ(base::string16(), website_settings()->organization_name()); 666 EXPECT_EQ(base::string16(), website_settings()->organization_name());
675 EXPECT_EQ(IDR_PAGEINFO_BAD, 667 EXPECT_EQ(IDR_PAGEINFO_BAD,
676 WebsiteSettingsUI::GetIdentityIconID( 668 WebsiteSettingsUI::GetIdentityIconID(
677 website_settings()->site_identity_status())); 669 website_settings()->site_identity_status()));
678 } 670 }
679 671
680 // All SCTs are from unknown logs. 672 // All SCTs are from unknown logs.
681 TEST_F(WebsiteSettingsTest, UnknownSCTs) { 673 TEST_F(WebsiteSettingsTest, UnknownSCTs) {
682 security_info_.security_level = SecurityStateModel::SECURE; 674 security_info_.security_level = security_state::SECURE;
683 security_info_.scheme_is_cryptographic = true; 675 security_info_.scheme_is_cryptographic = true;
684 security_info_.certificate = cert(); 676 security_info_.certificate = cert();
685 security_info_.cert_status = 0; 677 security_info_.cert_status = 0;
686 security_info_.security_bits = 81; // No error if > 80. 678 security_info_.security_bits = 81; // No error if > 80.
687 int status = 0; 679 int status = 0;
688 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 680 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
689 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 681 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
690 security_info_.connection_status = status; 682 security_info_.connection_status = status;
691 683
692 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); 684 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN);
693 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); 685 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN);
694 686
695 SetDefaultUIExpectations(mock_ui()); 687 SetDefaultUIExpectations(mock_ui());
696 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); 688 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION));
697 689
698 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 690 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
699 website_settings()->site_connection_status()); 691 website_settings()->site_connection_status());
700 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, 692 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR,
701 website_settings()->site_identity_status()); 693 website_settings()->site_identity_status());
702 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( 694 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID(
703 website_settings()->site_identity_status())); 695 website_settings()->site_identity_status()));
704 } 696 }
705 697
706 // All SCTs are invalid. 698 // All SCTs are invalid.
707 TEST_F(WebsiteSettingsTest, InvalidSCTs) { 699 TEST_F(WebsiteSettingsTest, InvalidSCTs) {
708 security_info_.security_level = SecurityStateModel::SECURE; 700 security_info_.security_level = security_state::SECURE;
709 security_info_.scheme_is_cryptographic = true; 701 security_info_.scheme_is_cryptographic = true;
710 security_info_.certificate = cert(); 702 security_info_.certificate = cert();
711 security_info_.cert_status = 0; 703 security_info_.cert_status = 0;
712 security_info_.security_bits = 81; // No error if > 80. 704 security_info_.security_bits = 81; // No error if > 80.
713 int status = 0; 705 int status = 0;
714 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 706 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
715 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 707 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
716 security_info_.connection_status = status; 708 security_info_.connection_status = status;
717 709
718 security_info_.sct_verify_statuses.push_back( 710 security_info_.sct_verify_statuses.push_back(
719 net::ct::SCT_STATUS_INVALID_TIMESTAMP); 711 net::ct::SCT_STATUS_INVALID_TIMESTAMP);
720 security_info_.sct_verify_statuses.push_back( 712 security_info_.sct_verify_statuses.push_back(
721 net::ct::SCT_STATUS_INVALID_SIGNATURE); 713 net::ct::SCT_STATUS_INVALID_SIGNATURE);
722 714
723 SetDefaultUIExpectations(mock_ui()); 715 SetDefaultUIExpectations(mock_ui());
724 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); 716 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION));
725 717
726 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 718 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
727 website_settings()->site_connection_status()); 719 website_settings()->site_connection_status());
728 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, 720 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR,
729 website_settings()->site_identity_status()); 721 website_settings()->site_identity_status());
730 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( 722 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID(
731 website_settings()->site_identity_status())); 723 website_settings()->site_identity_status()));
732 } 724 }
733 725
734 // All SCTs are valid. 726 // All SCTs are valid.
735 TEST_F(WebsiteSettingsTest, ValidSCTs) { 727 TEST_F(WebsiteSettingsTest, ValidSCTs) {
736 security_info_.security_level = SecurityStateModel::SECURE; 728 security_info_.security_level = security_state::SECURE;
737 security_info_.scheme_is_cryptographic = true; 729 security_info_.scheme_is_cryptographic = true;
738 security_info_.certificate = cert(); 730 security_info_.certificate = cert();
739 security_info_.cert_status = 0; 731 security_info_.cert_status = 0;
740 security_info_.security_bits = 81; // No error if > 80. 732 security_info_.security_bits = 81; // No error if > 80.
741 int status = 0; 733 int status = 0;
742 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 734 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
743 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 735 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
744 security_info_.connection_status = status; 736 security_info_.connection_status = status;
745 737
746 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); 738 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK);
(...skipping 10 matching lines...) Expand all
757 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID( 749 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID(
758 website_settings()->site_identity_status())); 750 website_settings()->site_identity_status()));
759 } 751 }
760 752
761 // All SCTs are valid for an EV cert. 753 // All SCTs are valid for an EV cert.
762 TEST_F(WebsiteSettingsTest, ValidSCTsEV) { 754 TEST_F(WebsiteSettingsTest, ValidSCTsEV) {
763 scoped_refptr<net::X509Certificate> ev_cert = 755 scoped_refptr<net::X509Certificate> ev_cert =
764 net::X509Certificate::CreateFromBytes( 756 net::X509Certificate::CreateFromBytes(
765 reinterpret_cast<const char*>(google_der), sizeof(google_der)); 757 reinterpret_cast<const char*>(google_der), sizeof(google_der));
766 758
767 security_info_.security_level = SecurityStateModel::SECURE; 759 security_info_.security_level = security_state::SECURE;
768 security_info_.scheme_is_cryptographic = true; 760 security_info_.scheme_is_cryptographic = true;
769 security_info_.certificate = ev_cert; 761 security_info_.certificate = ev_cert;
770 security_info_.cert_status = net::CERT_STATUS_IS_EV; 762 security_info_.cert_status = net::CERT_STATUS_IS_EV;
771 security_info_.security_bits = 81; // No error if > 80. 763 security_info_.security_bits = 81; // No error if > 80.
772 int status = 0; 764 int status = 0;
773 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 765 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
774 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 766 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
775 security_info_.connection_status = status; 767 security_info_.connection_status = status;
776 768
777 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); 769 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK);
778 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); 770 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK);
779 771
780 SetDefaultUIExpectations(mock_ui()); 772 SetDefaultUIExpectations(mock_ui());
781 EXPECT_CALL(*mock_ui(), 773 EXPECT_CALL(*mock_ui(),
782 SetSelectedTab(WebsiteSettingsUI::TAB_ID_PERMISSIONS)); 774 SetSelectedTab(WebsiteSettingsUI::TAB_ID_PERMISSIONS));
783 775
784 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 776 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
785 website_settings()->site_connection_status()); 777 website_settings()->site_connection_status());
786 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, 778 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT,
787 website_settings()->site_identity_status()); 779 website_settings()->site_identity_status());
788 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID( 780 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID(
789 website_settings()->site_identity_status())); 781 website_settings()->site_identity_status()));
790 } 782 }
791 783
792 // A mix of unknown and invalid SCTs. 784 // A mix of unknown and invalid SCTs.
793 TEST_F(WebsiteSettingsTest, UnknownAndInvalidSCTs) { 785 TEST_F(WebsiteSettingsTest, UnknownAndInvalidSCTs) {
794 security_info_.security_level = SecurityStateModel::SECURE; 786 security_info_.security_level = security_state::SECURE;
795 security_info_.scheme_is_cryptographic = true; 787 security_info_.scheme_is_cryptographic = true;
796 security_info_.certificate = cert(); 788 security_info_.certificate = cert();
797 security_info_.cert_status = 0; 789 security_info_.cert_status = 0;
798 security_info_.security_bits = 81; // No error if > 80. 790 security_info_.security_bits = 81; // No error if > 80.
799 int status = 0; 791 int status = 0;
800 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 792 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
801 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 793 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
802 security_info_.connection_status = status; 794 security_info_.connection_status = status;
803 795
804 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); 796 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN);
805 security_info_.sct_verify_statuses.push_back( 797 security_info_.sct_verify_statuses.push_back(
806 net::ct::SCT_STATUS_INVALID_SIGNATURE); 798 net::ct::SCT_STATUS_INVALID_SIGNATURE);
807 799
808 SetDefaultUIExpectations(mock_ui()); 800 SetDefaultUIExpectations(mock_ui());
809 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); 801 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION));
810 802
811 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, 803 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED,
812 website_settings()->site_connection_status()); 804 website_settings()->site_connection_status());
813 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, 805 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR,
814 website_settings()->site_identity_status()); 806 website_settings()->site_identity_status());
815 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( 807 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID(
816 website_settings()->site_identity_status())); 808 website_settings()->site_identity_status()));
817 } 809 }
818 810
819 // At least one SCT is valid and one is from an unknown log. 811 // At least one SCT is valid and one is from an unknown log.
820 TEST_F(WebsiteSettingsTest, ValidAndUnknownSCTs) { 812 TEST_F(WebsiteSettingsTest, ValidAndUnknownSCTs) {
821 security_info_.security_level = SecurityStateModel::SECURE; 813 security_info_.security_level = security_state::SECURE;
822 security_info_.scheme_is_cryptographic = true; 814 security_info_.scheme_is_cryptographic = true;
823 security_info_.certificate = cert(); 815 security_info_.certificate = cert();
824 security_info_.cert_status = 0; 816 security_info_.cert_status = 0;
825 security_info_.security_bits = 81; // No error if > 80. 817 security_info_.security_bits = 81; // No error if > 80.
826 int status = 0; 818 int status = 0;
827 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); 819 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1);
828 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); 820 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256);
829 security_info_.connection_status = status; 821 security_info_.connection_status = status;
830 822
831 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); 823 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 website_settings()->site_identity_status()); 885 website_settings()->site_identity_status());
894 EXPECT_EQ(base::string16(), website_settings()->organization_name()); 886 EXPECT_EQ(base::string16(), website_settings()->organization_name());
895 } 887 }
896 #endif 888 #endif
897 889
898 // Tests that metrics are recorded on a WebsiteSettings for pages with 890 // Tests that metrics are recorded on a WebsiteSettings for pages with
899 // various security levels. 891 // various security levels.
900 TEST_F(WebsiteSettingsTest, SecurityLevelMetrics) { 892 TEST_F(WebsiteSettingsTest, SecurityLevelMetrics) {
901 struct TestCase { 893 struct TestCase {
902 const std::string url; 894 const std::string url;
903 const SecurityStateModel::SecurityLevel security_level; 895 const security_state::SecurityLevel security_level;
904 const std::string histogram_name; 896 const std::string histogram_name;
905 }; 897 };
906 const char kGenericHistogram[] = "WebsiteSettings.Action"; 898 const char kGenericHistogram[] = "WebsiteSettings.Action";
907 899
908 const TestCase kTestCases[] = { 900 const TestCase kTestCases[] = {
909 {"https://example.test", SecurityStateModel::SECURE, 901 {"https://example.test", security_state::SECURE,
910 "Security.PageInfo.Action.HttpsUrl.Valid"}, 902 "Security.PageInfo.Action.HttpsUrl.Valid"},
911 {"https://example.test", SecurityStateModel::EV_SECURE, 903 {"https://example.test", security_state::EV_SECURE,
912 "Security.PageInfo.Action.HttpsUrl.Valid"}, 904 "Security.PageInfo.Action.HttpsUrl.Valid"},
913 {"https://example2.test", SecurityStateModel::NONE, 905 {"https://example2.test", security_state::NONE,
914 "Security.PageInfo.Action.HttpsUrl.Downgraded"}, 906 "Security.PageInfo.Action.HttpsUrl.Downgraded"},
915 {"https://example.test", SecurityStateModel::DANGEROUS, 907 {"https://example.test", security_state::DANGEROUS,
916 "Security.PageInfo.Action.HttpsUrl.Dangerous"}, 908 "Security.PageInfo.Action.HttpsUrl.Dangerous"},
917 {"http://example.test", SecurityStateModel::HTTP_SHOW_WARNING, 909 {"http://example.test", security_state::HTTP_SHOW_WARNING,
918 "Security.PageInfo.Action.HttpUrl.Warning"}, 910 "Security.PageInfo.Action.HttpUrl.Warning"},
919 {"http://example.test", SecurityStateModel::DANGEROUS, 911 {"http://example.test", security_state::DANGEROUS,
920 "Security.PageInfo.Action.HttpUrl.Dangerous"}, 912 "Security.PageInfo.Action.HttpUrl.Dangerous"},
921 {"http://example.test", SecurityStateModel::NONE, 913 {"http://example.test", security_state::NONE,
922 "Security.PageInfo.Action.HttpUrl.Neutral"}, 914 "Security.PageInfo.Action.HttpUrl.Neutral"},
923 }; 915 };
924 916
925 for (const auto& test : kTestCases) { 917 for (const auto& test : kTestCases) {
926 base::HistogramTester histograms; 918 base::HistogramTester histograms;
927 SetURL(test.url); 919 SetURL(test.url);
928 security_info_.security_level = test.security_level; 920 security_info_.security_level = test.security_level;
929 ResetMockUI(); 921 ResetMockUI();
930 ClearWebsiteSettings(); 922 ClearWebsiteSettings();
931 SetDefaultUIExpectations(mock_ui()); 923 SetDefaultUIExpectations(mock_ui());
(...skipping 20 matching lines...) Expand all
952 histograms.ExpectTotalCount(test.histogram_name, 2); 944 histograms.ExpectTotalCount(test.histogram_name, 2);
953 histograms.ExpectBucketCount( 945 histograms.ExpectBucketCount(
954 test.histogram_name, 946 test.histogram_name,
955 WebsiteSettings::WebsiteSettingsAction::WEBSITE_SETTINGS_OPENED, 1); 947 WebsiteSettings::WebsiteSettingsAction::WEBSITE_SETTINGS_OPENED, 1);
956 histograms.ExpectBucketCount(test.histogram_name, 948 histograms.ExpectBucketCount(test.histogram_name,
957 WebsiteSettings::WebsiteSettingsAction:: 949 WebsiteSettings::WebsiteSettingsAction::
958 WEBSITE_SETTINGS_PERMISSIONS_TAB_SELECTED, 950 WEBSITE_SETTINGS_PERMISSIONS_TAB_SELECTED,
959 1); 951 1);
960 } 952 }
961 } 953 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698