1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "net/base/ssl_config_service_mac.h" 6 #include "testing/gtest/include/gtest/gtest.h" 7 8 using base::TimeDelta; 9 using base::TimeTicks; 10 11 namespace { 12 13 class SSLConfigServiceMacTest : public testing::Test { 14 }; 15 16 } // namespace 17 18 TEST(SSLConfigServiceMacTest, GetNowTest) { 19 // Verify that the constructor sets the correct default values. 20 net::SSLConfig config; 21 EXPECT_EQ(true, config.rev_checking_enabled); 22 EXPECT_EQ(false, config.ssl2_enabled); 23 EXPECT_EQ(true, config.ssl3_enabled); 24 EXPECT_EQ(true, config.tls1_enabled); 25 26 bool rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config); 27 EXPECT_TRUE(rv); 28 } 29 30 TEST(SSLConfigServiceMacTest, SetTest) { 31 // Save the current settings so we can restore them after the tests. 32 net::SSLConfig config_save; 33 bool rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config_save); 34 EXPECT_TRUE(rv); 35 36 net::SSLConfig config; 37 38 // Test SetRevCheckingEnabled. 39 net::SSLConfigServiceMac::SetRevCheckingEnabled(true); 40 rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config); 41 EXPECT_TRUE(rv); 42 EXPECT_TRUE(config.rev_checking_enabled); 43 44 net::SSLConfigServiceMac::SetRevCheckingEnabled(false); 45 rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config); 46 EXPECT_TRUE(rv); 47 EXPECT_FALSE(config.rev_checking_enabled); 48 49 net::SSLConfigServiceMac::SetRevCheckingEnabled( 50 config_save.rev_checking_enabled); 51 52 // Test SetSSL2Enabled. 53 net::SSLConfigServiceMac::SetSSL2Enabled(true); 54 rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config); 55 EXPECT_TRUE(rv); 56 EXPECT_TRUE(config.ssl2_enabled); 57 58 net::SSLConfigServiceMac::SetSSL2Enabled(false); 59 rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config); 60 EXPECT_TRUE(rv); 61 EXPECT_FALSE(config.ssl2_enabled); 62 63 net::SSLConfigServiceMac::SetSSL2Enabled(config_save.ssl2_enabled); 64 65 // Test SetSSL3Enabled. 66 net::SSLConfigServiceMac::SetSSL3Enabled(true); 67 rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config); 68 EXPECT_TRUE(rv); 69 EXPECT_TRUE(config.ssl3_enabled); 70 71 net::SSLConfigServiceMac::SetSSL3Enabled(false); 72 rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config); 73 EXPECT_TRUE(rv); 74 EXPECT_FALSE(config.ssl3_enabled); 75 76 net::SSLConfigServiceMac::SetSSL3Enabled(config_save.ssl3_enabled); 77 78 // Test SetTLS1Enabled. 79 net::SSLConfigServiceMac::SetTLS1Enabled(true); 80 rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config); 81 EXPECT_TRUE(rv); 82 EXPECT_TRUE(config.tls1_enabled); 83 84 net::SSLConfigServiceMac::SetTLS1Enabled(false); 85 rv = net::SSLConfigServiceMac::GetSSLConfigNow(&config); 86 EXPECT_TRUE(rv); 87 EXPECT_FALSE(config.tls1_enabled); 88 89 net::SSLConfigServiceMac::SetTLS1Enabled(config_save.tls1_enabled); 90 } 91 92 TEST(SSLConfigServiceMacTest, GetTest) { 93 TimeTicks now = TimeTicks::Now(); 94 TimeTicks now_1 = now + TimeDelta::FromSeconds(1); 95 TimeTicks now_11 = now + TimeDelta::FromSeconds(11); 96 97 net::SSLConfig config, config_1, config_11; 98 scoped_refptr<net::SSLConfigServiceMac> config_service( 99 new net::SSLConfigServiceMac(now)); 100 config_service->GetSSLConfigAt(&config, now); 101 102 // Flip rev_checking_enabled. 103 net::SSLConfigServiceMac::SetRevCheckingEnabled( 104 !config.rev_checking_enabled); 105 106 config_service->GetSSLConfigAt(&config_1, now_1); 107 EXPECT_EQ(config.rev_checking_enabled, config_1.rev_checking_enabled); 108 109 config_service->GetSSLConfigAt(&config_11, now_11); 110 EXPECT_EQ(!config.rev_checking_enabled, config_11.rev_checking_enabled); 111 112 // Restore the original value. 113 net::SSLConfigServiceMac::SetRevCheckingEnabled( 114 config.rev_checking_enabled); 115 } 116