Home | History | Annotate | Download | only in base
      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