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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 const base::Value& value, | 99 const base::Value& value, |
100 const base::Closure& callback, | 100 const base::Closure& callback, |
101 const ErrorCallback& error_callback) { | 101 const ErrorCallback& error_callback) { |
102 base::DictionaryValue* dict = NULL; | 102 base::DictionaryValue* dict = NULL; |
103 if (!stub_services_.GetDictionaryWithoutPathExpansion( | 103 if (!stub_services_.GetDictionaryWithoutPathExpansion( |
104 service_path.value(), &dict)) { | 104 service_path.value(), &dict)) { |
105 error_callback.Run("Error.InvalidService", "Invalid Service"); | 105 error_callback.Run("Error.InvalidService", "Invalid Service"); |
106 return; | 106 return; |
107 } | 107 } |
108 if (name == flimflam::kStateProperty) { | 108 if (name == flimflam::kStateProperty) { |
109 // If we connect to a service, then we move it to the top of the list in | 109 // If the service went into a connected state, then move it to the top of |
110 // the manager client. | 110 // the list in the manager client. |
| 111 // TODO(gauravsh): Generalize to sort services properly to allow for testing |
| 112 // more complex scenarios. |
111 std::string state; | 113 std::string state; |
112 if (value.GetAsString(&state) && state == flimflam::kStateOnline) { | 114 if (value.GetAsString(&state) && (state == flimflam::kStateOnline || |
| 115 state == flimflam::kStatePortal)) { |
113 ShillManagerClient* manager_client = | 116 ShillManagerClient* manager_client = |
114 DBusThreadManager::Get()->GetShillManagerClient(); | 117 DBusThreadManager::Get()->GetShillManagerClient(); |
115 manager_client->GetTestInterface()->MoveServiceToIndex( | 118 manager_client->GetTestInterface()->MoveServiceToIndex( |
116 service_path.value(), 0, true); | 119 service_path.value(), 0, true); |
117 } | 120 } |
118 } | 121 } |
119 dict->SetWithoutPathExpansion(name, value.DeepCopy()); | 122 dict->SetWithoutPathExpansion(name, value.DeepCopy()); |
120 MessageLoop::current()->PostTask( | 123 MessageLoop::current()->PostTask( |
121 FROM_HERE, | 124 FROM_HERE, |
122 base::Bind(&ShillServiceClientStub::NotifyObserversPropertyChanged, | 125 base::Bind(&ShillServiceClientStub::NotifyObserversPropertyChanged, |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 std::map<dbus::ObjectPath, PropertyObserverList*>::iterator iter = | 446 std::map<dbus::ObjectPath, PropertyObserverList*>::iterator iter = |
444 observer_list_.find(device_path); | 447 observer_list_.find(device_path); |
445 if (iter != observer_list_.end()) | 448 if (iter != observer_list_.end()) |
446 return *(iter->second); | 449 return *(iter->second); |
447 PropertyObserverList* observer_list = new PropertyObserverList(); | 450 PropertyObserverList* observer_list = new PropertyObserverList(); |
448 observer_list_[device_path] = observer_list; | 451 observer_list_[device_path] = observer_list; |
449 return *observer_list; | 452 return *observer_list; |
450 } | 453 } |
451 | 454 |
452 } // namespace chromeos | 455 } // namespace chromeos |
OLD | NEW |