| 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 "base/at_exit.h" | 7 #include "base/at_exit.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| 11 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 11 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| 12 #include "chrome/browser/infobars/infobar_service.h" | 12 #include "chrome/browser/infobars/infobar_service.h" |
| 13 #include "chrome/browser/ui/website_settings/website_settings_ui.h" | 13 #include "chrome/browser/ui/website_settings/website_settings_ui.h" |
| 14 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 14 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| 15 #include "chrome/test/base/testing_profile.h" | 15 #include "chrome/test/base/testing_profile.h" |
| 16 #include "components/content_settings/core/browser/host_content_settings_map.h" | 16 #include "components/content_settings/core/browser/host_content_settings_map.h" |
| 17 #include "components/content_settings/core/common/content_settings.h" | 17 #include "components/content_settings/core/common/content_settings.h" |
| 18 #include "components/content_settings/core/common/content_settings_types.h" | 18 #include "components/content_settings/core/common/content_settings_types.h" |
| 19 #include "components/infobars/core/infobar.h" | 19 #include "components/infobars/core/infobar.h" |
| 20 #include "content/public/browser/cert_store.h" | 20 #include "content/public/browser/cert_store.h" |
| 21 #include "content/public/common/ssl_status.h" | 21 #include "content/public/common/ssl_status.h" |
| 22 #include "grit/theme_resources.h" |
| 22 #include "net/cert/cert_status_flags.h" | 23 #include "net/cert/cert_status_flags.h" |
| 23 #include "net/cert/x509_certificate.h" | 24 #include "net/cert/x509_certificate.h" |
| 24 #include "net/ssl/ssl_connection_status_flags.h" | 25 #include "net/ssl/ssl_connection_status_flags.h" |
| 25 #include "net/test/test_certificate_data.h" | 26 #include "net/test/test_certificate_data.h" |
| 26 #include "testing/gmock/include/gmock/gmock.h" | 27 #include "testing/gmock/include/gmock/gmock.h" |
| 27 #include "testing/gtest/include/gtest/gtest.h" | 28 #include "testing/gtest/include/gtest/gtest.h" |
| 28 | 29 |
| 29 using content::SSLStatus; | 30 using content::SSLStatus; |
| 30 using testing::_; | 31 using testing::_; |
| 31 using testing::AnyNumber; | 32 using testing::AnyNumber; |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 EXPECT_CALL(*mock_ui(), SetSelectedTab( | 299 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 299 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); | 300 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 300 | 301 |
| 301 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 302 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 302 website_settings()->site_connection_status()); | 303 website_settings()->site_connection_status()); |
| 303 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 304 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 304 website_settings()->site_identity_status()); | 305 website_settings()->site_identity_status()); |
| 305 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 306 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 306 } | 307 } |
| 307 | 308 |
| 308 TEST_F(WebsiteSettingsTest, HTTPSMixedContent) { | 309 TEST_F(WebsiteSettingsTest, HTTPSPassiveMixedContent) { |
| 309 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 310 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 310 ssl_.cert_id = cert_id(); | 311 ssl_.cert_id = cert_id(); |
| 311 ssl_.cert_status = 0; | 312 ssl_.cert_status = 0; |
| 312 ssl_.security_bits = 81; // No error if > 80. | 313 ssl_.security_bits = 81; // No error if > 80. |
| 313 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; | 314 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; |
| 314 int status = 0; | 315 int status = 0; |
| 315 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 316 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 316 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 317 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 317 ssl_.connection_status = status; | 318 ssl_.connection_status = status; |
| 318 | 319 |
| 319 SetDefaultUIExpectations(mock_ui()); | 320 SetDefaultUIExpectations(mock_ui()); |
| 320 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | 321 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 321 | 322 |
| 322 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, | 323 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, |
| 323 website_settings()->site_connection_status()); | 324 website_settings()->site_connection_status()); |
| 324 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 325 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 325 website_settings()->site_identity_status()); | 326 website_settings()->site_identity_status()); |
| 327 EXPECT_EQ(IDR_PAGEINFO_WARNING_MINOR, |
| 328 WebsiteSettingsUI::GetConnectionIconID( |
| 329 website_settings()->site_connection_status())); |
| 326 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 330 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 327 } | 331 } |
| 328 | 332 |
| 333 TEST_F(WebsiteSettingsTest, HTTPSActiveMixedContent) { |
| 334 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATION_BROKEN; |
| 335 ssl_.cert_id = cert_id(); |
| 336 ssl_.cert_status = 0; |
| 337 ssl_.security_bits = 81; // No error if > 80. |
| 338 ssl_.content_status = SSLStatus::RAN_INSECURE_CONTENT; |
| 339 int status = 0; |
| 340 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 341 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 342 ssl_.connection_status = status; |
| 343 |
| 344 SetDefaultUIExpectations(mock_ui()); |
| 345 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 346 |
| 347 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_SCRIPT, |
| 348 website_settings()->site_connection_status()); |
| 349 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 350 website_settings()->site_identity_status()); |
| 351 EXPECT_EQ(IDR_PAGEINFO_BAD, |
| 352 WebsiteSettingsUI::GetConnectionIconID( |
| 353 website_settings()->site_connection_status())); |
| 354 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 355 } |
| 356 |
| 329 TEST_F(WebsiteSettingsTest, HTTPSEVCert) { | 357 TEST_F(WebsiteSettingsTest, HTTPSEVCert) { |
| 330 scoped_refptr<net::X509Certificate> ev_cert = | 358 scoped_refptr<net::X509Certificate> ev_cert = |
| 331 net::X509Certificate::CreateFromBytes( | 359 net::X509Certificate::CreateFromBytes( |
| 332 reinterpret_cast<const char*>(google_der), | 360 reinterpret_cast<const char*>(google_der), |
| 333 sizeof(google_der)); | 361 sizeof(google_der)); |
| 334 int ev_cert_id = 1; | 362 int ev_cert_id = 1; |
| 335 EXPECT_CALL(*cert_store(), RetrieveCert(ev_cert_id, _)).WillRepeatedly( | 363 EXPECT_CALL(*cert_store(), RetrieveCert(ev_cert_id, _)).WillRepeatedly( |
| 336 DoAll(SetArgPointee<1>(ev_cert), Return(true))); | 364 DoAll(SetArgPointee<1>(ev_cert), Return(true))); |
| 337 | 365 |
| 338 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 366 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 | 464 |
| 437 TEST_F(WebsiteSettingsTest, InternalPage) { | 465 TEST_F(WebsiteSettingsTest, InternalPage) { |
| 438 SetURL("chrome://bookmarks"); | 466 SetURL("chrome://bookmarks"); |
| 439 SetDefaultUIExpectations(mock_ui()); | 467 SetDefaultUIExpectations(mock_ui()); |
| 440 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_INTERNAL_PAGE, | 468 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_INTERNAL_PAGE, |
| 441 website_settings()->site_connection_status()); | 469 website_settings()->site_connection_status()); |
| 442 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_INTERNAL_PAGE, | 470 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_INTERNAL_PAGE, |
| 443 website_settings()->site_identity_status()); | 471 website_settings()->site_identity_status()); |
| 444 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 472 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 445 } | 473 } |
| OLD | NEW |