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

Side by Side Diff: chromeos/dbus/fake_shill_service_client.cc

Issue 284673004: Improve functionality of FakeShillProfileClient (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.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 "base/stl_util.h"
11 #include "base/strings/string_util.h" 11 #include "base/strings/string_util.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "chromeos/dbus/dbus_thread_manager.h" 13 #include "chromeos/dbus/dbus_thread_manager.h"
14 #include "chromeos/dbus/shill_device_client.h" 14 #include "chromeos/dbus/shill_device_client.h"
15 #include "chromeos/dbus/shill_manager_client.h" 15 #include "chromeos/dbus/shill_manager_client.h"
16 #include "chromeos/dbus/shill_profile_client.h"
16 #include "chromeos/dbus/shill_property_changed_observer.h" 17 #include "chromeos/dbus/shill_property_changed_observer.h"
17 #include "chromeos/network/shill_property_util.h" 18 #include "chromeos/network/shill_property_util.h"
18 #include "dbus/bus.h" 19 #include "dbus/bus.h"
19 #include "dbus/message.h" 20 #include "dbus/message.h"
20 #include "dbus/object_path.h" 21 #include "dbus/object_path.h"
21 #include "third_party/cros_system_api/dbus/service_constants.h" 22 #include "third_party/cros_system_api/dbus/service_constants.h"
22 23
23 namespace chromeos { 24 namespace chromeos {
24 25
25 namespace { 26 namespace {
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 } 303 }
303 304
304 // ShillServiceClient::TestInterface overrides. 305 // ShillServiceClient::TestInterface overrides.
305 306
306 void FakeShillServiceClient::AddService(const std::string& service_path, 307 void FakeShillServiceClient::AddService(const std::string& service_path,
307 const std::string& name, 308 const std::string& name,
308 const std::string& type, 309 const std::string& type,
309 const std::string& state, 310 const std::string& state,
310 bool add_to_visible_list, 311 bool add_to_visible_list,
311 bool add_to_watch_list) { 312 bool add_to_watch_list) {
312 AddServiceWithIPConfig(service_path, name, type, state, "", 313 AddServiceWithIPConfig(service_path, "" /* guid */, name,
314 type, state, "" /* ipconfig_path */,
313 add_to_visible_list, add_to_watch_list); 315 add_to_visible_list, add_to_watch_list);
314 } 316 }
315 317
316 void FakeShillServiceClient::AddServiceWithIPConfig( 318 void FakeShillServiceClient::AddServiceWithIPConfig(
317 const std::string& service_path, 319 const std::string& service_path,
320 const std::string& guid,
318 const std::string& name, 321 const std::string& name,
319 const std::string& type, 322 const std::string& type,
320 const std::string& state, 323 const std::string& state,
321 const std::string& ipconfig_path, 324 const std::string& ipconfig_path,
322 bool add_to_visible_list, 325 bool add_to_visible_list,
323 bool add_to_watch_list) { 326 bool add_to_watch_list) {
324 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()-> 327 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()->
325 AddManagerService(service_path, add_to_visible_list, add_to_watch_list); 328 AddManagerService(service_path, add_to_visible_list, add_to_watch_list);
326 std::string device_path = 329 std::string device_path =
327 DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface()-> 330 DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface()->
328 GetDevicePathForType(type); 331 GetDevicePathForType(type);
329 332
330 base::DictionaryValue* properties = 333 base::DictionaryValue* properties =
331 GetModifiableServiceProperties(service_path, true); 334 GetModifiableServiceProperties(service_path, true);
332 connect_behavior_.erase(service_path); 335 connect_behavior_.erase(service_path);
336
337 std::string profile_path;
338 base::DictionaryValue profile_properties;
339 if (DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface()->
340 GetService(service_path, &profile_path, &profile_properties)) {
341 properties->SetWithoutPathExpansion(
342 shill::kProfileProperty,
343 new base::StringValue(profile_path));
344 }
345
346 if (!guid.empty()) {
347 // If |guid| is not provided, leave it blank. Shill does not enforce a
pneubeck (no reviews) 2014/05/14 08:12:17 move the comment in front of the if, since it appl
stevenjb 2014/05/14 17:08:10 Done.
348 // valid guid, we do that at the NetworkStateHandler layer.
349 properties->SetWithoutPathExpansion(
350 shill::kGuidProperty,
351 new base::StringValue(guid));
352 } else {
353 std::string profile_guid;
354 if (profile_properties.GetStringWithoutPathExpansion(
pneubeck (no reviews) 2014/05/14 08:12:17 optional nit: IMO clearer, if profile_guid would b
stevenjb 2014/05/14 17:08:10 We can't use 'guid' here since it's const, but I'l
355 shill::kGuidProperty, &profile_guid)) {
356 properties->SetWithoutPathExpansion(
357 shill::kGuidProperty,
358 new base::StringValue(profile_guid));
359 }
360 }
333 shill_property_util::SetSSID(name, properties); 361 shill_property_util::SetSSID(name, properties);
334 properties->SetWithoutPathExpansion( 362 properties->SetWithoutPathExpansion(
335 shill::kNameProperty, 363 shill::kNameProperty,
336 base::Value::CreateStringValue(name)); 364 new base::StringValue(name));
337 properties->SetWithoutPathExpansion( 365 properties->SetWithoutPathExpansion(
338 shill::kDeviceProperty, 366 shill::kDeviceProperty,
339 base::Value::CreateStringValue(device_path)); 367 new base::StringValue(device_path));
340 properties->SetWithoutPathExpansion( 368 properties->SetWithoutPathExpansion(
341 shill::kTypeProperty, 369 shill::kTypeProperty,
342 base::Value::CreateStringValue(type)); 370 new base::StringValue(type));
343 properties->SetWithoutPathExpansion( 371 properties->SetWithoutPathExpansion(
344 shill::kStateProperty, 372 shill::kStateProperty,
345 base::Value::CreateStringValue(state)); 373 new base::StringValue(state));
346 if (!ipconfig_path.empty()) { 374 if (!ipconfig_path.empty()) {
347 properties->SetWithoutPathExpansion( 375 properties->SetWithoutPathExpansion(
348 shill::kIPConfigProperty, 376 shill::kIPConfigProperty,
349 base::Value::CreateStringValue(ipconfig_path)); 377 new base::StringValue(ipconfig_path));
378 }
379 if (type == shill::kTypeWifi) {
380 properties->SetWithoutPathExpansion(
381 shill::kSecurityProperty,
382 new base::StringValue(shill::kSecurityNone));
350 } 383 }
351 384
352 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()-> 385 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()->
353 SortManagerServices(); 386 SortManagerServices();
387
388 if (!profile_path.empty()) {
389 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface()->
390 UpdateService(profile_path, service_path);
391 }
354 } 392 }
355 393
356 void FakeShillServiceClient::RemoveService(const std::string& service_path) { 394 void FakeShillServiceClient::RemoveService(const std::string& service_path) {
357 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()-> 395 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()->
358 RemoveManagerService(service_path); 396 RemoveManagerService(service_path);
359 397
360 stub_services_.RemoveWithoutPathExpansion(service_path, NULL); 398 stub_services_.RemoveWithoutPathExpansion(service_path, NULL);
361 connect_behavior_.erase(service_path); 399 connect_behavior_.erase(service_path);
362 } 400 }
363 401
(...skipping 19 matching lines...) Expand all
383 provider->SetWithoutPathExpansion(property, value.DeepCopy()); 421 provider->SetWithoutPathExpansion(property, value.DeepCopy());
384 new_properties.SetWithoutPathExpansion(shill::kProviderProperty, provider); 422 new_properties.SetWithoutPathExpansion(shill::kProviderProperty, provider);
385 changed_property = shill::kProviderProperty; 423 changed_property = shill::kProviderProperty;
386 } else { 424 } else {
387 new_properties.SetWithoutPathExpansion(property, value.DeepCopy()); 425 new_properties.SetWithoutPathExpansion(property, value.DeepCopy());
388 changed_property = property; 426 changed_property = property;
389 } 427 }
390 428
391 dict->MergeDictionary(&new_properties); 429 dict->MergeDictionary(&new_properties);
392 430
431 // Add or update the profile entry.
432 if (property == shill::kProfileProperty) {
433 std::string profile_path;
434 if (value.GetAsString(&profile_path)) {
435 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface()->
436 AddService(profile_path, service_path);
437 } else {
438 LOG(ERROR) << "Profile value is not a String!";
439 }
440 } else {
441 std::string profile_path;
442 if (dict->GetStringWithoutPathExpansion(
443 shill::kProfileProperty, &profile_path) && !profile_path.empty()) {
444 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface()->
445 UpdateService(profile_path, service_path);
446 }
447 }
448
393 // Notify the Manager if the state changed (affects DefaultService). 449 // Notify the Manager if the state changed (affects DefaultService).
394 if (property == shill::kStateProperty) { 450 if (property == shill::kStateProperty) {
395 std::string state; 451 std::string state;
396 value.GetAsString(&state); 452 value.GetAsString(&state);
397 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()-> 453 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface()->
398 ServiceStateChanged(service_path, state); 454 ServiceStateChanged(service_path, state);
399 } 455 }
400 456
401 // If the State changes, the sort order of Services may change and the 457 // If the State changes, the sort order of Services may change and the
402 // DefaultService property may change. 458 // DefaultService property may change.
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 base::DictionaryValue* properties; 552 base::DictionaryValue* properties;
497 if (!stub_services_.GetDictionaryWithoutPathExpansion(path, &properties)) 553 if (!stub_services_.GetDictionaryWithoutPathExpansion(path, &properties))
498 NOTREACHED(); 554 NOTREACHED();
499 555
500 std::string type; 556 std::string type;
501 properties->GetString(shill::kTypeProperty, &type); 557 properties->GetString(shill::kTypeProperty, &type);
502 if (type != service_type) 558 if (type != service_type)
503 continue; 559 continue;
504 properties->SetWithoutPathExpansion( 560 properties->SetWithoutPathExpansion(
505 shill::kStateProperty, 561 shill::kStateProperty,
506 base::Value::CreateStringValue(shill::kStateIdle)); 562 new base::StringValue(shill::kStateIdle));
507 } 563 }
508 } 564 }
509 565
510 void FakeShillServiceClient::SetCellularActivated( 566 void FakeShillServiceClient::SetCellularActivated(
511 const dbus::ObjectPath& service_path, 567 const dbus::ObjectPath& service_path,
512 const ErrorCallback& error_callback) { 568 const ErrorCallback& error_callback) {
513 SetProperty(service_path, 569 SetProperty(service_path,
514 shill::kActivationStateProperty, 570 shill::kActivationStateProperty,
515 base::StringValue(shill::kActivationStateActivated), 571 base::StringValue(shill::kActivationStateActivated),
516 base::Bind(&base::DoNothing), 572 base::Bind(&base::DoNothing),
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 base::StringValue(shill::kErrorBadPassphrase))); 613 base::StringValue(shill::kErrorBadPassphrase)));
558 } else { 614 } else {
559 // Set Online. 615 // Set Online.
560 SetServiceProperty(service_path, 616 SetServiceProperty(service_path,
561 shill::kStateProperty, 617 shill::kStateProperty,
562 base::StringValue(shill::kStateOnline)); 618 base::StringValue(shill::kStateOnline));
563 } 619 }
564 } 620 }
565 621
566 } // namespace chromeos 622 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698