| 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/chromeos/policy/network_configuration_updater.h" | 5 #include "chrome/browser/chromeos/policy/network_configuration_updater_impl_cros
.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| 11 #include "base/message_loop.h" | 11 #include "base/message_loop.h" |
| 12 #include "base/run_loop.h" | 12 #include "base/run_loop.h" |
| 13 #include "chrome/browser/chromeos/cros/mock_network_library.h" | 13 #include "chrome/browser/chromeos/cros/mock_network_library.h" |
| 14 #include "chrome/browser/policy/mock_configuration_policy_provider.h" | 14 #include "chrome/browser/policy/mock_configuration_policy_provider.h" |
| 15 #include "chrome/browser/policy/policy_map.h" | 15 #include "chrome/browser/policy/policy_map.h" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 39 | 39 |
| 40 const char kFakeONC[] = "{ \"GUID\": \"1234\" }"; | 40 const char kFakeONC[] = "{ \"GUID\": \"1234\" }"; |
| 41 | 41 |
| 42 ACTION_P(SetCertificateList, list) { | 42 ACTION_P(SetCertificateList, list) { |
| 43 *arg3 = list; | 43 *arg3 = list; |
| 44 return true; | 44 return true; |
| 45 } | 45 } |
| 46 | 46 |
| 47 } // namespace | 47 } // namespace |
| 48 | 48 |
| 49 // Tests of NetworkConfigurationUpdaterImplCros |
| 49 class NetworkConfigurationUpdaterTest | 50 class NetworkConfigurationUpdaterTest |
| 50 : public testing::TestWithParam<const char*>{ | 51 : public testing::TestWithParam<const char*>{ |
| 51 protected: | 52 protected: |
| 52 NetworkConfigurationUpdaterTest() | 53 NetworkConfigurationUpdaterTest() |
| 53 : ui_thread_(content::BrowserThread::UI, &loop_), | 54 : ui_thread_(content::BrowserThread::UI, &loop_), |
| 54 io_thread_(content::BrowserThread::IO, &loop_) {} | 55 io_thread_(content::BrowserThread::IO, &loop_) {} |
| 55 | 56 |
| 56 virtual void SetUp() OVERRIDE { | 57 virtual void SetUp() OVERRIDE { |
| 57 EXPECT_CALL(provider_, IsInitializationComplete(_)) | 58 EXPECT_CALL(provider_, IsInitializationComplete(_)) |
| 58 .WillRepeatedly(Return(true)); | 59 .WillRepeatedly(Return(true)); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 EXPECT_CALL(network_library_, AddNetworkProfileObserver(_)); | 104 EXPECT_CALL(network_library_, AddNetworkProfileObserver(_)); |
| 104 | 105 |
| 105 // Initially, only the device policy is applied. The user policy is only | 106 // Initially, only the device policy is applied. The user policy is only |
| 106 // applied after the user profile was initialized. | 107 // applied after the user profile was initialized. |
| 107 const char* device_onc = GetParam() == key::kDeviceOpenNetworkConfiguration ? | 108 const char* device_onc = GetParam() == key::kDeviceOpenNetworkConfiguration ? |
| 108 kFakeONC : chromeos::onc::kEmptyUnencryptedConfiguration; | 109 kFakeONC : chromeos::onc::kEmptyUnencryptedConfiguration; |
| 109 EXPECT_CALL(network_library_, LoadOncNetworks( | 110 EXPECT_CALL(network_library_, LoadOncNetworks( |
| 110 device_onc, "", chromeos::onc::ONC_SOURCE_DEVICE_POLICY, _)); | 111 device_onc, "", chromeos::onc::ONC_SOURCE_DEVICE_POLICY, _)); |
| 111 | 112 |
| 112 { | 113 { |
| 113 NetworkConfigurationUpdater updater(policy_service_.get(), | 114 NetworkConfigurationUpdaterImplCros updater(policy_service_.get(), |
| 114 &network_library_); | 115 &network_library_); |
| 115 Mock::VerifyAndClearExpectations(&network_library_); | 116 Mock::VerifyAndClearExpectations(&network_library_); |
| 116 | 117 |
| 117 // After the user policy is initialized, we always push both policies to the | 118 // After the user policy is initialized, we always push both policies to the |
| 118 // NetworkLibrary. | 119 // NetworkLibrary. |
| 119 EXPECT_CALL(network_library_, LoadOncNetworks( | 120 EXPECT_CALL(network_library_, LoadOncNetworks( |
| 120 kFakeONC, "", NameToONCSource(GetParam()), _)); | 121 kFakeONC, "", NameToONCSource(GetParam()), _)); |
| 121 EXPECT_CALL(network_library_, LoadOncNetworks( | 122 EXPECT_CALL(network_library_, LoadOncNetworks( |
| 122 chromeos::onc::kEmptyUnencryptedConfiguration, | 123 chromeos::onc::kEmptyUnencryptedConfiguration, |
| 123 "", | 124 "", |
| 124 Ne(NameToONCSource(GetParam())), | 125 Ne(NameToONCSource(GetParam())), |
| (...skipping 13 matching lines...) Expand all Loading... |
| 138 const net::CertificateList empty_cert_list; | 139 const net::CertificateList empty_cert_list; |
| 139 | 140 |
| 140 const net::CertificateList cert_list = | 141 const net::CertificateList cert_list = |
| 141 net::CreateCertificateListFromFile(net::GetTestCertsDirectory(), | 142 net::CreateCertificateListFromFile(net::GetTestCertsDirectory(), |
| 142 "ok_cert.pem", | 143 "ok_cert.pem", |
| 143 net::X509Certificate::FORMAT_AUTO); | 144 net::X509Certificate::FORMAT_AUTO); |
| 144 ASSERT_EQ(1u, cert_list.size()); | 145 ASSERT_EQ(1u, cert_list.size()); |
| 145 | 146 |
| 146 EXPECT_CALL(network_library_, LoadOncNetworks(_, _, _, _)) | 147 EXPECT_CALL(network_library_, LoadOncNetworks(_, _, _, _)) |
| 147 .WillRepeatedly(SetCertificateList(empty_cert_list)); | 148 .WillRepeatedly(SetCertificateList(empty_cert_list)); |
| 148 NetworkConfigurationUpdater updater(policy_service_.get(), | 149 NetworkConfigurationUpdaterImplCros updater(policy_service_.get(), |
| 149 &network_library_); | 150 &network_library_); |
| 150 net::CertTrustAnchorProvider* trust_provider = | 151 net::CertTrustAnchorProvider* trust_provider = |
| 151 updater.GetCertTrustAnchorProvider(); | 152 updater.GetCertTrustAnchorProvider(); |
| 152 ASSERT_TRUE(trust_provider); | 153 ASSERT_TRUE(trust_provider); |
| 153 // The initial list of trust anchors is empty. | 154 // The initial list of trust anchors is empty. |
| 154 content::RunAllPendingInMessageLoop(content::BrowserThread::IO); | 155 content::RunAllPendingInMessageLoop(content::BrowserThread::IO); |
| 155 EXPECT_TRUE(trust_provider->GetAdditionalTrustAnchors().empty()); | 156 EXPECT_TRUE(trust_provider->GetAdditionalTrustAnchors().empty()); |
| 156 | 157 |
| 157 // Initially, certificates imported from policy don't have trust flags. | 158 // Initially, certificates imported from policy don't have trust flags. |
| 158 updater.OnUserPolicyInitialized(); | 159 updater.OnUserPolicyInitialized(); |
| 159 content::RunAllPendingInMessageLoop(content::BrowserThread::IO); | 160 content::RunAllPendingInMessageLoop(content::BrowserThread::IO); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 188 Mock::VerifyAndClearExpectations(&network_library_); | 189 Mock::VerifyAndClearExpectations(&network_library_); |
| 189 } | 190 } |
| 190 | 191 |
| 191 TEST_P(NetworkConfigurationUpdaterTest, PolicyChange) { | 192 TEST_P(NetworkConfigurationUpdaterTest, PolicyChange) { |
| 192 { | 193 { |
| 193 EXPECT_CALL(network_library_, AddNetworkProfileObserver(_)); | 194 EXPECT_CALL(network_library_, AddNetworkProfileObserver(_)); |
| 194 | 195 |
| 195 // Ignore the initial updates. | 196 // Ignore the initial updates. |
| 196 EXPECT_CALL(network_library_, LoadOncNetworks(_, _, _, _)) | 197 EXPECT_CALL(network_library_, LoadOncNetworks(_, _, _, _)) |
| 197 .Times(AnyNumber()); | 198 .Times(AnyNumber()); |
| 198 NetworkConfigurationUpdater updater(policy_service_.get(), | 199 NetworkConfigurationUpdaterImplCros updater(policy_service_.get(), |
| 199 &network_library_); | 200 &network_library_); |
| 200 updater.OnUserPolicyInitialized(); | 201 updater.OnUserPolicyInitialized(); |
| 201 Mock::VerifyAndClearExpectations(&network_library_); | 202 Mock::VerifyAndClearExpectations(&network_library_); |
| 202 | 203 |
| 203 // We should update if policy changes. | 204 // We should update if policy changes. |
| 204 EXPECT_CALL(network_library_, LoadOncNetworks( | 205 EXPECT_CALL(network_library_, LoadOncNetworks( |
| 205 kFakeONC, "", NameToONCSource(GetParam()), _)); | 206 kFakeONC, "", NameToONCSource(GetParam()), _)); |
| 206 | 207 |
| 207 // In the current implementation, we always apply both policies. | 208 // In the current implementation, we always apply both policies. |
| 208 EXPECT_CALL(network_library_, LoadOncNetworks( | 209 EXPECT_CALL(network_library_, LoadOncNetworks( |
| 209 chromeos::onc::kEmptyUnencryptedConfiguration, | 210 chromeos::onc::kEmptyUnencryptedConfiguration, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 235 Mock::VerifyAndClearExpectations(&network_library_); | 236 Mock::VerifyAndClearExpectations(&network_library_); |
| 236 } | 237 } |
| 237 | 238 |
| 238 INSTANTIATE_TEST_CASE_P( | 239 INSTANTIATE_TEST_CASE_P( |
| 239 NetworkConfigurationUpdaterTestInstance, | 240 NetworkConfigurationUpdaterTestInstance, |
| 240 NetworkConfigurationUpdaterTest, | 241 NetworkConfigurationUpdaterTest, |
| 241 testing::Values(key::kDeviceOpenNetworkConfiguration, | 242 testing::Values(key::kDeviceOpenNetworkConfiguration, |
| 242 key::kOpenNetworkConfiguration)); | 243 key::kOpenNetworkConfiguration)); |
| 243 | 244 |
| 244 } // namespace policy | 245 } // namespace policy |
| OLD | NEW |