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 <pk11pub.h> | 5 #include <pk11pub.h> |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 cros_ = NULL; | 147 cros_ = NULL; |
148 } | 148 } |
149 | 149 |
150 // Load the ONC from |onc_file| using NetworkLibrary::LoadOncNetworks. Check | 150 // Load the ONC from |onc_file| using NetworkLibrary::LoadOncNetworks. Check |
151 // that return value matches |expect_successful_import| and the configuration | 151 // that return value matches |expect_successful_import| and the configuration |
152 // that would be sent to Shill matches |shill_json|. | 152 // that would be sent to Shill matches |shill_json|. |
153 void LoadOncAndVerifyNetworks(std::string onc_file, | 153 void LoadOncAndVerifyNetworks(std::string onc_file, |
154 std::string shill_json, | 154 std::string shill_json, |
155 onc::ONCSource source, | 155 onc::ONCSource source, |
156 bool expect_successful_import) { | 156 bool expect_successful_import) { |
157 MockUserManager* mock_user_manager = new MockUserManager; | 157 MockUserManager* mock_user_manager = |
| 158 new ::testing::StrictMock<MockUserManager>; |
158 // Takes ownership of |mock_user_manager|. | 159 // Takes ownership of |mock_user_manager|. |
159 ScopedUserManagerEnabler user_manager_enabler(mock_user_manager); | 160 ScopedUserManagerEnabler user_manager_enabler(mock_user_manager); |
160 mock_user_manager->SetActiveUser("madmax@my.domain.com"); | 161 mock_user_manager->SetActiveUser("madmax@my.domain.com"); |
161 EXPECT_CALL(*mock_user_manager, IsUserLoggedIn()) | 162 EXPECT_CALL(*mock_user_manager, IsUserLoggedIn()) |
162 .Times(AnyNumber()) | 163 .Times(AnyNumber()) |
163 .WillRepeatedly(Return(true)); | 164 .WillRepeatedly(Return(true)); |
| 165 EXPECT_CALL(*mock_user_manager, Shutdown()); |
164 | 166 |
165 scoped_ptr<base::DictionaryValue> onc_blob = | 167 scoped_ptr<base::DictionaryValue> onc_blob = |
166 onc::test_utils::ReadTestDictionary(onc_file); | 168 onc::test_utils::ReadTestDictionary(onc_file); |
167 base::ListValue* onc_network_configs; | 169 base::ListValue* onc_network_configs; |
168 onc_blob->GetListWithoutPathExpansion( | 170 onc_blob->GetListWithoutPathExpansion( |
169 onc::toplevel_config::kNetworkConfigurations, | 171 onc::toplevel_config::kNetworkConfigurations, |
170 &onc_network_configs); | 172 &onc_network_configs); |
171 ASSERT_TRUE(onc_network_configs); | 173 ASSERT_TRUE(onc_network_configs); |
172 | 174 |
173 scoped_ptr<base::Value> expected_value = | 175 scoped_ptr<base::Value> expected_value = |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 EXPECT_TRUE(wifi1->connected()); | 284 EXPECT_TRUE(wifi1->connected()); |
283 cros_->DisconnectFromNetwork(wifi1); | 285 cros_->DisconnectFromNetwork(wifi1); |
284 EXPECT_FALSE(wifi1->connected()); | 286 EXPECT_FALSE(wifi1->connected()); |
285 EXPECT_TRUE(cros_->CanConnectToNetwork(wifi1)); | 287 EXPECT_TRUE(cros_->CanConnectToNetwork(wifi1)); |
286 cros_->ConnectToWifiNetwork(wifi1); | 288 cros_->ConnectToWifiNetwork(wifi1); |
287 EXPECT_TRUE(wifi1->connected()); | 289 EXPECT_TRUE(wifi1->connected()); |
288 } | 290 } |
289 | 291 |
290 TEST_F(NetworkLibraryStubTest, NetworkConnectWifiWithCertPattern) { | 292 TEST_F(NetworkLibraryStubTest, NetworkConnectWifiWithCertPattern) { |
291 scoped_ptr<base::DictionaryValue> onc_root = | 293 scoped_ptr<base::DictionaryValue> onc_root = |
292 onc::test_utils::ReadTestDictionary("toplevel_wifi_eap_clientcert.onc"); | 294 onc::test_utils::ReadTestDictionary("certificate-client.onc"); |
293 base::ListValue* certificates; | 295 base::ListValue* certificates; |
294 onc_root->GetListWithoutPathExpansion(onc::toplevel_config::kCertificates, | 296 onc_root->GetListWithoutPathExpansion(onc::toplevel_config::kCertificates, |
295 &certificates); | 297 &certificates); |
296 | 298 |
297 onc::CertificateImporter importer(true /* allow trust imports */); | 299 onc::CertificateImporter importer(true /* allow trust imports */); |
298 ASSERT_EQ(onc::CertificateImporter::IMPORT_OK, | 300 ASSERT_EQ(onc::CertificateImporter::IMPORT_OK, |
299 importer.ParseAndStoreCertificates(*certificates, NULL)); | 301 importer.ParseAndStoreCertificates(*certificates, NULL, NULL)); |
300 | 302 |
301 WifiNetwork* wifi = cros_->FindWifiNetworkByPath("wifi_cert_pattern"); | 303 WifiNetwork* wifi = cros_->FindWifiNetworkByPath("wifi_cert_pattern"); |
302 | 304 |
303 StubEnrollmentDelegate* enrollment_delegate = new StubEnrollmentDelegate(); | 305 StubEnrollmentDelegate* enrollment_delegate = new StubEnrollmentDelegate(); |
304 wifi->SetEnrollmentDelegate(enrollment_delegate); | 306 wifi->SetEnrollmentDelegate(enrollment_delegate); |
305 EXPECT_FALSE(enrollment_delegate->did_enroll); | 307 EXPECT_FALSE(enrollment_delegate->did_enroll); |
306 EXPECT_FALSE(enrollment_delegate->correct_args); | 308 EXPECT_FALSE(enrollment_delegate->correct_args); |
307 | 309 |
308 ASSERT_NE(static_cast<const WifiNetwork*>(NULL), wifi); | 310 ASSERT_NE(static_cast<const WifiNetwork*>(NULL), wifi); |
309 EXPECT_FALSE(wifi->connected()); | 311 EXPECT_FALSE(wifi->connected()); |
310 EXPECT_TRUE(cros_->CanConnectToNetwork(wifi)); | 312 EXPECT_TRUE(cros_->CanConnectToNetwork(wifi)); |
311 EXPECT_FALSE(wifi->connected()); | 313 EXPECT_FALSE(wifi->connected()); |
312 wifi->AttemptConnection( | 314 wifi->AttemptConnection( |
313 base::Bind(&WifiNetworkConnectCallback, cros_, wifi)); | 315 base::Bind(&WifiNetworkConnectCallback, cros_, wifi)); |
314 EXPECT_TRUE(wifi->connected()); | 316 EXPECT_TRUE(wifi->connected()); |
315 EXPECT_TRUE(enrollment_delegate->did_enroll); | 317 EXPECT_TRUE(enrollment_delegate->did_enroll); |
316 EXPECT_TRUE(enrollment_delegate->correct_args); | 318 EXPECT_TRUE(enrollment_delegate->correct_args); |
317 } | 319 } |
318 | 320 |
319 TEST_F(NetworkLibraryStubTest, NetworkConnectVPNWithCertPattern) { | 321 TEST_F(NetworkLibraryStubTest, NetworkConnectVPNWithCertPattern) { |
320 scoped_ptr<base::DictionaryValue> onc_root = | 322 scoped_ptr<base::DictionaryValue> onc_root = |
321 onc::test_utils::ReadTestDictionary("toplevel_openvpn_clientcert.onc"); | 323 onc::test_utils::ReadTestDictionary("certificate-client.onc"); |
322 base::ListValue* certificates; | 324 base::ListValue* certificates; |
323 onc_root->GetListWithoutPathExpansion(onc::toplevel_config::kCertificates, | 325 onc_root->GetListWithoutPathExpansion(onc::toplevel_config::kCertificates, |
324 &certificates); | 326 &certificates); |
325 | 327 |
326 onc::CertificateImporter importer(true /* allow trust imports */); | 328 onc::CertificateImporter importer(true /* allow trust imports */); |
327 ASSERT_EQ(onc::CertificateImporter::IMPORT_OK, | 329 ASSERT_EQ(onc::CertificateImporter::IMPORT_OK, |
328 importer.ParseAndStoreCertificates(*certificates, NULL)); | 330 importer.ParseAndStoreCertificates(*certificates, NULL, NULL)); |
329 | 331 |
330 VirtualNetwork* vpn = cros_->FindVirtualNetworkByPath("vpn_cert_pattern"); | 332 VirtualNetwork* vpn = cros_->FindVirtualNetworkByPath("vpn_cert_pattern"); |
331 | 333 |
332 StubEnrollmentDelegate* enrollment_delegate = new StubEnrollmentDelegate(); | 334 StubEnrollmentDelegate* enrollment_delegate = new StubEnrollmentDelegate(); |
333 vpn->SetEnrollmentDelegate(enrollment_delegate); | 335 vpn->SetEnrollmentDelegate(enrollment_delegate); |
334 EXPECT_FALSE(enrollment_delegate->did_enroll); | 336 EXPECT_FALSE(enrollment_delegate->did_enroll); |
335 EXPECT_FALSE(enrollment_delegate->correct_args); | 337 EXPECT_FALSE(enrollment_delegate->correct_args); |
336 | 338 |
337 ASSERT_NE(static_cast<const VirtualNetwork*>(NULL), vpn); | 339 ASSERT_NE(static_cast<const VirtualNetwork*>(NULL), vpn); |
338 EXPECT_FALSE(vpn->connected()); | 340 EXPECT_FALSE(vpn->connected()); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 LoadOncAndVerifyNetworks(GetParam().onc_file, | 399 LoadOncAndVerifyNetworks(GetParam().onc_file, |
398 GetParam().shill_file, | 400 GetParam().shill_file, |
399 GetParam().onc_source, | 401 GetParam().onc_source, |
400 GetParam().expect_import_result); | 402 GetParam().expect_import_result); |
401 } | 403 } |
402 | 404 |
403 INSTANTIATE_TEST_CASE_P( | 405 INSTANTIATE_TEST_CASE_P( |
404 LoadOncNetworksTest, | 406 LoadOncNetworksTest, |
405 LoadOncNetworksTest, | 407 LoadOncNetworksTest, |
406 ::testing::Values( | 408 ::testing::Values( |
407 ImportParams("managed_toplevel1.onc", | 409 ImportParams("managed_toplevel1_with_cert_pems.onc", |
408 "chromeos/net/shill_for_managed_toplevel1.json", | 410 "chromeos/net/shill_for_managed_toplevel1.json", |
409 onc::ONC_SOURCE_USER_POLICY), | 411 onc::ONC_SOURCE_USER_POLICY), |
410 ImportParams("managed_toplevel2.onc", | 412 ImportParams("managed_toplevel2_with_cert_pems.onc", |
411 "chromeos/net/shill_for_managed_toplevel2.json", | 413 "chromeos/net/shill_for_managed_toplevel2.json", |
412 onc::ONC_SOURCE_USER_POLICY), | 414 onc::ONC_SOURCE_USER_POLICY), |
413 ImportParams("managed_toplevel_l2tpipsec.onc", | 415 ImportParams("managed_toplevel_l2tpipsec.onc", |
414 "chromeos/net/shill_for_managed_toplevel_l2tpipsec.json", | 416 "chromeos/net/shill_for_managed_toplevel_l2tpipsec.json", |
415 onc::ONC_SOURCE_USER_POLICY), | 417 onc::ONC_SOURCE_USER_POLICY), |
416 ImportParams("managed_toplevel_wifi_peap.onc", | 418 ImportParams("managed_toplevel_wifi_peap.onc", |
417 "chromeos/net/shill_for_managed_toplevel_wifi_peap.json", | 419 "chromeos/net/shill_for_managed_toplevel_wifi_peap.json", |
418 onc::ONC_SOURCE_DEVICE_POLICY), | 420 onc::ONC_SOURCE_DEVICE_POLICY), |
419 ImportParams("toplevel_wifi_open.onc", | 421 ImportParams("toplevel_wifi_open.onc", |
420 "chromeos/net/shill_for_toplevel_wifi_open.json", | 422 "chromeos/net/shill_for_toplevel_wifi_open.json", |
421 onc::ONC_SOURCE_DEVICE_POLICY), | 423 onc::ONC_SOURCE_DEVICE_POLICY), |
422 ImportParams("toplevel_wifi_wep_proxy.onc", | 424 ImportParams("toplevel_wifi_wep_proxy.onc", |
423 "chromeos/net/shill_for_toplevel_wifi_wep_proxy.json", | 425 "chromeos/net/shill_for_toplevel_wifi_wep_proxy.json", |
424 onc::ONC_SOURCE_USER_POLICY), | 426 onc::ONC_SOURCE_USER_POLICY), |
425 ImportParams("toplevel_wifi_wpa_psk.onc", | 427 ImportParams("toplevel_wifi_wpa_psk.onc", |
426 "chromeos/net/shill_for_toplevel_wifi_wpa_psk.json", | 428 "chromeos/net/shill_for_toplevel_wifi_wpa_psk.json", |
427 onc::ONC_SOURCE_USER_POLICY), | 429 onc::ONC_SOURCE_USER_POLICY), |
428 ImportParams("toplevel_wifi_leap.onc", | 430 ImportParams("toplevel_wifi_leap.onc", |
429 "chromeos/net/shill_for_toplevel_wifi_leap.json", | 431 "chromeos/net/shill_for_toplevel_wifi_leap.json", |
430 onc::ONC_SOURCE_USER_POLICY), | 432 onc::ONC_SOURCE_USER_POLICY), |
431 ImportParams( | 433 ImportParams( |
432 "toplevel_wifi_eap_clientcert.onc", | 434 "toplevel_wifi_eap_clientcert_with_cert_pems.onc", |
433 "chromeos/net/shill_for_toplevel_wifi_eap_clientcert.json", | 435 "chromeos/net/shill_for_toplevel_wifi_eap_clientcert.json", |
434 onc::ONC_SOURCE_USER_POLICY), | 436 onc::ONC_SOURCE_USER_POLICY), |
435 ImportParams("toplevel_openvpn_clientcert.onc", | 437 ImportParams("toplevel_openvpn_clientcert_with_cert_pems.onc", |
436 "chromeos/net/shill_for_toplevel_openvpn_clientcert.json", | 438 "chromeos/net/shill_for_toplevel_openvpn_clientcert.json", |
437 onc::ONC_SOURCE_USER_POLICY), | 439 onc::ONC_SOURCE_USER_POLICY), |
438 ImportParams("toplevel_wifi_remove.onc", | 440 ImportParams("toplevel_wifi_remove.onc", |
439 "chromeos/net/shill_for_toplevel_wifi_remove.json", | 441 "chromeos/net/shill_for_toplevel_wifi_remove.json", |
440 onc::ONC_SOURCE_USER_POLICY))); | 442 onc::ONC_SOURCE_USER_POLICY))); |
441 | 443 |
442 // TODO(stevenjb): Test remembered networks. | 444 // TODO(stevenjb): Test remembered networks. |
443 | 445 |
444 // TODO(stevenjb): Test network profiles. | 446 // TODO(stevenjb): Test network profiles. |
445 | 447 |
446 // TODO(stevenjb): Test network devices. | 448 // TODO(stevenjb): Test network devices. |
447 | 449 |
448 // TODO(stevenjb): Test data plans. | 450 // TODO(stevenjb): Test data plans. |
449 | 451 |
450 // TODO(stevenjb): Test monitor network / device. | 452 // TODO(stevenjb): Test monitor network / device. |
451 | 453 |
452 } // namespace chromeos | 454 } // namespace chromeos |
OLD | NEW |