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

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

Issue 280023003: Implement networkingPrivate.getNetworks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Feedback 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_manager_client.h" 5 #include "chromeos/dbus/fake_shill_manager_client.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 if (add_to_visible_list && 446 if (add_to_visible_list &&
447 GetListProperty(shill::kServicesProperty)->AppendIfNotPresent( 447 GetListProperty(shill::kServicesProperty)->AppendIfNotPresent(
448 base::Value::CreateStringValue(service_path))) { 448 base::Value::CreateStringValue(service_path))) {
449 CallNotifyObserversPropertyChanged(shill::kServicesProperty); 449 CallNotifyObserversPropertyChanged(shill::kServicesProperty);
450 } 450 }
451 if (add_to_watch_list) 451 if (add_to_watch_list)
452 AddServiceToWatchList(service_path); 452 AddServiceToWatchList(service_path);
453 } 453 }
454 454
455 void FakeShillManagerClient::RemoveManagerService( 455 void FakeShillManagerClient::RemoveManagerService(
456 const std::string& service_path) { 456 const std::string& service_path,
457 bool remove_from_complete_list) {
457 base::StringValue service_path_value(service_path); 458 base::StringValue service_path_value(service_path);
459 if (remove_from_complete_list &&
460 GetListProperty(shill::kServiceCompleteListProperty)->Remove(
461 service_path_value, NULL)) {
462 CallNotifyObserversPropertyChanged(shill::kServiceCompleteListProperty);
pneubeck (no reviews) 2014/05/16 13:18:55 I think the reason for this notification missing w
stevenjb 2014/05/16 17:35:23 Ah, you are correct, I'll remove these. Done.
463 }
458 if (GetListProperty(shill::kServicesProperty)->Remove( 464 if (GetListProperty(shill::kServicesProperty)->Remove(
459 service_path_value, NULL)) { 465 service_path_value, NULL)) {
460 CallNotifyObserversPropertyChanged(shill::kServicesProperty); 466 CallNotifyObserversPropertyChanged(shill::kServicesProperty);
461 } 467 }
462 GetListProperty(shill::kServiceCompleteListProperty)->Remove(
463 service_path_value, NULL);
464 if (GetListProperty(shill::kServiceWatchListProperty)->Remove( 468 if (GetListProperty(shill::kServiceWatchListProperty)->Remove(
465 service_path_value, NULL)) { 469 service_path_value, NULL)) {
466 CallNotifyObserversPropertyChanged( 470 CallNotifyObserversPropertyChanged(shill::kServiceWatchListProperty);
467 shill::kServiceWatchListProperty);
468 } 471 }
469 } 472 }
470 473
471 void FakeShillManagerClient::ClearManagerServices() { 474 void FakeShillManagerClient::ClearManagerServices() {
475 GetListProperty(shill::kServiceCompleteListProperty)->Clear();
472 GetListProperty(shill::kServicesProperty)->Clear(); 476 GetListProperty(shill::kServicesProperty)->Clear();
473 GetListProperty(shill::kServiceCompleteListProperty)->Clear();
474 GetListProperty(shill::kServiceWatchListProperty)->Clear(); 477 GetListProperty(shill::kServiceWatchListProperty)->Clear();
478 CallNotifyObserversPropertyChanged(shill::kServiceCompleteListProperty);
pneubeck (no reviews) 2014/05/16 13:18:55 ditto
stevenjb 2014/05/16 17:35:23 Done.
475 CallNotifyObserversPropertyChanged(shill::kServicesProperty); 479 CallNotifyObserversPropertyChanged(shill::kServicesProperty);
476 CallNotifyObserversPropertyChanged(shill::kServiceWatchListProperty); 480 CallNotifyObserversPropertyChanged(shill::kServiceWatchListProperty);
477 } 481 }
478 482
479 void FakeShillManagerClient::ServiceStateChanged( 483 void FakeShillManagerClient::ServiceStateChanged(
480 const std::string& service_path, 484 const std::string& service_path,
481 const std::string& state) { 485 const std::string& state) {
482 if (service_path == default_service_ && !IsConnectedState(state)) { 486 if (service_path == default_service_ && !IsConnectedState(state)) {
483 // Default service is no longer connected; clear. 487 // Default service is no longer connected; clear.
484 default_service_.clear(); 488 default_service_.clear();
485 base::StringValue default_service_value(default_service_); 489 base::StringValue default_service_value(default_service_);
486 SetManagerProperty(shill::kDefaultServiceProperty, default_service_value); 490 SetManagerProperty(shill::kDefaultServiceProperty, default_service_value);
487 } 491 }
488 } 492 }
489 493
490 void FakeShillManagerClient::SortManagerServices() { 494 void FakeShillManagerClient::SortManagerServices() {
495 SortServiceList(shill::kServicesProperty);
496 SortServiceList(shill::kServiceCompleteListProperty);
497 }
498
499 void FakeShillManagerClient::SortServiceList(const std::string& property) {
491 static const char* ordered_types[] = { 500 static const char* ordered_types[] = {
492 shill::kTypeEthernet, 501 shill::kTypeEthernet,
493 shill::kTypeWifi, 502 shill::kTypeWifi,
494 shill::kTypeCellular, 503 shill::kTypeCellular,
495 shill::kTypeWimax, 504 shill::kTypeWimax,
496 shill::kTypeVPN 505 shill::kTypeVPN
497 }; 506 };
498 base::ListValue* service_list = GetListProperty(shill::kServicesProperty); 507
499 if (!service_list || service_list->empty()) { 508 base::ListValue* service_list = GetListProperty(property);
500 if (!default_service_.empty()) {
501 default_service_.clear();
502 base::StringValue empty_value("");
503 SetManagerProperty(shill::kDefaultServiceProperty, empty_value);
504 }
505 return;
506 }
507 std::vector<std::string> active_services; 509 std::vector<std::string> active_services;
508 std::vector<std::string> inactive_services; 510 std::vector<std::string> inactive_services;
509 for (size_t i = 0; i < arraysize(ordered_types); ++i) { 511 if (service_list && !service_list->empty()) {
510 AppendServicesForType(service_list, ordered_types[i], 512 for (size_t i = 0; i < arraysize(ordered_types); ++i) {
513 AppendServicesForType(service_list, ordered_types[i],
511 &active_services, &inactive_services); 514 &active_services, &inactive_services);
515 }
516 service_list->Clear();
517 for (size_t i = 0; i < active_services.size(); ++i)
518 service_list->AppendString(active_services[i]);
519 for (size_t i = 0; i < inactive_services.size(); ++i)
520 service_list->AppendString(inactive_services[i]);
521
522 CallNotifyObserversPropertyChanged(property);
512 } 523 }
513 service_list->Clear();
514 for (size_t i = 0; i < active_services.size(); ++i)
515 service_list->AppendString(active_services[i]);
516 for (size_t i = 0; i < inactive_services.size(); ++i)
517 service_list->AppendString(inactive_services[i]);
518 524
519 CallNotifyObserversPropertyChanged(shill::kServicesProperty); 525 if (property != shill::kServicesProperty)
526 return;
520 527
521 // Set the first active service as the Default service. 528 // Set the first active service as the Default service.
522 std::string new_default_service; 529 std::string new_default_service;
523 if (!active_services.empty()) { 530 if (!active_services.empty()) {
524 ShillServiceClient::TestInterface* service_client = 531 ShillServiceClient::TestInterface* service_client =
525 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface(); 532 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
526 std::string service_path = active_services[0]; 533 std::string service_path = active_services[0];
527 const base::DictionaryValue* properties = 534 const base::DictionaryValue* properties =
528 service_client->GetServiceProperties(service_path); 535 service_client->GetServiceProperties(service_path);
529 if (!properties) { 536 if (!properties) {
530 LOG(ERROR) << "Properties not found for service: " << service_path; 537 LOG(ERROR) << "Properties not found for service: " << service_path;
531 } else { 538 } else {
532 std::string state; 539 std::string state;
533 properties->GetString(shill::kStateProperty, &state); 540 properties->GetString(shill::kStateProperty, &state);
534 if (IsConnectedState(state)) 541 if (IsConnectedState(state))
535 new_default_service = service_path; 542 new_default_service = service_path;
536 } 543 }
537 } 544 }
538 if (default_service_ != new_default_service) { 545 if (default_service_ != new_default_service) {
539 default_service_ = new_default_service; 546 default_service_ = new_default_service;
540 base::StringValue default_service_value(default_service_); 547 base::StringValue default_service_value(default_service_);
541 SetManagerProperty(shill::kDefaultServiceProperty, default_service_value); 548 SetManagerProperty(shill::kDefaultServiceProperty, default_service_value);
542 } 549 }
550
551 return;
543 } 552 }
544 553
545 554
546 int FakeShillManagerClient::GetInteractiveDelay() const { 555 int FakeShillManagerClient::GetInteractiveDelay() const {
547 return interactive_delay_; 556 return interactive_delay_;
548 } 557 }
549 558
550 void FakeShillManagerClient::SetupDefaultEnvironment() { 559 void FakeShillManagerClient::SetupDefaultEnvironment() {
551 DBusThreadManager* dbus_manager = DBusThreadManager::Get(); 560 DBusThreadManager* dbus_manager = DBusThreadManager::Get();
552 ShillServiceClient::TestInterface* services = 561 ShillServiceClient::TestInterface* services =
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
1031 *enabled = true; 1040 *enabled = true;
1032 if ((state == shill::kStatePortal && type != shill::kTypeWifi) || 1041 if ((state == shill::kStatePortal && type != shill::kTypeWifi) ||
1033 (state == kNetworkActivated && type != shill::kTypeCellular)) { 1042 (state == kNetworkActivated && type != shill::kTypeCellular)) {
1034 LOG(WARNING) << "Invalid state: " << state << " for " << type; 1043 LOG(WARNING) << "Invalid state: " << state << " for " << type;
1035 return shill::kStateIdle; 1044 return shill::kStateIdle;
1036 } 1045 }
1037 return state; 1046 return state;
1038 } 1047 }
1039 1048
1040 } // namespace chromeos 1049 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698