| 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" |
| (...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 website_settings()->site_connection_status()); | 670 website_settings()->site_connection_status()); |
| 671 EXPECT_EQ(WebsiteSettings:: | 671 EXPECT_EQ(WebsiteSettings:: |
| 672 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MAJOR, | 672 SITE_IDENTITY_STATUS_DEPRECATED_SIGNATURE_ALGORITHM_MAJOR, |
| 673 website_settings()->site_identity_status()); | 673 website_settings()->site_identity_status()); |
| 674 EXPECT_EQ(base::string16(), website_settings()->organization_name()); | 674 EXPECT_EQ(base::string16(), website_settings()->organization_name()); |
| 675 EXPECT_EQ(IDR_PAGEINFO_BAD, | 675 EXPECT_EQ(IDR_PAGEINFO_BAD, |
| 676 WebsiteSettingsUI::GetIdentityIconID( | 676 WebsiteSettingsUI::GetIdentityIconID( |
| 677 website_settings()->site_identity_status())); | 677 website_settings()->site_identity_status())); |
| 678 } | 678 } |
| 679 | 679 |
| 680 // All SCTs are from unknown logs. | |
| 681 TEST_F(WebsiteSettingsTest, UnknownSCTs) { | |
| 682 security_info_.security_level = SecurityStateModel::SECURE; | |
| 683 security_info_.scheme_is_cryptographic = true; | |
| 684 security_info_.certificate = cert(); | |
| 685 security_info_.cert_status = 0; | |
| 686 security_info_.security_bits = 81; // No error if > 80. | |
| 687 int status = 0; | |
| 688 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | |
| 689 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | |
| 690 security_info_.connection_status = status; | |
| 691 | |
| 692 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); | |
| 694 | |
| 695 SetDefaultUIExpectations(mock_ui()); | |
| 696 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | |
| 697 | |
| 698 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | |
| 699 website_settings()->site_connection_status()); | |
| 700 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, | |
| 701 website_settings()->site_identity_status()); | |
| 702 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( | |
| 703 website_settings()->site_identity_status())); | |
| 704 } | |
| 705 | |
| 706 // All SCTs are invalid. | |
| 707 TEST_F(WebsiteSettingsTest, InvalidSCTs) { | |
| 708 security_info_.security_level = SecurityStateModel::SECURE; | |
| 709 security_info_.scheme_is_cryptographic = true; | |
| 710 security_info_.certificate = cert(); | |
| 711 security_info_.cert_status = 0; | |
| 712 security_info_.security_bits = 81; // No error if > 80. | |
| 713 int status = 0; | |
| 714 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | |
| 715 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | |
| 716 security_info_.connection_status = status; | |
| 717 | |
| 718 security_info_.sct_verify_statuses.push_back( | |
| 719 net::ct::SCT_STATUS_INVALID_TIMESTAMP); | |
| 720 security_info_.sct_verify_statuses.push_back( | |
| 721 net::ct::SCT_STATUS_INVALID_SIGNATURE); | |
| 722 | |
| 723 SetDefaultUIExpectations(mock_ui()); | |
| 724 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | |
| 725 | |
| 726 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | |
| 727 website_settings()->site_connection_status()); | |
| 728 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, | |
| 729 website_settings()->site_identity_status()); | |
| 730 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( | |
| 731 website_settings()->site_identity_status())); | |
| 732 } | |
| 733 | |
| 734 // All SCTs are valid. | |
| 735 TEST_F(WebsiteSettingsTest, ValidSCTs) { | |
| 736 security_info_.security_level = SecurityStateModel::SECURE; | |
| 737 security_info_.scheme_is_cryptographic = true; | |
| 738 security_info_.certificate = cert(); | |
| 739 security_info_.cert_status = 0; | |
| 740 security_info_.security_bits = 81; // No error if > 80. | |
| 741 int status = 0; | |
| 742 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | |
| 743 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | |
| 744 security_info_.connection_status = status; | |
| 745 | |
| 746 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); | |
| 747 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); | |
| 748 | |
| 749 SetDefaultUIExpectations(mock_ui()); | |
| 750 EXPECT_CALL(*mock_ui(), | |
| 751 SetSelectedTab(WebsiteSettingsUI::TAB_ID_PERMISSIONS)); | |
| 752 | |
| 753 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | |
| 754 website_settings()->site_connection_status()); | |
| 755 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | |
| 756 website_settings()->site_identity_status()); | |
| 757 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID( | |
| 758 website_settings()->site_identity_status())); | |
| 759 } | |
| 760 | |
| 761 // All SCTs are valid for an EV cert. | |
| 762 TEST_F(WebsiteSettingsTest, ValidSCTsEV) { | |
| 763 scoped_refptr<net::X509Certificate> ev_cert = | |
| 764 net::X509Certificate::CreateFromBytes( | |
| 765 reinterpret_cast<const char*>(google_der), sizeof(google_der)); | |
| 766 | |
| 767 security_info_.security_level = SecurityStateModel::SECURE; | |
| 768 security_info_.scheme_is_cryptographic = true; | |
| 769 security_info_.certificate = ev_cert; | |
| 770 security_info_.cert_status = net::CERT_STATUS_IS_EV; | |
| 771 security_info_.security_bits = 81; // No error if > 80. | |
| 772 int status = 0; | |
| 773 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | |
| 774 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | |
| 775 security_info_.connection_status = status; | |
| 776 | |
| 777 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); | |
| 779 | |
| 780 SetDefaultUIExpectations(mock_ui()); | |
| 781 EXPECT_CALL(*mock_ui(), | |
| 782 SetSelectedTab(WebsiteSettingsUI::TAB_ID_PERMISSIONS)); | |
| 783 | |
| 784 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | |
| 785 website_settings()->site_connection_status()); | |
| 786 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, | |
| 787 website_settings()->site_identity_status()); | |
| 788 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID( | |
| 789 website_settings()->site_identity_status())); | |
| 790 } | |
| 791 | |
| 792 // A mix of unknown and invalid SCTs. | |
| 793 TEST_F(WebsiteSettingsTest, UnknownAndInvalidSCTs) { | |
| 794 security_info_.security_level = SecurityStateModel::SECURE; | |
| 795 security_info_.scheme_is_cryptographic = true; | |
| 796 security_info_.certificate = cert(); | |
| 797 security_info_.cert_status = 0; | |
| 798 security_info_.security_bits = 81; // No error if > 80. | |
| 799 int status = 0; | |
| 800 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | |
| 801 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | |
| 802 security_info_.connection_status = status; | |
| 803 | |
| 804 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); | |
| 805 security_info_.sct_verify_statuses.push_back( | |
| 806 net::ct::SCT_STATUS_INVALID_SIGNATURE); | |
| 807 | |
| 808 SetDefaultUIExpectations(mock_ui()); | |
| 809 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); | |
| 810 | |
| 811 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | |
| 812 website_settings()->site_connection_status()); | |
| 813 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CT_ERROR, | |
| 814 website_settings()->site_identity_status()); | |
| 815 EXPECT_EQ(IDR_PAGEINFO_BAD, WebsiteSettingsUI::GetIdentityIconID( | |
| 816 website_settings()->site_identity_status())); | |
| 817 } | |
| 818 | |
| 819 // At least one SCT is valid and one is from an unknown log. | |
| 820 TEST_F(WebsiteSettingsTest, ValidAndUnknownSCTs) { | |
| 821 security_info_.security_level = SecurityStateModel::SECURE; | |
| 822 security_info_.scheme_is_cryptographic = true; | |
| 823 security_info_.certificate = cert(); | |
| 824 security_info_.cert_status = 0; | |
| 825 security_info_.security_bits = 81; // No error if > 80. | |
| 826 int status = 0; | |
| 827 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | |
| 828 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | |
| 829 security_info_.connection_status = status; | |
| 830 | |
| 831 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_OK); | |
| 832 security_info_.sct_verify_statuses.push_back(net::ct::SCT_STATUS_LOG_UNKNOWN); | |
| 833 | |
| 834 SetDefaultUIExpectations(mock_ui()); | |
| 835 EXPECT_CALL(*mock_ui(), | |
| 836 SetSelectedTab(WebsiteSettingsUI::TAB_ID_PERMISSIONS)); | |
| 837 | |
| 838 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | |
| 839 website_settings()->site_connection_status()); | |
| 840 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | |
| 841 website_settings()->site_identity_status()); | |
| 842 EXPECT_EQ(IDR_PAGEINFO_GOOD, WebsiteSettingsUI::GetIdentityIconID( | |
| 843 website_settings()->site_identity_status())); | |
| 844 } | |
| 845 | |
| 846 #if !defined(OS_ANDROID) | 680 #if !defined(OS_ANDROID) |
| 847 TEST_F(WebsiteSettingsTest, NoInfoBar) { | 681 TEST_F(WebsiteSettingsTest, NoInfoBar) { |
| 848 SetDefaultUIExpectations(mock_ui()); | 682 SetDefaultUIExpectations(mock_ui()); |
| 849 EXPECT_CALL(*mock_ui(), SetSelectedTab( | 683 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 850 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); | 684 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 851 EXPECT_EQ(0u, infobar_service()->infobar_count()); | 685 EXPECT_EQ(0u, infobar_service()->infobar_count()); |
| 852 website_settings()->OnUIClosing(); | 686 website_settings()->OnUIClosing(); |
| 853 EXPECT_EQ(0u, infobar_service()->infobar_count()); | 687 EXPECT_EQ(0u, infobar_service()->infobar_count()); |
| 854 } | 688 } |
| 855 | 689 |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 952 histograms.ExpectTotalCount(test.histogram_name, 2); | 786 histograms.ExpectTotalCount(test.histogram_name, 2); |
| 953 histograms.ExpectBucketCount( | 787 histograms.ExpectBucketCount( |
| 954 test.histogram_name, | 788 test.histogram_name, |
| 955 WebsiteSettings::WebsiteSettingsAction::WEBSITE_SETTINGS_OPENED, 1); | 789 WebsiteSettings::WebsiteSettingsAction::WEBSITE_SETTINGS_OPENED, 1); |
| 956 histograms.ExpectBucketCount(test.histogram_name, | 790 histograms.ExpectBucketCount(test.histogram_name, |
| 957 WebsiteSettings::WebsiteSettingsAction:: | 791 WebsiteSettings::WebsiteSettingsAction:: |
| 958 WEBSITE_SETTINGS_PERMISSIONS_TAB_SELECTED, | 792 WEBSITE_SETTINGS_PERMISSIONS_TAB_SELECTED, |
| 959 1); | 793 1); |
| 960 } | 794 } |
| 961 } | 795 } |
| OLD | NEW |