Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: chrome/browser/chromeos/cros/network_library_unittest.cc

Issue 16946002: Resolve certificate references in ONC by PEM. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added a unit test for the resolve function. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/network_library_impl_base.cc ('k') | chrome/browser/chromeos/options/vpn_config_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698