| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "chromeos/dbus/fake_shill_service_client.h" | 5 #include "chromeos/dbus/fake_shill_service_client.h" |
| 6 | 6 |
| 7 #include <utility> |
| 8 |
| 7 #include "base/bind.h" | 9 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| 9 #include "base/location.h" | 11 #include "base/location.h" |
| 10 #include "base/memory/ptr_util.h" | 12 #include "base/memory/ptr_util.h" |
| 11 #include "base/single_thread_task_runner.h" | 13 #include "base/single_thread_task_runner.h" |
| 12 #include "base/strings/string_util.h" | 14 #include "base/strings/string_util.h" |
| 13 #include "base/threading/thread_task_runner_handle.h" | 15 #include "base/threading/thread_task_runner_handle.h" |
| 14 #include "base/values.h" | 16 #include "base/values.h" |
| 15 #include "chromeos/dbus/dbus_thread_manager.h" | 17 #include "chromeos/dbus/dbus_thread_manager.h" |
| 16 #include "chromeos/dbus/shill_device_client.h" | 18 #include "chromeos/dbus/shill_device_client.h" |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 | 315 |
| 314 std::string profile_path; | 316 std::string profile_path; |
| 315 if (properties->GetStringWithoutPathExpansion(shill::kProfileProperty, | 317 if (properties->GetStringWithoutPathExpansion(shill::kProfileProperty, |
| 316 &profile_path) && | 318 &profile_path) && |
| 317 !profile_path.empty()) { | 319 !profile_path.empty()) { |
| 318 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface()-> | 320 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface()-> |
| 319 UpdateService(profile_path, service_path); | 321 UpdateService(profile_path, service_path); |
| 320 } | 322 } |
| 321 | 323 |
| 322 if (!ipconfig_path.empty()) { | 324 if (!ipconfig_path.empty()) { |
| 323 properties->SetWithoutPathExpansion(shill::kIPConfigProperty, | 325 properties->SetStringWithoutPathExpansion(shill::kIPConfigProperty, |
| 324 new base::Value(ipconfig_path)); | 326 ipconfig_path); |
| 325 } | 327 } |
| 326 | 328 |
| 327 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()-> | 329 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()-> |
| 328 AddManagerService(service_path, true); | 330 AddManagerService(service_path, true); |
| 329 } | 331 } |
| 330 | 332 |
| 331 base::DictionaryValue* FakeShillServiceClient::SetServiceProperties( | 333 base::DictionaryValue* FakeShillServiceClient::SetServiceProperties( |
| 332 const std::string& service_path, | 334 const std::string& service_path, |
| 333 const std::string& guid, | 335 const std::string& guid, |
| 334 const std::string& name, | 336 const std::string& name, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 405 if (base::StartsWith(property, "Provider.", case_sensitive) || | 407 if (base::StartsWith(property, "Provider.", case_sensitive) || |
| 406 base::StartsWith(property, "OpenVPN.", case_sensitive) || | 408 base::StartsWith(property, "OpenVPN.", case_sensitive) || |
| 407 base::StartsWith(property, "L2TPIPsec.", case_sensitive)) { | 409 base::StartsWith(property, "L2TPIPsec.", case_sensitive)) { |
| 408 // These properties are only nested within the Provider dictionary if read | 410 // These properties are only nested within the Provider dictionary if read |
| 409 // from Shill. Properties that start with "Provider" need to have that | 411 // from Shill. Properties that start with "Provider" need to have that |
| 410 // stripped off, other properties are nested in the "Provider" dictionary | 412 // stripped off, other properties are nested in the "Provider" dictionary |
| 411 // as-is. | 413 // as-is. |
| 412 std::string key = property; | 414 std::string key = property; |
| 413 if (base::StartsWith(property, "Provider.", case_sensitive)) | 415 if (base::StartsWith(property, "Provider.", case_sensitive)) |
| 414 key = property.substr(strlen("Provider.")); | 416 key = property.substr(strlen("Provider.")); |
| 415 base::DictionaryValue* provider = new base::DictionaryValue; | 417 base::DictionaryValue* provider = nullptr; |
| 416 provider->SetWithoutPathExpansion(key, value.DeepCopy()); | 418 provider->SetWithoutPathExpansion(key, value.CreateDeepCopy()); |
| 417 new_properties.SetWithoutPathExpansion(shill::kProviderProperty, provider); | 419 new_properties.SetWithoutPathExpansion( |
| 420 shill::kProviderProperty, base::MakeUnique<base::DictionaryValue>()); |
| 421 new_properties.GetDictionaryWithoutPathExpansion(shill::kProviderProperty, |
| 422 &provider); |
| 418 changed_property = shill::kProviderProperty; | 423 changed_property = shill::kProviderProperty; |
| 419 } else if (value.GetType() == base::Value::Type::DICTIONARY) { | 424 } else if (value.GetType() == base::Value::Type::DICTIONARY) { |
| 420 const base::DictionaryValue* new_dict = NULL; | 425 const base::DictionaryValue* new_dict = NULL; |
| 421 value.GetAsDictionary(&new_dict); | 426 value.GetAsDictionary(&new_dict); |
| 422 CHECK(new_dict); | 427 CHECK(new_dict); |
| 423 std::unique_ptr<base::Value> cur_value; | 428 std::unique_ptr<base::Value> cur_value; |
| 424 base::DictionaryValue* cur_dict; | 429 base::DictionaryValue* cur_dict; |
| 425 if (dict->RemoveWithoutPathExpansion(property, &cur_value) && | 430 if (dict->RemoveWithoutPathExpansion(property, &cur_value) && |
| 426 cur_value->GetAsDictionary(&cur_dict)) { | 431 cur_value->GetAsDictionary(&cur_dict)) { |
| 427 cur_dict->Clear(); | 432 cur_dict->Clear(); |
| 428 cur_dict->MergeDictionary(new_dict); | 433 cur_dict->MergeDictionary(new_dict); |
| 429 new_properties.SetWithoutPathExpansion(property, cur_value.release()); | 434 new_properties.SetWithoutPathExpansion(property, std::move(cur_value)); |
| 430 } else { | 435 } else { |
| 431 new_properties.SetWithoutPathExpansion(property, value.DeepCopy()); | 436 new_properties.SetWithoutPathExpansion(property, value.CreateDeepCopy()); |
| 432 } | 437 } |
| 433 changed_property = property; | 438 changed_property = property; |
| 434 } else { | 439 } else { |
| 435 new_properties.SetWithoutPathExpansion(property, value.DeepCopy()); | 440 new_properties.SetWithoutPathExpansion(property, value.CreateDeepCopy()); |
| 436 changed_property = property; | 441 changed_property = property; |
| 437 } | 442 } |
| 438 | 443 |
| 439 dict->MergeDictionary(&new_properties); | 444 dict->MergeDictionary(&new_properties); |
| 440 | 445 |
| 441 // Add or update the profile entry. | 446 // Add or update the profile entry. |
| 442 ShillProfileClient::TestInterface* profile_test = | 447 ShillProfileClient::TestInterface* profile_test = |
| 443 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface(); | 448 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface(); |
| 444 if (property == shill::kProfileProperty) { | 449 if (property == shill::kProfileProperty) { |
| 445 std::string profile_path; | 450 std::string profile_path; |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 560 if (path == service_path) | 565 if (path == service_path) |
| 561 continue; | 566 continue; |
| 562 base::DictionaryValue* properties; | 567 base::DictionaryValue* properties; |
| 563 if (!stub_services_.GetDictionaryWithoutPathExpansion(path, &properties)) | 568 if (!stub_services_.GetDictionaryWithoutPathExpansion(path, &properties)) |
| 564 NOTREACHED(); | 569 NOTREACHED(); |
| 565 | 570 |
| 566 std::string type; | 571 std::string type; |
| 567 properties->GetString(shill::kTypeProperty, &type); | 572 properties->GetString(shill::kTypeProperty, &type); |
| 568 if (type != service_type) | 573 if (type != service_type) |
| 569 continue; | 574 continue; |
| 570 properties->SetWithoutPathExpansion(shill::kStateProperty, | 575 properties->SetStringWithoutPathExpansion(shill::kStateProperty, |
| 571 new base::Value(shill::kStateIdle)); | 576 shill::kStateIdle); |
| 572 } | 577 } |
| 573 } | 578 } |
| 574 | 579 |
| 575 void FakeShillServiceClient::SetCellularActivated( | 580 void FakeShillServiceClient::SetCellularActivated( |
| 576 const dbus::ObjectPath& service_path, | 581 const dbus::ObjectPath& service_path, |
| 577 const ErrorCallback& error_callback) { | 582 const ErrorCallback& error_callback) { |
| 578 SetProperty(service_path, shill::kActivationStateProperty, | 583 SetProperty(service_path, shill::kActivationStateProperty, |
| 579 base::Value(shill::kActivationStateActivated), | 584 base::Value(shill::kActivationStateActivated), |
| 580 base::Bind(&base::DoNothing), error_callback); | 585 base::Bind(&base::DoNothing), error_callback); |
| 581 SetProperty(service_path, shill::kConnectableProperty, base::Value(true), | 586 SetProperty(service_path, shill::kConnectableProperty, base::Value(true), |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 616 base::Value(shill::kErrorBadPassphrase))); | 621 base::Value(shill::kErrorBadPassphrase))); |
| 617 } else { | 622 } else { |
| 618 // Set Online. | 623 // Set Online. |
| 619 VLOG(1) << "Setting state to Online " << service_path; | 624 VLOG(1) << "Setting state to Online " << service_path; |
| 620 SetServiceProperty(service_path, shill::kStateProperty, | 625 SetServiceProperty(service_path, shill::kStateProperty, |
| 621 base::Value(shill::kStateOnline)); | 626 base::Value(shill::kStateOnline)); |
| 622 } | 627 } |
| 623 } | 628 } |
| 624 | 629 |
| 625 } // namespace chromeos | 630 } // namespace chromeos |
| OLD | NEW |