| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 <iostream> | 5 #include <iostream> |
| 6 #include <sstream> | 6 #include <sstream> |
| 7 | 7 |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/stl_util.h" |
| 10 #include "chromeos/dbus/dbus_thread_manager.h" | 11 #include "chromeos/dbus/dbus_thread_manager.h" |
| 11 #include "chromeos/dbus/mock_dbus_thread_manager.h" | 12 #include "chromeos/dbus/mock_dbus_thread_manager.h" |
| 12 #include "chromeos/dbus/mock_shill_manager_client.h" | 13 #include "chromeos/dbus/mock_shill_manager_client.h" |
| 13 #include "chromeos/dbus/mock_shill_profile_client.h" | 14 #include "chromeos/dbus/mock_shill_profile_client.h" |
| 14 #include "chromeos/dbus/mock_shill_service_client.h" | 15 #include "chromeos/dbus/mock_shill_service_client.h" |
| 15 #include "chromeos/network/managed_network_configuration_handler_impl.h" | 16 #include "chromeos/network/managed_network_configuration_handler_impl.h" |
| 16 #include "chromeos/network/network_configuration_handler.h" | 17 #include "chromeos/network/network_configuration_handler.h" |
| 17 #include "chromeos/network/network_profile_handler.h" | 18 #include "chromeos/network/network_profile_handler.h" |
| 18 #include "chromeos/network/onc/onc_test_utils.h" | 19 #include "chromeos/network/onc/onc_test_utils.h" |
| 19 #include "chromeos/network/onc/onc_utils.h" | 20 #include "chromeos/network/onc/onc_utils.h" |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 ASSERT_TRUE(entries); | 95 ASSERT_TRUE(entries); |
| 95 | 96 |
| 96 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue); | 97 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue); |
| 97 base::ListValue* entry_paths = new base::ListValue; | 98 base::ListValue* entry_paths = new base::ListValue; |
| 98 result->SetWithoutPathExpansion(shill::kEntriesProperty, entry_paths); | 99 result->SetWithoutPathExpansion(shill::kEntriesProperty, entry_paths); |
| 99 for (base::DictionaryValue::Iterator it(*entries); !it.IsAtEnd(); | 100 for (base::DictionaryValue::Iterator it(*entries); !it.IsAtEnd(); |
| 100 it.Advance()) { | 101 it.Advance()) { |
| 101 entry_paths->AppendString(it.key()); | 102 entry_paths->AppendString(it.key()); |
| 102 } | 103 } |
| 103 | 104 |
| 104 ASSERT_GT(profile_to_user_.count(profile_path.value()), 0UL); | 105 ASSERT_TRUE(ContainsKey(profile_to_user_, profile_path.value())); |
| 105 const std::string& userhash = profile_to_user_[profile_path.value()]; | 106 const std::string& userhash = profile_to_user_[profile_path.value()]; |
| 106 result->SetStringWithoutPathExpansion(shill::kUserHashProperty, userhash); | 107 result->SetStringWithoutPathExpansion(shill::kUserHashProperty, userhash); |
| 107 | 108 |
| 108 callback.Run(*result); | 109 callback.Run(*result); |
| 109 } | 110 } |
| 110 | 111 |
| 111 void GetEntry(const dbus::ObjectPath& profile_path, | 112 void GetEntry(const dbus::ObjectPath& profile_path, |
| 112 const std::string& entry_path, | 113 const std::string& entry_path, |
| 113 const DictionaryValueCallbackWithoutStatus& callback, | 114 const DictionaryValueCallbackWithoutStatus& callback, |
| 114 const ErrorCallback& error_callback) { | 115 const ErrorCallback& error_callback) { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 | 223 |
| 223 void SetPolicy(::onc::ONCSource onc_source, | 224 void SetPolicy(::onc::ONCSource onc_source, |
| 224 const std::string& userhash, | 225 const std::string& userhash, |
| 225 const std::string& path_to_onc) { | 226 const std::string& path_to_onc) { |
| 226 scoped_ptr<base::DictionaryValue> policy; | 227 scoped_ptr<base::DictionaryValue> policy; |
| 227 if (path_to_onc.empty()) | 228 if (path_to_onc.empty()) |
| 228 policy = onc::ReadDictionaryFromJson(onc::kEmptyUnencryptedConfiguration); | 229 policy = onc::ReadDictionaryFromJson(onc::kEmptyUnencryptedConfiguration); |
| 229 else | 230 else |
| 230 policy = test_utils::ReadTestDictionary(path_to_onc); | 231 policy = test_utils::ReadTestDictionary(path_to_onc); |
| 231 | 232 |
| 232 base::ListValue* network_configs = NULL; | 233 base::ListValue empty_network_configs; |
| 234 base::ListValue* network_configs = &empty_network_configs; |
| 233 policy->GetListWithoutPathExpansion( | 235 policy->GetListWithoutPathExpansion( |
| 234 ::onc::toplevel_config::kNetworkConfigurations, &network_configs); | 236 ::onc::toplevel_config::kNetworkConfigurations, &network_configs); |
| 235 | 237 |
| 238 base::DictionaryValue empty_global_config; |
| 239 base::DictionaryValue* global_network_config = &empty_global_config; |
| 240 policy->GetDictionaryWithoutPathExpansion( |
| 241 ::onc::toplevel_config::kGlobalNetworkConfiguration, |
| 242 &global_network_config); |
| 243 |
| 236 managed_handler()->SetPolicy( | 244 managed_handler()->SetPolicy( |
| 237 ::onc::ONC_SOURCE_USER_POLICY, userhash, *network_configs); | 245 onc_source, userhash, *network_configs, *global_network_config); |
| 238 } | 246 } |
| 239 | 247 |
| 240 void SetNetworkConfigurationHandlerExpectations() { | 248 void SetNetworkConfigurationHandlerExpectations() { |
| 241 // These calls occur in NetworkConfigurationHandler. | 249 // These calls occur in NetworkConfigurationHandler. |
| 242 EXPECT_CALL(mock_manager_client_, GetProperties(_)).Times(AnyNumber()); | 250 EXPECT_CALL(mock_manager_client_, GetProperties(_)).Times(AnyNumber()); |
| 243 EXPECT_CALL(mock_manager_client_, | 251 EXPECT_CALL(mock_manager_client_, |
| 244 AddPropertyChangedObserver(_)).Times(AnyNumber()); | 252 AddPropertyChangedObserver(_)).Times(AnyNumber()); |
| 245 EXPECT_CALL(mock_manager_client_, | 253 EXPECT_CALL(mock_manager_client_, |
| 246 RemovePropertyChangedObserver(_)).Times(AnyNumber()); | 254 RemovePropertyChangedObserver(_)).Times(AnyNumber()); |
| 247 } | 255 } |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 test_utils::ReadTestDictionary( | 327 test_utils::ReadTestDictionary( |
| 320 "policy/" | 328 "policy/" |
| 321 "shill_policy_on_unmanaged_ethernet_eap.json"); | 329 "shill_policy_on_unmanaged_ethernet_eap.json"); |
| 322 | 330 |
| 323 SetUpEntry("policy/shill_unmanaged_ethernet_eap.json", | 331 SetUpEntry("policy/shill_unmanaged_ethernet_eap.json", |
| 324 kUser1ProfilePath, | 332 kUser1ProfilePath, |
| 325 "eth_entry"); | 333 "eth_entry"); |
| 326 | 334 |
| 327 // Also setup an unrelated WiFi configuration to verify that the right entry | 335 // Also setup an unrelated WiFi configuration to verify that the right entry |
| 328 // is matched. | 336 // is matched. |
| 329 SetUpEntry("policy/shill_unmanaged_user_wifi1.json", | 337 SetUpEntry("policy/shill_unmanaged_wifi1.json", |
| 330 kUser1ProfilePath, | 338 kUser1ProfilePath, |
| 331 "wifi_entry"); | 339 "wifi_entry"); |
| 332 | 340 |
| 333 EXPECT_CALL(mock_profile_client_, | 341 EXPECT_CALL(mock_profile_client_, |
| 334 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); | 342 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 335 | 343 |
| 336 EXPECT_CALL(mock_profile_client_, | 344 EXPECT_CALL(mock_profile_client_, |
| 337 GetEntry(dbus::ObjectPath(kUser1ProfilePath), _, _, _)).Times(2); | 345 GetEntry(dbus::ObjectPath(kUser1ProfilePath), _, _, _)).Times(2); |
| 338 | 346 |
| 339 EXPECT_CALL( | 347 EXPECT_CALL( |
| (...skipping 14 matching lines...) Expand all Loading... |
| 354 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyIgnoreUnmodified) { | 362 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyIgnoreUnmodified) { |
| 355 InitializeStandardProfiles(); | 363 InitializeStandardProfiles(); |
| 356 EXPECT_CALL(mock_profile_client_, GetProperties(_, _, _)); | 364 EXPECT_CALL(mock_profile_client_, GetProperties(_, _, _)); |
| 357 | 365 |
| 358 EXPECT_CALL(mock_manager_client_, ConfigureServiceForProfile(_, _, _, _)); | 366 EXPECT_CALL(mock_manager_client_, ConfigureServiceForProfile(_, _, _, _)); |
| 359 | 367 |
| 360 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); | 368 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); |
| 361 message_loop_.RunUntilIdle(); | 369 message_loop_.RunUntilIdle(); |
| 362 VerifyAndClearExpectations(); | 370 VerifyAndClearExpectations(); |
| 363 | 371 |
| 364 SetUpEntry("policy/shill_policy_on_unmanaged_user_wifi1.json", | 372 SetUpEntry("policy/shill_policy_on_unmanaged_wifi1.json", |
| 365 kUser1ProfilePath, | 373 kUser1ProfilePath, |
| 366 "some_entry_path"); | 374 "some_entry_path"); |
| 367 | 375 |
| 368 EXPECT_CALL(mock_profile_client_, GetProperties(_, _, _)); | 376 EXPECT_CALL(mock_profile_client_, GetProperties(_, _, _)); |
| 369 | 377 |
| 370 EXPECT_CALL( | 378 EXPECT_CALL( |
| 371 mock_profile_client_, | 379 mock_profile_client_, |
| 372 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "some_entry_path", _, _)); | 380 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "some_entry_path", _, _)); |
| 373 | 381 |
| 374 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); | 382 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); |
| 375 message_loop_.RunUntilIdle(); | 383 message_loop_.RunUntilIdle(); |
| 376 } | 384 } |
| 377 | 385 |
| 378 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyManageUnmanaged) { | 386 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyManageUnmanaged) { |
| 379 InitializeStandardProfiles(); | 387 InitializeStandardProfiles(); |
| 380 SetUpEntry("policy/shill_unmanaged_user_wifi1.json", | 388 SetUpEntry("policy/shill_unmanaged_wifi1.json", |
| 381 kUser1ProfilePath, | 389 kUser1ProfilePath, |
| 382 "old_entry_path"); | 390 "old_entry_path"); |
| 383 | 391 |
| 384 scoped_ptr<base::DictionaryValue> expected_shill_properties = | 392 scoped_ptr<base::DictionaryValue> expected_shill_properties = |
| 385 test_utils::ReadTestDictionary( | 393 test_utils::ReadTestDictionary( |
| 386 "policy/shill_policy_on_unmanaged_user_wifi1.json"); | 394 "policy/shill_policy_on_unmanaged_wifi1.json"); |
| 387 | 395 |
| 388 EXPECT_CALL(mock_profile_client_, | 396 EXPECT_CALL(mock_profile_client_, |
| 389 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); | 397 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 390 | 398 |
| 391 EXPECT_CALL( | 399 EXPECT_CALL( |
| 392 mock_profile_client_, | 400 mock_profile_client_, |
| 393 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); | 401 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); |
| 394 | 402 |
| 395 EXPECT_CALL( | 403 EXPECT_CALL( |
| 396 mock_profile_client_, | 404 mock_profile_client_, |
| 397 DeleteEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); | 405 DeleteEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); |
| 398 | 406 |
| 399 EXPECT_CALL(mock_manager_client_, | 407 EXPECT_CALL(mock_manager_client_, |
| 400 ConfigureServiceForProfile( | 408 ConfigureServiceForProfile( |
| 401 dbus::ObjectPath(kUser1ProfilePath), | 409 dbus::ObjectPath(kUser1ProfilePath), |
| 402 IsEqualTo(expected_shill_properties.get()), | 410 IsEqualTo(expected_shill_properties.get()), |
| 403 _, _)); | 411 _, _)); |
| 404 | 412 |
| 405 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); | 413 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); |
| 406 message_loop_.RunUntilIdle(); | 414 message_loop_.RunUntilIdle(); |
| 407 } | 415 } |
| 408 | 416 |
| 409 // Old ChromeOS versions may not have used the UIData property | 417 // Old ChromeOS versions may not have used the UIData property |
| 410 TEST_F(ManagedNetworkConfigurationHandlerTest, | 418 TEST_F(ManagedNetworkConfigurationHandlerTest, |
| 411 SetPolicyManageUnmanagedWithoutUIData) { | 419 SetPolicyManageUnmanagedWithoutUIData) { |
| 412 InitializeStandardProfiles(); | 420 InitializeStandardProfiles(); |
| 413 SetUpEntry("policy/shill_unmanaged_user_wifi1.json", | 421 SetUpEntry("policy/shill_unmanaged_wifi1.json", |
| 414 kUser1ProfilePath, | 422 kUser1ProfilePath, |
| 415 "old_entry_path"); | 423 "old_entry_path"); |
| 416 | 424 |
| 417 scoped_ptr<base::DictionaryValue> expected_shill_properties = | 425 scoped_ptr<base::DictionaryValue> expected_shill_properties = |
| 418 test_utils::ReadTestDictionary( | 426 test_utils::ReadTestDictionary( |
| 419 "policy/shill_policy_on_unmanaged_user_wifi1.json"); | 427 "policy/shill_policy_on_unmanaged_wifi1.json"); |
| 420 | 428 |
| 421 EXPECT_CALL(mock_profile_client_, | 429 EXPECT_CALL(mock_profile_client_, |
| 422 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); | 430 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 423 | 431 |
| 424 EXPECT_CALL( | 432 EXPECT_CALL( |
| 425 mock_profile_client_, | 433 mock_profile_client_, |
| 426 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); | 434 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); |
| 427 | 435 |
| 428 EXPECT_CALL( | 436 EXPECT_CALL( |
| 429 mock_profile_client_, | 437 mock_profile_client_, |
| (...skipping 10 matching lines...) Expand all Loading... |
| 440 } | 448 } |
| 441 | 449 |
| 442 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyUpdateManagedNewGUID) { | 450 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyUpdateManagedNewGUID) { |
| 443 InitializeStandardProfiles(); | 451 InitializeStandardProfiles(); |
| 444 SetUpEntry("policy/shill_managed_wifi1.json", | 452 SetUpEntry("policy/shill_managed_wifi1.json", |
| 445 kUser1ProfilePath, | 453 kUser1ProfilePath, |
| 446 "old_entry_path"); | 454 "old_entry_path"); |
| 447 | 455 |
| 448 scoped_ptr<base::DictionaryValue> expected_shill_properties = | 456 scoped_ptr<base::DictionaryValue> expected_shill_properties = |
| 449 test_utils::ReadTestDictionary( | 457 test_utils::ReadTestDictionary( |
| 450 "policy/shill_policy_on_unmanaged_user_wifi1.json"); | 458 "policy/shill_policy_on_unmanaged_wifi1.json"); |
| 451 | 459 |
| 452 // The passphrase isn't sent again, because it's configured by the user and | 460 // The passphrase isn't sent again, because it's configured by the user and |
| 453 // Shill doesn't sent it on GetProperties calls. | 461 // Shill doesn't sent it on GetProperties calls. |
| 454 expected_shill_properties->RemoveWithoutPathExpansion( | 462 expected_shill_properties->RemoveWithoutPathExpansion( |
| 455 shill::kPassphraseProperty, NULL); | 463 shill::kPassphraseProperty, NULL); |
| 456 | 464 |
| 457 EXPECT_CALL(mock_profile_client_, | 465 EXPECT_CALL(mock_profile_client_, |
| 458 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); | 466 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 459 | 467 |
| 460 EXPECT_CALL( | 468 EXPECT_CALL( |
| 461 mock_profile_client_, | 469 mock_profile_client_, |
| 462 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); | 470 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); |
| 463 | 471 |
| 464 EXPECT_CALL( | 472 EXPECT_CALL( |
| 465 mock_profile_client_, | 473 mock_profile_client_, |
| 466 DeleteEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); | 474 DeleteEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); |
| 467 | 475 |
| 468 EXPECT_CALL(mock_manager_client_, | 476 EXPECT_CALL(mock_manager_client_, |
| 469 ConfigureServiceForProfile( | 477 ConfigureServiceForProfile( |
| 470 dbus::ObjectPath(kUser1ProfilePath), | 478 dbus::ObjectPath(kUser1ProfilePath), |
| 471 IsEqualTo(expected_shill_properties.get()), | 479 IsEqualTo(expected_shill_properties.get()), |
| 472 _, _)); | 480 _, _)); |
| 473 | 481 |
| 474 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); | 482 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); |
| 475 message_loop_.RunUntilIdle(); | 483 message_loop_.RunUntilIdle(); |
| 476 } | 484 } |
| 477 | 485 |
| 478 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyReapplyToManaged) { | 486 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyReapplyToManaged) { |
| 479 InitializeStandardProfiles(); | 487 InitializeStandardProfiles(); |
| 480 SetUpEntry("policy/shill_policy_on_unmanaged_user_wifi1.json", | 488 SetUpEntry("policy/shill_policy_on_unmanaged_wifi1.json", |
| 481 kUser1ProfilePath, | 489 kUser1ProfilePath, |
| 482 "old_entry_path"); | 490 "old_entry_path"); |
| 483 | 491 |
| 484 scoped_ptr<base::DictionaryValue> expected_shill_properties = | 492 scoped_ptr<base::DictionaryValue> expected_shill_properties = |
| 485 test_utils::ReadTestDictionary( | 493 test_utils::ReadTestDictionary( |
| 486 "policy/shill_policy_on_unmanaged_user_wifi1.json"); | 494 "policy/shill_policy_on_unmanaged_wifi1.json"); |
| 487 | 495 |
| 488 // The passphrase isn't sent again, because it's configured by the user and | 496 // The passphrase isn't sent again, because it's configured by the user and |
| 489 // Shill doesn't sent it on GetProperties calls. | 497 // Shill doesn't sent it on GetProperties calls. |
| 490 expected_shill_properties->RemoveWithoutPathExpansion( | 498 expected_shill_properties->RemoveWithoutPathExpansion( |
| 491 shill::kPassphraseProperty, NULL); | 499 shill::kPassphraseProperty, NULL); |
| 492 | 500 |
| 493 EXPECT_CALL(mock_profile_client_, | 501 EXPECT_CALL(mock_profile_client_, |
| 494 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); | 502 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 495 | 503 |
| 496 EXPECT_CALL( | 504 EXPECT_CALL( |
| (...skipping 18 matching lines...) Expand all Loading... |
| 515 EXPECT_CALL( | 523 EXPECT_CALL( |
| 516 mock_profile_client_, | 524 mock_profile_client_, |
| 517 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); | 525 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "old_entry_path", _, _)); |
| 518 | 526 |
| 519 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); | 527 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); |
| 520 message_loop_.RunUntilIdle(); | 528 message_loop_.RunUntilIdle(); |
| 521 } | 529 } |
| 522 | 530 |
| 523 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyUnmanageManaged) { | 531 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyUnmanageManaged) { |
| 524 InitializeStandardProfiles(); | 532 InitializeStandardProfiles(); |
| 525 SetUpEntry("policy/shill_policy_on_unmanaged_user_wifi1.json", | 533 SetUpEntry("policy/shill_policy_on_unmanaged_wifi1.json", |
| 526 kUser1ProfilePath, | 534 kUser1ProfilePath, |
| 527 "old_entry_path"); | 535 "old_entry_path"); |
| 528 | 536 |
| 529 EXPECT_CALL(mock_profile_client_, | 537 EXPECT_CALL(mock_profile_client_, |
| 530 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); | 538 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 531 | 539 |
| 532 EXPECT_CALL(mock_profile_client_, | 540 EXPECT_CALL(mock_profile_client_, |
| 533 GetEntry(dbus::ObjectPath(kUser1ProfilePath), | 541 GetEntry(dbus::ObjectPath(kUser1ProfilePath), |
| 534 "old_entry_path", | 542 "old_entry_path", |
| 535 _, _)); | 543 _, _)); |
| 536 | 544 |
| 537 EXPECT_CALL(mock_profile_client_, | 545 EXPECT_CALL(mock_profile_client_, |
| 538 DeleteEntry(dbus::ObjectPath(kUser1ProfilePath), | 546 DeleteEntry(dbus::ObjectPath(kUser1ProfilePath), |
| 539 "old_entry_path", | 547 "old_entry_path", |
| 540 _, _)); | 548 _, _)); |
| 541 | 549 |
| 542 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, ""); | 550 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, ""); |
| 543 message_loop_.RunUntilIdle(); | 551 message_loop_.RunUntilIdle(); |
| 544 } | 552 } |
| 545 | 553 |
| 546 TEST_F(ManagedNetworkConfigurationHandlerTest, SetEmptyPolicyIgnoreUnmanaged) { | 554 TEST_F(ManagedNetworkConfigurationHandlerTest, SetEmptyPolicyIgnoreUnmanaged) { |
| 547 InitializeStandardProfiles(); | 555 InitializeStandardProfiles(); |
| 548 SetUpEntry("policy/shill_unmanaged_user_wifi1.json", | 556 SetUpEntry("policy/shill_unmanaged_wifi1.json", |
| 549 kUser1ProfilePath, | 557 kUser1ProfilePath, |
| 550 "old_entry_path"); | 558 "old_entry_path"); |
| 551 | 559 |
| 552 EXPECT_CALL(mock_profile_client_, | 560 EXPECT_CALL(mock_profile_client_, |
| 553 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); | 561 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 554 | 562 |
| 555 EXPECT_CALL(mock_profile_client_, | 563 EXPECT_CALL(mock_profile_client_, |
| 556 GetEntry(dbus::ObjectPath(kUser1ProfilePath), | 564 GetEntry(dbus::ObjectPath(kUser1ProfilePath), |
| 557 "old_entry_path", | 565 "old_entry_path", |
| 558 _, _)); | 566 _, _)); |
| 559 | 567 |
| 560 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, ""); | 568 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, ""); |
| 561 message_loop_.RunUntilIdle(); | 569 message_loop_.RunUntilIdle(); |
| 562 } | 570 } |
| 563 | 571 |
| 564 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyIgnoreUnmanaged) { | 572 TEST_F(ManagedNetworkConfigurationHandlerTest, SetPolicyIgnoreUnmanaged) { |
| 565 InitializeStandardProfiles(); | 573 InitializeStandardProfiles(); |
| 566 SetUpEntry("policy/shill_unmanaged_user_wifi2.json", | 574 SetUpEntry("policy/shill_unmanaged_wifi2.json", |
| 567 kUser1ProfilePath, | 575 kUser1ProfilePath, |
| 568 "wifi2_entry_path"); | 576 "wifi2_entry_path"); |
| 569 | 577 |
| 570 EXPECT_CALL(mock_profile_client_, | 578 EXPECT_CALL(mock_profile_client_, |
| 571 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); | 579 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 572 | 580 |
| 573 EXPECT_CALL( | 581 EXPECT_CALL( |
| 574 mock_profile_client_, | 582 mock_profile_client_, |
| 575 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "wifi2_entry_path", _, _)); | 583 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "wifi2_entry_path", _, _)); |
| 576 | 584 |
| 577 scoped_ptr<base::DictionaryValue> expected_shill_properties = | 585 scoped_ptr<base::DictionaryValue> expected_shill_properties = |
| 578 test_utils::ReadTestDictionary( | 586 test_utils::ReadTestDictionary( |
| 579 "policy/shill_policy_on_unconfigured_wifi1.json"); | 587 "policy/shill_policy_on_unconfigured_wifi1.json"); |
| 580 | 588 |
| 581 EXPECT_CALL(mock_manager_client_, | 589 EXPECT_CALL(mock_manager_client_, |
| 582 ConfigureServiceForProfile( | 590 ConfigureServiceForProfile( |
| 583 dbus::ObjectPath(kUser1ProfilePath), | 591 dbus::ObjectPath(kUser1ProfilePath), |
| 584 IsEqualTo(expected_shill_properties.get()), | 592 IsEqualTo(expected_shill_properties.get()), |
| 585 _, _)); | 593 _, _)); |
| 586 | 594 |
| 587 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); | 595 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); |
| 588 message_loop_.RunUntilIdle(); | 596 message_loop_.RunUntilIdle(); |
| 589 } | 597 } |
| 590 | 598 |
| 599 TEST_F(ManagedNetworkConfigurationHandlerTest, AutoConnectDisallowed) { |
| 600 InitializeStandardProfiles(); |
| 601 SetUpEntry("policy/shill_unmanaged_wifi2.json", |
| 602 kUser1ProfilePath, |
| 603 "wifi2_entry_path"); |
| 604 |
| 605 EXPECT_CALL(mock_profile_client_, |
| 606 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 607 |
| 608 EXPECT_CALL( |
| 609 mock_profile_client_, |
| 610 GetEntry(dbus::ObjectPath(kUser1ProfilePath), "wifi2_entry_path", _, _)); |
| 611 |
| 612 scoped_ptr<base::DictionaryValue> expected_shill_properties = |
| 613 test_utils::ReadTestDictionary( |
| 614 "policy/shill_disallow_autoconnect_on_unmanaged_wifi2.json"); |
| 615 |
| 616 EXPECT_CALL(mock_manager_client_, |
| 617 ConfigureServiceForProfile( |
| 618 dbus::ObjectPath(kUser1ProfilePath), |
| 619 IsEqualTo(expected_shill_properties.get()), |
| 620 _, _)); |
| 621 |
| 622 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, |
| 623 kUser1, |
| 624 "policy/policy_disallow_autoconnect.onc"); |
| 625 message_loop_.RunUntilIdle(); |
| 626 } |
| 627 |
| 591 TEST_F(ManagedNetworkConfigurationHandlerTest, LateProfileLoading) { | 628 TEST_F(ManagedNetworkConfigurationHandlerTest, LateProfileLoading) { |
| 592 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); | 629 SetPolicy(::onc::ONC_SOURCE_USER_POLICY, kUser1, "policy/policy_wifi1.onc"); |
| 593 | 630 |
| 594 message_loop_.RunUntilIdle(); | 631 message_loop_.RunUntilIdle(); |
| 595 VerifyAndClearExpectations(); | 632 VerifyAndClearExpectations(); |
| 596 | 633 |
| 597 scoped_ptr<base::DictionaryValue> expected_shill_properties = | 634 scoped_ptr<base::DictionaryValue> expected_shill_properties = |
| 598 test_utils::ReadTestDictionary( | 635 test_utils::ReadTestDictionary( |
| 599 "policy/shill_policy_on_unconfigured_wifi1.json"); | 636 "policy/shill_policy_on_unconfigured_wifi1.json"); |
| 600 | 637 |
| 601 EXPECT_CALL(mock_profile_client_, | 638 EXPECT_CALL(mock_profile_client_, |
| 602 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); | 639 GetProperties(dbus::ObjectPath(kUser1ProfilePath), _, _)); |
| 603 | 640 |
| 604 EXPECT_CALL(mock_manager_client_, | 641 EXPECT_CALL(mock_manager_client_, |
| 605 ConfigureServiceForProfile( | 642 ConfigureServiceForProfile( |
| 606 dbus::ObjectPath(kUser1ProfilePath), | 643 dbus::ObjectPath(kUser1ProfilePath), |
| 607 IsEqualTo(expected_shill_properties.get()), | 644 IsEqualTo(expected_shill_properties.get()), |
| 608 _, _)); | 645 _, _)); |
| 609 | 646 |
| 610 InitializeStandardProfiles(); | 647 InitializeStandardProfiles(); |
| 611 message_loop_.RunUntilIdle(); | 648 message_loop_.RunUntilIdle(); |
| 612 } | 649 } |
| 613 | 650 |
| 614 } // namespace chromeos | 651 } // namespace chromeos |
| OLD | NEW |