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

Side by Side Diff: chromeos/network/network_connection_handler_unittest.cc

Issue 370623002: Remove most of NetworkUIData. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed yet-another unused function. Created 6 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
« no previous file with comments | « chromeos/network/network_connection_handler.cc ('k') | chromeos/network/network_ui_data.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chromeos/network/network_connection_handler.h" 5 #include "chromeos/network/network_connection_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 dbus_manager->GetShillManagerClient()->GetTestInterface(); 84 dbus_manager->GetShillManagerClient()->GetTestInterface();
85 test_service_client_ = 85 test_service_client_ =
86 dbus_manager->GetShillServiceClient()->GetTestInterface(); 86 dbus_manager->GetShillServiceClient()->GetTestInterface();
87 87
88 test_manager_client_->AddTechnology(shill::kTypeWifi, true /* enabled */); 88 test_manager_client_->AddTechnology(shill::kTypeWifi, true /* enabled */);
89 dbus_manager->GetShillDeviceClient()->GetTestInterface()->AddDevice( 89 dbus_manager->GetShillDeviceClient()->GetTestInterface()->AddDevice(
90 "/device/wifi1", shill::kTypeWifi, "wifi_device1"); 90 "/device/wifi1", shill::kTypeWifi, "wifi_device1");
91 test_manager_client_->AddTechnology(shill::kTypeCellular, 91 test_manager_client_->AddTechnology(shill::kTypeCellular,
92 true /* enabled */); 92 true /* enabled */);
93 dbus_manager->GetShillProfileClient()->GetTestInterface()->AddProfile( 93 dbus_manager->GetShillProfileClient()->GetTestInterface()->AddProfile(
94 "profile_path", std::string() /* shared profile */); 94 "shared_profile_path", std::string() /* shared profile */);
95 dbus_manager->GetShillProfileClient()->GetTestInterface()->AddProfile(
96 "user_profile_path", user_.username_hash());
95 97
96 base::RunLoop().RunUntilIdle(); 98 base::RunLoop().RunUntilIdle();
97 LoginState::Initialize(); 99 LoginState::Initialize();
98 network_state_handler_.reset(NetworkStateHandler::InitializeForTest()); 100 network_state_handler_.reset(NetworkStateHandler::InitializeForTest());
99 network_config_handler_.reset( 101 network_config_handler_.reset(
100 NetworkConfigurationHandler::InitializeForTest( 102 NetworkConfigurationHandler::InitializeForTest(
101 network_state_handler_.get())); 103 network_state_handler_.get()));
102 104
103 network_profile_handler_.reset(new NetworkProfileHandler()); 105 network_profile_handler_.reset(new NetworkProfileHandler());
104 network_profile_handler_->Init(); 106 network_profile_handler_->Init();
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 215
214 scoped_refptr<net::CryptoModule> module( 216 scoped_refptr<net::CryptoModule> module(
215 net::CryptoModule::CreateFromHandle(nssdb->GetPrivateSlot().get())); 217 net::CryptoModule::CreateFromHandle(nssdb->GetPrivateSlot().get()));
216 ASSERT_EQ( 218 ASSERT_EQ(
217 net::OK, 219 net::OK,
218 nssdb->ImportFromPKCS12(module, pkcs12_data, base::string16(), false, 220 nssdb->ImportFromPKCS12(module, pkcs12_data, base::string16(), false,
219 loaded_certs)); 221 loaded_certs));
220 ASSERT_EQ(1U, loaded_certs->size()); 222 ASSERT_EQ(1U, loaded_certs->size());
221 } 223 }
222 224
223 void SetupPolicy() { 225 void SetupPolicy(const std::string& network_configs_json,
224 const char* kNetworkConfigs = 226 const base::DictionaryValue& global_config,
225 "[ { \"GUID\": \"wifi1\"," 227 bool user_policy) {
226 " \"Name\": \"wifi1\","
227 " \"Type\": \"WiFi\","
228 " \"WiFi\": {"
229 " \"Security\": \"WPA-PSK\","
230 " \"SSID\": \"wifi1\","
231 " \"Passphrase\": \"passphrase\""
232 " }"
233 "} ]";
234
235 std::string error; 228 std::string error;
236 scoped_ptr<base::Value> network_configs_value( 229 scoped_ptr<base::Value> network_configs_value(
237 base::JSONReader::ReadAndReturnError( 230 base::JSONReader::ReadAndReturnError(network_configs_json,
238 kNetworkConfigs, base::JSON_ALLOW_TRAILING_COMMAS, NULL, &error)); 231 base::JSON_ALLOW_TRAILING_COMMAS,
232 NULL,
233 &error));
239 ASSERT_TRUE(network_configs_value) << error; 234 ASSERT_TRUE(network_configs_value) << error;
240 235
241 base::ListValue* network_configs = NULL; 236 base::ListValue* network_configs = NULL;
242 ASSERT_TRUE(network_configs_value->GetAsList(&network_configs)); 237 ASSERT_TRUE(network_configs_value->GetAsList(&network_configs));
243 238
244 base::DictionaryValue global_config; 239 if (user_policy) {
245 global_config.SetBooleanWithoutPathExpansion( 240 managed_config_handler_->SetPolicy(
246 ::onc::global_network_config::kAllowOnlyPolicyNetworksToAutoconnect, 241 ::onc::ONC_SOURCE_USER_POLICY,
247 true); 242 user_.username_hash(),
248 243 *network_configs,
249 managed_config_handler_->SetPolicy(::onc::ONC_SOURCE_USER_POLICY, 244 global_config);
250 "", // userhash 245 } else {
251 *network_configs, 246 managed_config_handler_->SetPolicy(::onc::ONC_SOURCE_DEVICE_POLICY,
252 global_config); 247 std::string(), // no username hash
248 *network_configs,
249 global_config);
250 }
253 base::RunLoop().RunUntilIdle(); 251 base::RunLoop().RunUntilIdle();
254 } 252 }
255 253
256 scoped_ptr<NetworkStateHandler> network_state_handler_; 254 scoped_ptr<NetworkStateHandler> network_state_handler_;
257 scoped_ptr<NetworkConfigurationHandler> network_config_handler_; 255 scoped_ptr<NetworkConfigurationHandler> network_config_handler_;
258 scoped_ptr<NetworkConnectionHandler> network_connection_handler_; 256 scoped_ptr<NetworkConnectionHandler> network_connection_handler_;
259 scoped_ptr<ManagedNetworkConfigurationHandlerImpl> managed_config_handler_; 257 scoped_ptr<ManagedNetworkConfigurationHandlerImpl> managed_config_handler_;
260 scoped_ptr<NetworkProfileHandler> network_profile_handler_; 258 scoped_ptr<NetworkProfileHandler> network_profile_handler_;
261 crypto::ScopedTestNSSChromeOSUser user_; 259 crypto::ScopedTestNSSChromeOSUser user_;
262 ShillManagerClient::TestInterface* test_manager_client_; 260 ShillManagerClient::TestInterface* test_manager_client_;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 GetResultAndReset()); 313 GetResultAndReset());
316 314
317 EXPECT_TRUE(Configure(kConfigRequiresActivation)); 315 EXPECT_TRUE(Configure(kConfigRequiresActivation));
318 Connect("cellular1"); 316 Connect("cellular1");
319 EXPECT_EQ(NetworkConnectionHandler::kErrorActivationRequired, 317 EXPECT_EQ(NetworkConnectionHandler::kErrorActivationRequired,
320 GetResultAndReset()); 318 GetResultAndReset());
321 } 319 }
322 320
323 namespace { 321 namespace {
324 322
325 const char* kConfigRequiresCertificateTemplate = 323 const char* kPolicyWithCertPatternTemplate =
326 "{ \"GUID\": \"wifi4\", \"Type\": \"wifi\", \"Connectable\": false," 324 "[ { \"GUID\": \"wifi4\","
327 " \"Security\": \"802_1x\"," 325 " \"Name\": \"wifi4\","
328 " \"UIData\": \"{" 326 " \"Type\": \"WiFi\","
329 " \\\"certificate_type\\\": \\\"pattern\\\"," 327 " \"WiFi\": {"
330 " \\\"certificate_pattern\\\": {" 328 " \"Security\": \"WPA-EAP\","
331 " \\\"Subject\\\": {\\\"CommonName\\\": \\\"%s\\\" }" 329 " \"SSID\": \"wifi_ssid\","
332 " } }\" }"; 330 " \"EAP\": {"
331 " \"Outer\": \"EAP-TLS\","
332 " \"ClientCertType\": \"Pattern\","
333 " \"ClientCertPattern\": {"
334 " \"Subject\": {"
335 " \"CommonName\" : \"%s\""
336 " }"
337 " }"
338 " }"
339 " }"
340 "} ]";
333 341
334 } // namespace 342 } // namespace
335 343
336 // Handle certificates. 344 // Handle certificates.
337 TEST_F(NetworkConnectionHandlerTest, ConnectCertificateMissing) { 345 TEST_F(NetworkConnectionHandlerTest, ConnectCertificateMissing) {
338 StartCertLoader(); 346 StartCertLoader();
347 SetupPolicy(base::StringPrintf(kPolicyWithCertPatternTemplate, "unknown"),
348 base::DictionaryValue(), // no global config
349 true); // load as user policy
339 350
340 EXPECT_TRUE(Configure(
341 base::StringPrintf(kConfigRequiresCertificateTemplate, "unknown")));
342 Connect("wifi4"); 351 Connect("wifi4");
343 EXPECT_EQ(NetworkConnectionHandler::kErrorCertificateRequired, 352 EXPECT_EQ(NetworkConnectionHandler::kErrorCertificateRequired,
344 GetResultAndReset()); 353 GetResultAndReset());
345 } 354 }
346 355
347 TEST_F(NetworkConnectionHandlerTest, ConnectWithCertificateSuccess) { 356 TEST_F(NetworkConnectionHandlerTest, ConnectWithCertificateSuccess) {
348 StartCertLoader(); 357 StartCertLoader();
349 358
350 net::CertificateList certs; 359 net::CertificateList certs;
351 ImportClientCertAndKey("websocket_client_cert.p12", 360 ImportClientCertAndKey("websocket_client_cert.p12",
352 test_nssdb_.get(), 361 test_nssdb_.get(),
353 &certs); 362 &certs);
354 363
355 EXPECT_TRUE(Configure( 364 SetupPolicy(base::StringPrintf(kPolicyWithCertPatternTemplate,
356 base::StringPrintf(kConfigRequiresCertificateTemplate, 365 certs[0]->subject().common_name.c_str()),
357 certs[0]->subject().common_name.c_str()))); 366 base::DictionaryValue(), // no global config
367 true); // load as user policy
358 368
359 Connect("wifi4"); 369 Connect("wifi4");
360 EXPECT_EQ(kSuccessResult, GetResultAndReset()); 370 EXPECT_EQ(kSuccessResult, GetResultAndReset());
361 } 371 }
362 372
363 TEST_F(NetworkConnectionHandlerTest, 373 TEST_F(NetworkConnectionHandlerTest,
364 ConnectWithCertificateRequestedBeforeCertsAreLoaded) { 374 ConnectWithCertificateRequestedBeforeCertsAreLoaded) {
365 net::CertificateList certs; 375 net::CertificateList certs;
366 ImportClientCertAndKey("websocket_client_cert.p12", 376 ImportClientCertAndKey("websocket_client_cert.p12",
367 test_nssdb_.get(), 377 test_nssdb_.get(),
368 &certs); 378 &certs);
369 379
370 EXPECT_TRUE(Configure( 380 SetupPolicy(base::StringPrintf(kPolicyWithCertPatternTemplate,
371 base::StringPrintf(kConfigRequiresCertificateTemplate, 381 certs[0]->subject().common_name.c_str()),
372 certs[0]->subject().common_name.c_str()))); 382 base::DictionaryValue(), // no global config
383 true); // load as user policy
373 384
374 Connect("wifi4"); 385 Connect("wifi4");
375 386
376 // Connect request came before the cert loader loaded certificates, so the 387 // Connect request came before the cert loader loaded certificates, so the
377 // connect request should have been throttled until the certificates are 388 // connect request should have been throttled until the certificates are
378 // loaded. 389 // loaded.
379 EXPECT_EQ("", GetResultAndReset()); 390 EXPECT_EQ("", GetResultAndReset());
380 391
381 StartCertLoader(); 392 StartCertLoader();
382 393
(...skipping 22 matching lines...) Expand all
405 } 416 }
406 417
407 namespace { 418 namespace {
408 419
409 const char* kConfigUnmanagedSharedConnected = 420 const char* kConfigUnmanagedSharedConnected =
410 "{ \"GUID\": \"wifi0\", \"Type\": \"wifi\", \"State\": \"online\" }"; 421 "{ \"GUID\": \"wifi0\", \"Type\": \"wifi\", \"State\": \"online\" }";
411 const char* kConfigManagedSharedConnectable = 422 const char* kConfigManagedSharedConnectable =
412 "{ \"GUID\": \"wifi1\", \"Type\": \"wifi\", \"State\": \"idle\", " 423 "{ \"GUID\": \"wifi1\", \"Type\": \"wifi\", \"State\": \"idle\", "
413 " \"Connectable\": true }"; 424 " \"Connectable\": true }";
414 425
426 const char* kPolicy =
427 "[ { \"GUID\": \"wifi1\","
428 " \"Name\": \"wifi1\","
429 " \"Type\": \"WiFi\","
430 " \"WiFi\": {"
431 " \"Security\": \"WPA-PSK\","
432 " \"SSID\": \"wifi1\","
433 " \"Passphrase\": \"passphrase\""
434 " }"
435 "} ]";
436
415 } // namespace 437 } // namespace
416 438
417 TEST_F(NetworkConnectionHandlerTest, ReconnectOnLoginEarlyPolicyLoading) { 439 TEST_F(NetworkConnectionHandlerTest, ReconnectOnLoginEarlyPolicyLoading) {
418 EXPECT_TRUE(Configure(kConfigUnmanagedSharedConnected)); 440 EXPECT_TRUE(Configure(kConfigUnmanagedSharedConnected));
419 EXPECT_TRUE(Configure(kConfigManagedSharedConnectable)); 441 EXPECT_TRUE(Configure(kConfigManagedSharedConnectable));
420 test_manager_client_->SetBestServiceToConnect("wifi1"); 442 test_manager_client_->SetBestServiceToConnect("wifi1");
421 443
422 // User login shouldn't trigger any change because policy is not loaded yet. 444 // User login shouldn't trigger any change because policy is not loaded yet.
423 LoginToRegularUser(); 445 LoginToRegularUser();
424 EXPECT_EQ(shill::kStateOnline, 446 EXPECT_EQ(shill::kStateOnline,
425 GetServiceStringProperty("wifi0", shill::kStateProperty)); 447 GetServiceStringProperty("wifi0", shill::kStateProperty));
426 EXPECT_EQ(shill::kStateIdle, 448 EXPECT_EQ(shill::kStateIdle,
427 GetServiceStringProperty("wifi1", shill::kStateProperty)); 449 GetServiceStringProperty("wifi1", shill::kStateProperty));
428 450
429 // Policy application should disconnect from the shared and unmanaged network. 451 // Applying the policy which restricts autoconnect should disconnect from the
430 SetupPolicy(); 452 // shared, unmanaged network.
453 base::DictionaryValue global_config;
454 global_config.SetBooleanWithoutPathExpansion(
455 ::onc::global_network_config::kAllowOnlyPolicyNetworksToAutoconnect,
456 true);
457
458 SetupPolicy(kPolicy, global_config, false /* load as device policy */);
431 EXPECT_EQ(shill::kStateIdle, 459 EXPECT_EQ(shill::kStateIdle,
432 GetServiceStringProperty("wifi0", shill::kStateProperty)); 460 GetServiceStringProperty("wifi0", shill::kStateProperty));
433 EXPECT_EQ(shill::kStateIdle, 461 EXPECT_EQ(shill::kStateIdle,
434 GetServiceStringProperty("wifi1", shill::kStateProperty)); 462 GetServiceStringProperty("wifi1", shill::kStateProperty));
435 463
436 // Certificate loading should trigger connecting to the 'best' network. 464 // Certificate loading should trigger connecting to the 'best' network.
437 StartCertLoader(); 465 StartCertLoader();
438 EXPECT_EQ(shill::kStateIdle, 466 EXPECT_EQ(shill::kStateIdle,
439 GetServiceStringProperty("wifi0", shill::kStateProperty)); 467 GetServiceStringProperty("wifi0", shill::kStateProperty));
440 EXPECT_EQ(shill::kStateOnline, 468 EXPECT_EQ(shill::kStateOnline,
441 GetServiceStringProperty("wifi1", shill::kStateProperty)); 469 GetServiceStringProperty("wifi1", shill::kStateProperty));
442 } 470 }
443 471
444 TEST_F(NetworkConnectionHandlerTest, ReconnectOnLoginLatePolicyLoading) { 472 TEST_F(NetworkConnectionHandlerTest, ReconnectOnLoginLatePolicyLoading) {
445 EXPECT_TRUE(Configure(kConfigUnmanagedSharedConnected)); 473 EXPECT_TRUE(Configure(kConfigUnmanagedSharedConnected));
446 EXPECT_TRUE(Configure(kConfigManagedSharedConnectable)); 474 EXPECT_TRUE(Configure(kConfigManagedSharedConnectable));
447 test_manager_client_->SetBestServiceToConnect("wifi1"); 475 test_manager_client_->SetBestServiceToConnect("wifi1");
448 476
449 // User login and certificate loading shouldn't trigger any change until the 477 // User login and certificate loading shouldn't trigger any change until the
450 // policy is loaded. 478 // policy is loaded.
451 LoginToRegularUser(); 479 LoginToRegularUser();
452 StartCertLoader(); 480 StartCertLoader();
453 EXPECT_EQ(shill::kStateOnline, 481 EXPECT_EQ(shill::kStateOnline,
454 GetServiceStringProperty("wifi0", shill::kStateProperty)); 482 GetServiceStringProperty("wifi0", shill::kStateProperty));
455 EXPECT_EQ(shill::kStateIdle, 483 EXPECT_EQ(shill::kStateIdle,
456 GetServiceStringProperty("wifi1", shill::kStateProperty)); 484 GetServiceStringProperty("wifi1", shill::kStateProperty));
457 485
458 SetupPolicy(); 486 // Applying the policy which restricts autoconnect should disconnect from the
487 // shared, unmanaged network.
488 base::DictionaryValue global_config;
489 global_config.SetBooleanWithoutPathExpansion(
490 ::onc::global_network_config::kAllowOnlyPolicyNetworksToAutoconnect,
491 true);
492
493 SetupPolicy(kPolicy, global_config, false /* load as device policy */);
459 EXPECT_EQ(shill::kStateIdle, 494 EXPECT_EQ(shill::kStateIdle,
460 GetServiceStringProperty("wifi0", shill::kStateProperty)); 495 GetServiceStringProperty("wifi0", shill::kStateProperty));
461 EXPECT_EQ(shill::kStateOnline, 496 EXPECT_EQ(shill::kStateOnline,
462 GetServiceStringProperty("wifi1", shill::kStateProperty)); 497 GetServiceStringProperty("wifi1", shill::kStateProperty));
463 } 498 }
464 499
465 } // namespace chromeos 500 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/network/network_connection_handler.cc ('k') | chromeos/network/network_ui_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698