OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/shill_service_client_stub.h" | 5 #include "chromeos/dbus/shill_service_client_stub.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.h" | 9 #include "base/message_loop.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 } | 71 } |
72 | 72 |
73 void ShillServiceClientStub::SetProperty(const dbus::ObjectPath& service_path, | 73 void ShillServiceClientStub::SetProperty(const dbus::ObjectPath& service_path, |
74 const std::string& name, | 74 const std::string& name, |
75 const base::Value& value, | 75 const base::Value& value, |
76 const base::Closure& callback, | 76 const base::Closure& callback, |
77 const ErrorCallback& error_callback) { | 77 const ErrorCallback& error_callback) { |
78 base::DictionaryValue* dict = NULL; | 78 base::DictionaryValue* dict = NULL; |
79 if (!stub_services_.GetDictionaryWithoutPathExpansion( | 79 if (!stub_services_.GetDictionaryWithoutPathExpansion( |
80 service_path.value(), &dict)) { | 80 service_path.value(), &dict)) { |
81 error_callback.Run("StubError", "Service not found"); | 81 error_callback.Run("Error.InvalidService", "Invalid Service"); |
82 return; | 82 return; |
83 } | 83 } |
84 if (name == flimflam::kStateProperty) { | 84 if (name == flimflam::kStateProperty) { |
85 // If we connect to a service, then we move it to the top of the list in | 85 // If we connect to a service, then we move it to the top of the list in |
86 // the manager client. | 86 // the manager client. |
87 std::string state; | 87 std::string state; |
88 if (value.GetAsString(&state) && state == flimflam::kStateOnline) { | 88 if (value.GetAsString(&state) && state == flimflam::kStateOnline) { |
89 ShillManagerClient* manager_client = | 89 ShillManagerClient* manager_client = |
90 DBusThreadManager::Get()->GetShillManagerClient(); | 90 DBusThreadManager::Get()->GetShillManagerClient(); |
91 manager_client->GetTestInterface()->RemoveService(service_path.value()); | 91 manager_client->GetTestInterface()->RemoveService(service_path.value()); |
(...skipping 12 matching lines...) Expand all Loading... |
104 } | 104 } |
105 | 105 |
106 void ShillServiceClientStub::ClearProperty( | 106 void ShillServiceClientStub::ClearProperty( |
107 const dbus::ObjectPath& service_path, | 107 const dbus::ObjectPath& service_path, |
108 const std::string& name, | 108 const std::string& name, |
109 const base::Closure& callback, | 109 const base::Closure& callback, |
110 const ErrorCallback& error_callback) { | 110 const ErrorCallback& error_callback) { |
111 base::DictionaryValue* dict = NULL; | 111 base::DictionaryValue* dict = NULL; |
112 if (!stub_services_.GetDictionaryWithoutPathExpansion( | 112 if (!stub_services_.GetDictionaryWithoutPathExpansion( |
113 service_path.value(), &dict)) { | 113 service_path.value(), &dict)) { |
114 error_callback.Run("StubError", "Service not found"); | 114 error_callback.Run("Error.InvalidService", "Invalid Service"); |
115 return; | 115 return; |
116 } | 116 } |
117 dict->Remove(name, NULL); | 117 dict->Remove(name, NULL); |
118 MessageLoop::current()->PostTask( | 118 MessageLoop::current()->PostTask( |
119 FROM_HERE, | 119 FROM_HERE, |
120 base::Bind(&ShillServiceClientStub::NotifyObserversPropertyChanged, | 120 base::Bind(&ShillServiceClientStub::NotifyObserversPropertyChanged, |
121 weak_ptr_factory_.GetWeakPtr(), service_path, name)); | 121 weak_ptr_factory_.GetWeakPtr(), service_path, name)); |
122 if (callback.is_null()) | 122 if (callback.is_null()) |
123 return; | 123 return; |
124 MessageLoop::current()->PostTask(FROM_HERE, callback); | 124 MessageLoop::current()->PostTask(FROM_HERE, callback); |
125 } | 125 } |
126 | 126 |
127 void ShillServiceClientStub::ClearProperties( | 127 void ShillServiceClientStub::ClearProperties( |
128 const dbus::ObjectPath& service_path, | 128 const dbus::ObjectPath& service_path, |
129 const std::vector<std::string>& names, | 129 const std::vector<std::string>& names, |
130 const ListValueCallback& callback, | 130 const ListValueCallback& callback, |
131 const ErrorCallback& error_callback) { | 131 const ErrorCallback& error_callback) { |
132 base::DictionaryValue* dict = NULL; | 132 base::DictionaryValue* dict = NULL; |
133 if (!stub_services_.GetDictionaryWithoutPathExpansion( | 133 if (!stub_services_.GetDictionaryWithoutPathExpansion( |
134 service_path.value(), &dict)) { | 134 service_path.value(), &dict)) { |
135 error_callback.Run("StubError", "Service not found"); | 135 error_callback.Run("Error.InvalidService", "Invalid Service"); |
136 return; | 136 return; |
137 } | 137 } |
138 scoped_ptr<base::ListValue> results(new base::ListValue); | 138 scoped_ptr<base::ListValue> results(new base::ListValue); |
139 for (std::vector<std::string>::const_iterator iter = names.begin(); | 139 for (std::vector<std::string>::const_iterator iter = names.begin(); |
140 iter != names.end(); ++iter) { | 140 iter != names.end(); ++iter) { |
141 dict->Remove(*iter, NULL); | 141 dict->Remove(*iter, NULL); |
142 results->AppendBoolean(true); | 142 results->AppendBoolean(true); |
143 } | 143 } |
144 for (std::vector<std::string>::const_iterator iter = names.begin(); | 144 for (std::vector<std::string>::const_iterator iter = names.begin(); |
145 iter != names.end(); ++iter) { | 145 iter != names.end(); ++iter) { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 online_value, | 182 online_value, |
183 base::Bind(&base::DoNothing), | 183 base::Bind(&base::DoNothing), |
184 error_callback), | 184 error_callback), |
185 base::TimeDelta::FromSeconds(kConnectDelaySeconds)); | 185 base::TimeDelta::FromSeconds(kConnectDelaySeconds)); |
186 callback.Run(); | 186 callback.Run(); |
187 } | 187 } |
188 | 188 |
189 void ShillServiceClientStub::Disconnect(const dbus::ObjectPath& service_path, | 189 void ShillServiceClientStub::Disconnect(const dbus::ObjectPath& service_path, |
190 const base::Closure& callback, | 190 const base::Closure& callback, |
191 const ErrorCallback& error_callback) { | 191 const ErrorCallback& error_callback) { |
| 192 base::Value* service; |
| 193 if (!stub_services_.Get(service_path.value(), &service)) { |
| 194 error_callback.Run("Error.InvalidService", "Invalid Service"); |
| 195 return; |
| 196 } |
192 // Set Idle after a delay | 197 // Set Idle after a delay |
193 const int kConnectDelaySeconds = 2; | 198 const int kConnectDelaySeconds = 2; |
194 base::StringValue idle_value(flimflam::kStateIdle); | 199 base::StringValue idle_value(flimflam::kStateIdle); |
195 MessageLoop::current()->PostDelayedTask( | 200 MessageLoop::current()->PostDelayedTask( |
196 FROM_HERE, | 201 FROM_HERE, |
197 base::Bind(&ShillServiceClientStub::SetProperty, | 202 base::Bind(&ShillServiceClientStub::SetProperty, |
198 weak_ptr_factory_.GetWeakPtr(), | 203 weak_ptr_factory_.GetWeakPtr(), |
199 service_path, | 204 service_path, |
200 flimflam::kStateProperty, | 205 flimflam::kStateProperty, |
201 idle_value, | 206 idle_value, |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 AddService("stub_ethernet", "eth0", | 310 AddService("stub_ethernet", "eth0", |
306 flimflam::kTypeEthernet, | 311 flimflam::kTypeEthernet, |
307 flimflam::kStateOnline, | 312 flimflam::kStateOnline, |
308 add_to_watchlist); | 313 add_to_watchlist); |
309 } | 314 } |
310 | 315 |
311 AddService("stub_wifi1", "wifi1", | 316 AddService("stub_wifi1", "wifi1", |
312 flimflam::kTypeWifi, | 317 flimflam::kTypeWifi, |
313 flimflam::kStateOnline, | 318 flimflam::kStateOnline, |
314 add_to_watchlist); | 319 add_to_watchlist); |
| 320 SetServiceProperty("stub_wifi1", |
| 321 flimflam::kSecurityProperty, |
| 322 base::StringValue(flimflam::kSecurityWep)); |
315 | 323 |
316 AddService("stub_wifi2", "wifi2_PSK", | 324 AddService("stub_wifi2", "wifi2_PSK", |
317 flimflam::kTypeWifi, | 325 flimflam::kTypeWifi, |
318 flimflam::kStateIdle, | 326 flimflam::kStateIdle, |
319 add_to_watchlist); | 327 add_to_watchlist); |
320 base::StringValue psk_value(flimflam::kSecurityPsk); | |
321 SetServiceProperty("stub_wifi2", | 328 SetServiceProperty("stub_wifi2", |
322 flimflam::kSecurityProperty, | 329 flimflam::kSecurityProperty, |
323 psk_value); | 330 base::StringValue(flimflam::kSecurityPsk)); |
324 base::FundamentalValue strength_value(80); | 331 base::FundamentalValue strength_value(80); |
325 SetServiceProperty("stub_wifi2", | 332 SetServiceProperty("stub_wifi2", |
326 flimflam::kSignalStrengthProperty, | 333 flimflam::kSignalStrengthProperty, |
327 strength_value); | 334 strength_value); |
328 | 335 |
329 AddService("stub_cellular1", "cellular1", | 336 AddService("stub_cellular1", "cellular1", |
330 flimflam::kTypeCellular, | 337 flimflam::kTypeCellular, |
331 flimflam::kStateIdle, | 338 flimflam::kStateIdle, |
332 add_to_watchlist); | 339 add_to_watchlist); |
333 base::StringValue technology_value(flimflam::kNetworkTechnologyGsm); | 340 base::StringValue technology_value(flimflam::kNetworkTechnologyGsm); |
334 SetServiceProperty("stub_cellular1", | 341 SetServiceProperty("stub_cellular1", |
335 flimflam::kNetworkTechnologyProperty, | 342 flimflam::kNetworkTechnologyProperty, |
336 technology_value); | 343 technology_value); |
337 base::StringValue activation_value(flimflam::kActivationStateActivated); | |
338 SetServiceProperty("stub_cellular1", | 344 SetServiceProperty("stub_cellular1", |
339 flimflam::kActivationStateProperty, | 345 flimflam::kActivationStateProperty, |
340 activation_value); | 346 base::StringValue(flimflam::kActivationStateNotActivated)); |
| 347 SetServiceProperty("stub_cellular1", |
| 348 flimflam::kRoamingStateProperty, |
| 349 base::StringValue(flimflam::kRoamingStateHome)); |
341 | 350 |
342 AddService("stub_vpn1", "vpn1", | 351 AddService("stub_vpn1", "vpn1", |
343 flimflam::kTypeVPN, | 352 flimflam::kTypeVPN, |
344 flimflam::kStateOnline, | 353 flimflam::kStateOnline, |
345 add_to_watchlist); | 354 add_to_watchlist); |
346 | 355 |
347 AddService("stub_vpn2", "vpn2", | 356 AddService("stub_vpn2", "vpn2", |
348 flimflam::kTypeVPN, | 357 flimflam::kTypeVPN, |
349 flimflam::kStateOffline, | 358 flimflam::kStateOffline, |
350 add_to_watchlist); | 359 add_to_watchlist); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 std::map<dbus::ObjectPath, PropertyObserverList*>::iterator iter = | 408 std::map<dbus::ObjectPath, PropertyObserverList*>::iterator iter = |
400 observer_list_.find(device_path); | 409 observer_list_.find(device_path); |
401 if (iter != observer_list_.end()) | 410 if (iter != observer_list_.end()) |
402 return *(iter->second); | 411 return *(iter->second); |
403 PropertyObserverList* observer_list = new PropertyObserverList(); | 412 PropertyObserverList* observer_list = new PropertyObserverList(); |
404 observer_list_[device_path] = observer_list; | 413 observer_list_[device_path] = observer_list; |
405 return *observer_list; | 414 return *observer_list; |
406 } | 415 } |
407 | 416 |
408 } // namespace chromeos | 417 } // namespace chromeos |
OLD | NEW |