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_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 Loading... |
98 state == shill::kStateReady; | 98 state == shill::kStateReady; |
99 } | 99 } |
100 | 100 |
101 void UpdatePortaledWifiState(const std::string& service_path) { | 101 void UpdatePortaledWifiState(const std::string& service_path) { |
102 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface() | 102 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface() |
103 ->SetServiceProperty(service_path, | 103 ->SetServiceProperty(service_path, |
104 shill::kStateProperty, | 104 shill::kStateProperty, |
105 base::StringValue(shill::kStatePortal)); | 105 base::StringValue(shill::kStatePortal)); |
106 } | 106 } |
107 | 107 |
| 108 bool IsCellularTechnology(const std::string& type) { |
| 109 return (type == shill::kNetworkTechnology1Xrtt || |
| 110 type == shill::kNetworkTechnologyEvdo || |
| 111 type == shill::kNetworkTechnologyGsm || |
| 112 type == shill::kNetworkTechnologyGprs || |
| 113 type == shill::kNetworkTechnologyEdge || |
| 114 type == shill::kNetworkTechnologyUmts || |
| 115 type == shill::kNetworkTechnologyHspa || |
| 116 type == shill::kNetworkTechnologyHspaPlus || |
| 117 type == shill::kNetworkTechnologyLte || |
| 118 type == shill::kNetworkTechnologyLteAdvanced); |
| 119 } |
| 120 |
108 const char* kTechnologyUnavailable = "unavailable"; | 121 const char* kTechnologyUnavailable = "unavailable"; |
109 const char* kNetworkActivated = "activated"; | 122 const char* kNetworkActivated = "activated"; |
110 const char* kNetworkDisabled = "disabled"; | 123 const char* kNetworkDisabled = "disabled"; |
111 const char* kCellularServicePath = "/service/cellular1"; | 124 const char* kCellularServicePath = "/service/cellular1"; |
112 const char* kRoamingRequired = "required"; | 125 const char* kRoamingRequired = "required"; |
113 | 126 |
114 } // namespace | 127 } // namespace |
115 | 128 |
116 // static | 129 // static |
117 const char FakeShillManagerClient::kFakeEthernetNetworkGuid[] = "eth1_guid"; | 130 const char FakeShillManagerClient::kFakeEthernetNetworkGuid[] = "eth1_guid"; |
118 | 131 |
119 FakeShillManagerClient::FakeShillManagerClient() | 132 FakeShillManagerClient::FakeShillManagerClient() |
120 : interactive_delay_(0), | 133 : interactive_delay_(0), |
| 134 cellular_technology_(shill::kNetworkTechnologyGsm), |
121 weak_ptr_factory_(this) { | 135 weak_ptr_factory_(this) { |
122 ParseCommandLineSwitch(); | 136 ParseCommandLineSwitch(); |
123 } | 137 } |
124 | 138 |
125 FakeShillManagerClient::~FakeShillManagerClient() {} | 139 FakeShillManagerClient::~FakeShillManagerClient() {} |
126 | 140 |
127 // ShillManagerClient overrides. | 141 // ShillManagerClient overrides. |
128 | 142 |
129 void FakeShillManagerClient::Init(dbus::Bus* bus) {} | 143 void FakeShillManagerClient::Init(dbus::Bus* bus) {} |
130 | 144 |
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
775 shill::kProviderRequiresRoamingProperty, | 789 shill::kProviderRequiresRoamingProperty, |
776 base::FundamentalValue(true)); | 790 base::FundamentalValue(true)); |
777 } | 791 } |
778 | 792 |
779 services->AddService(kCellularServicePath, | 793 services->AddService(kCellularServicePath, |
780 "cellular1_guid", | 794 "cellular1_guid", |
781 "cellular1" /* name */, | 795 "cellular1" /* name */, |
782 shill::kTypeCellular, | 796 shill::kTypeCellular, |
783 state, | 797 state, |
784 add_to_visible); | 798 add_to_visible); |
785 base::StringValue technology_value(shill::kNetworkTechnologyGsm); | 799 base::StringValue technology_value(cellular_technology_); |
786 devices->SetDeviceProperty("/device/cellular1", | 800 devices->SetDeviceProperty("/device/cellular1", |
787 shill::kTechnologyFamilyProperty, | 801 shill::kTechnologyFamilyProperty, |
788 technology_value); | 802 technology_value); |
789 services->SetServiceProperty(kCellularServicePath, | 803 services->SetServiceProperty(kCellularServicePath, |
790 shill::kNetworkTechnologyProperty, | 804 shill::kNetworkTechnologyProperty, |
791 technology_value); | 805 technology_value); |
792 | 806 |
793 if (activated) { | 807 if (activated) { |
794 services->SetServiceProperty( | 808 services->SetServiceProperty( |
795 kCellularServicePath, | 809 kCellularServicePath, |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1065 // "home", "roaming", or "required" | 1079 // "home", "roaming", or "required" |
1066 roaming_state_ = arg1; | 1080 roaming_state_ = arg1; |
1067 return true; | 1081 return true; |
1068 } | 1082 } |
1069 return SetInitialNetworkState(arg0, arg1); | 1083 return SetInitialNetworkState(arg0, arg1); |
1070 } | 1084 } |
1071 | 1085 |
1072 bool FakeShillManagerClient::SetInitialNetworkState(std::string type_arg, | 1086 bool FakeShillManagerClient::SetInitialNetworkState(std::string type_arg, |
1073 std::string state_arg) { | 1087 std::string state_arg) { |
1074 std::string state; | 1088 std::string state; |
1075 state_arg = base::StringToLowerASCII(state_arg); | |
1076 if (state_arg.empty() || state_arg == "1" || state_arg == "on" || | 1089 if (state_arg.empty() || state_arg == "1" || state_arg == "on" || |
1077 state_arg == "enabled" || state_arg == "connected" || | 1090 state_arg == "enabled" || state_arg == "connected" || |
1078 state_arg == "online") { | 1091 state_arg == "online") { |
1079 // Enabled and connected (default value) | 1092 // Enabled and connected (default value) |
1080 state = shill::kStateOnline; | 1093 state = shill::kStateOnline; |
1081 } else if (state_arg == "0" || state_arg == "off" || | 1094 } else if (state_arg == "0" || state_arg == "off" || |
1082 state_arg == "inactive" || state_arg == shill::kStateIdle) { | 1095 state_arg == "inactive" || state_arg == shill::kStateIdle) { |
1083 // Technology enabled, services are created but are not connected. | 1096 // Technology enabled, services are created but are not connected. |
1084 state = shill::kStateIdle; | 1097 state = shill::kStateIdle; |
1085 } else if (state_arg == "disabled" || state_arg == "disconnect") { | 1098 } else if (state_arg == "disabled" || state_arg == "disconnect") { |
1086 // Technology disabled but available, services created but not connected. | 1099 // Technology disabled but available, services created but not connected. |
1087 state = kNetworkDisabled; | 1100 state = kNetworkDisabled; |
1088 } else if (state_arg == "none" || state_arg == "offline") { | 1101 } else if (state_arg == "none" || state_arg == "offline") { |
1089 // Technology not available, do not create services. | 1102 // Technology not available, do not create services. |
1090 state = kTechnologyUnavailable; | 1103 state = kTechnologyUnavailable; |
1091 } else if (state_arg == "portal") { | 1104 } else if (state_arg == "portal") { |
1092 // Technology is enabled, a service is connected and in Portal state. | 1105 // Technology is enabled, a service is connected and in Portal state. |
1093 state = shill::kStatePortal; | 1106 state = shill::kStatePortal; |
1094 } else if (state_arg == "active" || state_arg == "activated") { | 1107 } else if (state_arg == "active" || state_arg == "activated") { |
1095 // Technology is enabled, a service is connected and Activated. | 1108 // Technology is enabled, a service is connected and Activated. |
1096 state = kNetworkActivated; | 1109 state = kNetworkActivated; |
| 1110 } else if (type_arg == shill::kTypeCellular && |
| 1111 IsCellularTechnology(state_arg)) { |
| 1112 state = shill::kStateOnline; |
| 1113 cellular_technology_ = state_arg; |
| 1114 } else if (type_arg == shill::kTypeCellular && state_arg == "LTEAdvanced") { |
| 1115 // Special case, Shill name contains a ' '. |
| 1116 state = shill::kStateOnline; |
| 1117 cellular_technology_ = shill::kNetworkTechnologyLteAdvanced; |
1097 } else { | 1118 } else { |
1098 LOG(ERROR) << "Unrecognized initial state: " << state_arg; | 1119 LOG(ERROR) << "Unrecognized initial state: " << type_arg << "=" |
| 1120 << state_arg; |
1099 return false; | 1121 return false; |
1100 } | 1122 } |
1101 | 1123 |
1102 type_arg = base::StringToLowerASCII(type_arg); | |
1103 // Special cases | 1124 // Special cases |
1104 if (type_arg == "wireless") { | 1125 if (type_arg == "wireless") { |
1105 shill_initial_state_map_[shill::kTypeWifi] = state; | 1126 shill_initial_state_map_[shill::kTypeWifi] = state; |
1106 shill_initial_state_map_[shill::kTypeCellular] = state; | 1127 shill_initial_state_map_[shill::kTypeCellular] = state; |
1107 return true; | 1128 return true; |
1108 } | 1129 } |
1109 // Convenience synonyms. | 1130 // Convenience synonyms. |
1110 if (type_arg == "eth") | 1131 if (type_arg == "eth") |
1111 type_arg = shill::kTypeEthernet; | 1132 type_arg = shill::kTypeEthernet; |
1112 | 1133 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1146 *enabled = true; | 1167 *enabled = true; |
1147 if ((state == shill::kStatePortal && type != shill::kTypeWifi) || | 1168 if ((state == shill::kStatePortal && type != shill::kTypeWifi) || |
1148 (state == kNetworkActivated && type != shill::kTypeCellular)) { | 1169 (state == kNetworkActivated && type != shill::kTypeCellular)) { |
1149 LOG(WARNING) << "Invalid state: " << state << " for " << type; | 1170 LOG(WARNING) << "Invalid state: " << state << " for " << type; |
1150 return shill::kStateIdle; | 1171 return shill::kStateIdle; |
1151 } | 1172 } |
1152 return state; | 1173 return state; |
1153 } | 1174 } |
1154 | 1175 |
1155 } // namespace chromeos | 1176 } // namespace chromeos |
OLD | NEW |