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 |