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

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

Issue 399303003: Eliminate use of sim unlock UI notifications (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 void UpdatePortaledWifiState(const std::string& service_path) { 98 void UpdatePortaledWifiState(const std::string& service_path) {
99 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface() 99 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface()
100 ->SetServiceProperty(service_path, 100 ->SetServiceProperty(service_path,
101 shill::kStateProperty, 101 shill::kStateProperty,
102 base::StringValue(shill::kStatePortal)); 102 base::StringValue(shill::kStatePortal));
103 } 103 }
104 104
105 const char* kTechnologyUnavailable = "unavailable"; 105 const char* kTechnologyUnavailable = "unavailable";
106 const char* kNetworkActivated = "activated"; 106 const char* kNetworkActivated = "activated";
107 const char* kNetworkDisabled = "disabled"; 107 const char* kNetworkDisabled = "disabled";
108 const char* kCellularServicePath = "/service/cellular1";
108 109
109 } // namespace 110 } // namespace
110 111
111 // static 112 // static
112 const char FakeShillManagerClient::kFakeEthernetNetworkGuid[] = "eth1_guid"; 113 const char FakeShillManagerClient::kFakeEthernetNetworkGuid[] = "eth1_guid";
113 114
114 FakeShillManagerClient::FakeShillManagerClient() 115 FakeShillManagerClient::FakeShillManagerClient()
115 : interactive_delay_(0), 116 : interactive_delay_(0),
116 weak_ptr_factory_(this) { 117 weak_ptr_factory_(this) {
117 ParseCommandLineSwitch(); 118 ParseCommandLineSwitch();
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 DCHECK(devices); 576 DCHECK(devices);
576 ShillIPConfigClient::TestInterface* ip_configs = 577 ShillIPConfigClient::TestInterface* ip_configs =
577 dbus_manager->GetShillIPConfigClient()->GetTestInterface(); 578 dbus_manager->GetShillIPConfigClient()->GetTestInterface();
578 DCHECK(ip_configs); 579 DCHECK(ip_configs);
579 580
580 const std::string shared_profile = ShillProfileClient::GetSharedProfilePath(); 581 const std::string shared_profile = ShillProfileClient::GetSharedProfilePath();
581 profiles->AddProfile(shared_profile, std::string()); 582 profiles->AddProfile(shared_profile, std::string());
582 583
583 const bool add_to_visible = true; 584 const bool add_to_visible = true;
584 585
585 bool enabled;
586 std::string state;
587
588 // IPConfigs 586 // IPConfigs
589 base::DictionaryValue ipconfig_v4_dictionary; 587 base::DictionaryValue ipconfig_v4_dictionary;
590 ipconfig_v4_dictionary.SetStringWithoutPathExpansion( 588 ipconfig_v4_dictionary.SetStringWithoutPathExpansion(
591 shill::kAddressProperty, "0.0.0.0"); 589 shill::kAddressProperty, "0.0.0.0");
592 ipconfig_v4_dictionary.SetStringWithoutPathExpansion( 590 ipconfig_v4_dictionary.SetStringWithoutPathExpansion(
593 shill::kGatewayProperty, "0.0.0.1"); 591 shill::kGatewayProperty, "0.0.0.1");
594 ipconfig_v4_dictionary.SetIntegerWithoutPathExpansion( 592 ipconfig_v4_dictionary.SetIntegerWithoutPathExpansion(
595 shill::kPrefixlenProperty, 0); 593 shill::kPrefixlenProperty, 0);
596 ipconfig_v4_dictionary.SetStringWithoutPathExpansion( 594 ipconfig_v4_dictionary.SetStringWithoutPathExpansion(
597 shill::kMethodProperty, shill::kTypeIPv4); 595 shill::kMethodProperty, shill::kTypeIPv4);
598 ip_configs->AddIPConfig("ipconfig_v4_path", ipconfig_v4_dictionary); 596 ip_configs->AddIPConfig("ipconfig_v4_path", ipconfig_v4_dictionary);
599 base::DictionaryValue ipconfig_v6_dictionary; 597 base::DictionaryValue ipconfig_v6_dictionary;
600 ipconfig_v6_dictionary.SetStringWithoutPathExpansion( 598 ipconfig_v6_dictionary.SetStringWithoutPathExpansion(
601 shill::kAddressProperty, "0:0:0:0:0:0:0:0"); 599 shill::kAddressProperty, "0:0:0:0:0:0:0:0");
602 ipconfig_v6_dictionary.SetStringWithoutPathExpansion( 600 ipconfig_v6_dictionary.SetStringWithoutPathExpansion(
603 shill::kMethodProperty, shill::kTypeIPv6); 601 shill::kMethodProperty, shill::kTypeIPv6);
604 ip_configs->AddIPConfig("ipconfig_v6_path", ipconfig_v6_dictionary); 602 ip_configs->AddIPConfig("ipconfig_v6_path", ipconfig_v6_dictionary);
605 603
604 bool enabled;
605 std::string state;
606
606 // Ethernet 607 // Ethernet
607 state = GetInitialStateForType(shill::kTypeEthernet, &enabled); 608 state = GetInitialStateForType(shill::kTypeEthernet, &enabled);
608 if (state == shill::kStateOnline) { 609 if (state == shill::kStateOnline) {
609 AddTechnology(shill::kTypeEthernet, enabled); 610 AddTechnology(shill::kTypeEthernet, enabled);
610 devices->AddDevice( 611 devices->AddDevice(
611 "/device/eth1", shill::kTypeEthernet, "stub_eth_device1"); 612 "/device/eth1", shill::kTypeEthernet, "stub_eth_device1");
612 devices->SetDeviceProperty("/device/eth1", 613 devices->SetDeviceProperty("/device/eth1",
613 shill::kAddressProperty, 614 shill::kAddressProperty,
614 base::StringValue("0123456789ab")); 615 base::StringValue("0123456789ab"));
615 base::ListValue eth_ip_configs; 616 base::ListValue eth_ip_configs;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 activated = true; 727 activated = true;
727 state = shill::kStateIdle; 728 state = shill::kStateIdle;
728 } 729 }
729 AddTechnology(shill::kTypeCellular, enabled); 730 AddTechnology(shill::kTypeCellular, enabled);
730 devices->AddDevice( 731 devices->AddDevice(
731 "/device/cellular1", shill::kTypeCellular, "stub_cellular_device1"); 732 "/device/cellular1", shill::kTypeCellular, "stub_cellular_device1");
732 devices->SetDeviceProperty("/device/cellular1", 733 devices->SetDeviceProperty("/device/cellular1",
733 shill::kCarrierProperty, 734 shill::kCarrierProperty,
734 base::StringValue(shill::kCarrierSprint)); 735 base::StringValue(shill::kCarrierSprint));
735 736
736 services->AddService("/service/cellular1", 737 services->AddService(kCellularServicePath,
737 "cellular1_guid", 738 "cellular1_guid",
738 "cellular1" /* name */, 739 "cellular1" /* name */,
739 shill::kTypeCellular, 740 shill::kTypeCellular,
740 state, 741 state,
741 add_to_visible); 742 add_to_visible);
742 base::StringValue technology_value(shill::kNetworkTechnologyGsm); 743 base::StringValue technology_value(shill::kNetworkTechnologyGsm);
743 services->SetServiceProperty("/service/cellular1", 744 services->SetServiceProperty(kCellularServicePath,
744 shill::kNetworkTechnologyProperty, 745 shill::kNetworkTechnologyProperty,
745 technology_value); 746 technology_value);
746 747
747 if (activated) { 748 if (activated) {
748 services->SetServiceProperty( 749 services->SetServiceProperty(
749 "/service/cellular1", 750 kCellularServicePath,
750 shill::kActivationStateProperty, 751 shill::kActivationStateProperty,
751 base::StringValue(shill::kActivationStateActivated)); 752 base::StringValue(shill::kActivationStateActivated));
752 services->SetServiceProperty("/service/cellular1", 753 services->SetServiceProperty(kCellularServicePath,
753 shill::kConnectableProperty, 754 shill::kConnectableProperty,
754 base::FundamentalValue(true)); 755 base::FundamentalValue(true));
755 } else { 756 } else {
756 services->SetServiceProperty( 757 services->SetServiceProperty(
757 "/service/cellular1", 758 kCellularServicePath,
758 shill::kActivationStateProperty, 759 shill::kActivationStateProperty,
759 base::StringValue(shill::kActivationStateNotActivated)); 760 base::StringValue(shill::kActivationStateNotActivated));
760 } 761 }
761 762
762 services->SetServiceProperty("/service/cellular1", 763 services->SetServiceProperty(kCellularServicePath,
763 shill::kRoamingStateProperty, 764 shill::kRoamingStateProperty,
764 base::StringValue(shill::kRoamingStateHome)); 765 base::StringValue(shill::kRoamingStateHome));
765 } 766 }
766 767
767 // VPN 768 // VPN
768 state = GetInitialStateForType(shill::kTypeVPN, &enabled); 769 state = GetInitialStateForType(shill::kTypeVPN, &enabled);
769 if (state != kTechnologyUnavailable) { 770 if (state != kTechnologyUnavailable) {
770 // Set the "Provider" dictionary properties. Note: when setting these in 771 // Set the "Provider" dictionary properties. Note: when setting these in
771 // Shill, "Provider.Type", etc keys are used, but when reading the values 772 // Shill, "Provider.Type", etc keys are used, but when reading the values
772 // "Provider" . "Type", etc keys are used. Here we are setting the values 773 // "Provider" . "Type", etc keys are used. Here we are setting the values
(...skipping 16 matching lines...) Expand all
789 services->AddService("/service/vpn2", 790 services->AddService("/service/vpn2",
790 "vpn2_guid", 791 "vpn2_guid",
791 "vpn2" /* name */, 792 "vpn2" /* name */,
792 shill::kTypeVPN, 793 shill::kTypeVPN,
793 shill::kStateIdle, 794 shill::kStateIdle,
794 add_to_visible); 795 add_to_visible);
795 services->SetServiceProperty( 796 services->SetServiceProperty(
796 "/service/vpn2", shill::kProviderProperty, provider_properties); 797 "/service/vpn2", shill::kProviderProperty, provider_properties);
797 } 798 }
798 799
800 // Additional device states
801 for (DevicePropertyMap::iterator iter1 = shill_device_property_map_.begin();
802 iter1 != shill_device_property_map_.end(); ++iter1) {
803 std::string device_type = iter1->first;
804 std::string device_path = devices->GetDevicePathForType(device_type);
805 for (ShillPropertyMap::iterator iter2 = iter1->second.begin();
806 iter2 != iter1->second.end(); ++iter2) {
807 devices->SetDeviceProperty(device_path, iter2->first, *(iter2->second));
808 delete iter2->second;
809 }
810 }
811
799 SortManagerServices(true); 812 SortManagerServices(true);
800 } 813 }
801 814
802 // Private methods 815 // Private methods
803 816
804 void FakeShillManagerClient::PassStubProperties( 817 void FakeShillManagerClient::PassStubProperties(
805 const DictionaryValueCallback& callback) const { 818 const DictionaryValueCallback& callback) const {
806 scoped_ptr<base::DictionaryValue> stub_properties( 819 scoped_ptr<base::DictionaryValue> stub_properties(
807 stub_properties_.DeepCopy()); 820 stub_properties_.DeepCopy());
808 stub_properties->SetWithoutPathExpansion( 821 stub_properties->SetWithoutPathExpansion(
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 SetDeviceProperty(device_path, 938 SetDeviceProperty(device_path,
926 shill::kScanningProperty, 939 shill::kScanningProperty,
927 base::FundamentalValue(false)); 940 base::FundamentalValue(false));
928 } 941 }
929 DVLOG(2) << "ScanCompleted"; 942 DVLOG(2) << "ScanCompleted";
930 CallNotifyObserversPropertyChanged(shill::kServiceCompleteListProperty); 943 CallNotifyObserversPropertyChanged(shill::kServiceCompleteListProperty);
931 base::MessageLoop::current()->PostTask(FROM_HERE, callback); 944 base::MessageLoop::current()->PostTask(FROM_HERE, callback);
932 } 945 }
933 946
934 void FakeShillManagerClient::ParseCommandLineSwitch() { 947 void FakeShillManagerClient::ParseCommandLineSwitch() {
935 CommandLine* command_line = CommandLine::ForCurrentProcess();
936 if (command_line->HasSwitch(switches::kShillStub)) {
937 std::string option_str =
938 command_line->GetSwitchValueASCII(switches::kShillStub);
939 base::StringPairs string_pairs;
940 base::SplitStringIntoKeyValuePairs(option_str, '=', ',', &string_pairs);
941 for (base::StringPairs::iterator iter = string_pairs.begin();
942 iter != string_pairs.end(); ++iter) {
943 ParseOption((*iter).first, (*iter).second);
944 }
945 return;
946 }
947 // Default setup 948 // Default setup
948 SetInitialNetworkState(shill::kTypeEthernet, shill::kStateOnline); 949 SetInitialNetworkState(shill::kTypeEthernet, shill::kStateOnline);
949 SetInitialNetworkState(shill::kTypeWifi, shill::kStateOnline); 950 SetInitialNetworkState(shill::kTypeWifi, shill::kStateOnline);
950 SetInitialNetworkState(shill::kTypeCellular, shill::kStateIdle); 951 SetInitialNetworkState(shill::kTypeCellular, shill::kStateIdle);
951 SetInitialNetworkState(shill::kTypeVPN, shill::kStateIdle); 952 SetInitialNetworkState(shill::kTypeVPN, shill::kStateIdle);
953
954 // Parse additional options
955 CommandLine* command_line = CommandLine::ForCurrentProcess();
956 if (!command_line->HasSwitch(switches::kShillStub))
957 return;
958
959 std::string option_str =
960 command_line->GetSwitchValueASCII(switches::kShillStub);
961 VLOG(1) << "Parsing command line:" << option_str;
962 base::StringPairs string_pairs;
963 base::SplitStringIntoKeyValuePairs(option_str, '=', ',', &string_pairs);
964 for (base::StringPairs::iterator iter = string_pairs.begin();
965 iter != string_pairs.end(); ++iter) {
966 ParseOption((*iter).first, (*iter).second);
967 }
952 } 968 }
953 969
954 bool FakeShillManagerClient::ParseOption(const std::string& arg0, 970 bool FakeShillManagerClient::ParseOption(const std::string& arg0,
955 const std::string& arg1) { 971 const std::string& arg1) {
956 if (arg0 == "interactive") { 972 VLOG(1) << "Parsing command line option: '" << arg0 << "=" << arg1 << "'";
973 if ((arg0 == "clear" || arg0 == "reset") && arg1 == "1") {
974 shill_initial_state_map_.clear();
975 return true;
976 } else if (arg0 == "interactive") {
957 int seconds = 3; 977 int seconds = 3;
958 if (!arg1.empty()) 978 if (!arg1.empty())
959 base::StringToInt(arg1, &seconds); 979 base::StringToInt(arg1, &seconds);
960 interactive_delay_ = seconds; 980 interactive_delay_ = seconds;
961 return true; 981 return true;
982 } else if (arg0 == "sim_lock") {
983 bool locked = (arg1 == "1") ? true : false;
984 base::DictionaryValue* simlock_dict = new base::DictionaryValue;
985 simlock_dict->Set(shill::kSIMLockEnabledProperty,
986 new base::FundamentalValue(locked));
987 // TODO(stevenjb): Investigate why non-empty value breaks UI.
988 std::string lock_type = ""; // shill::kSIMLockPin
989 simlock_dict->SetString(shill::kSIMLockTypeProperty, lock_type);
990 simlock_dict->SetInteger(shill::kSIMLockRetriesLeftProperty, 5);
991
992 shill_device_property_map_
993 [shill::kTypeCellular][shill::kSIMLockStatusProperty] = simlock_dict;
994 shill_device_property_map_
995 [shill::kTypeCellular][shill::kTechnologyFamilyProperty] =
996 new base::StringValue(shill::kNetworkTechnologyGsm);
997 return true;
962 } 998 }
963 return SetInitialNetworkState(arg0, arg1); 999 return SetInitialNetworkState(arg0, arg1);
964 } 1000 }
965 1001
966 bool FakeShillManagerClient::SetInitialNetworkState(std::string type_arg, 1002 bool FakeShillManagerClient::SetInitialNetworkState(std::string type_arg,
967 std::string state_arg) { 1003 std::string state_arg) {
968 std::string state; 1004 std::string state;
969 state_arg = StringToLowerASCII(state_arg); 1005 state_arg = StringToLowerASCII(state_arg);
970 if (state_arg.empty() || state_arg == "1" || state_arg == "on" || 1006 if (state_arg.empty() || state_arg == "1" || state_arg == "on" ||
971 state_arg == "enabled" || state_arg == "connected" || 1007 state_arg == "enabled" || state_arg == "connected" ||
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 *enabled = true; 1076 *enabled = true;
1041 if ((state == shill::kStatePortal && type != shill::kTypeWifi) || 1077 if ((state == shill::kStatePortal && type != shill::kTypeWifi) ||
1042 (state == kNetworkActivated && type != shill::kTypeCellular)) { 1078 (state == kNetworkActivated && type != shill::kTypeCellular)) {
1043 LOG(WARNING) << "Invalid state: " << state << " for " << type; 1079 LOG(WARNING) << "Invalid state: " << state << " for " << type;
1044 return shill::kStateIdle; 1080 return shill::kStateIdle;
1045 } 1081 }
1046 return state; 1082 return state;
1047 } 1083 }
1048 1084
1049 } // namespace chromeos 1085 } // namespace chromeos
OLDNEW
« chromeos/dbus/fake_shill_manager_client.h ('K') | « chromeos/dbus/fake_shill_manager_client.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698