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

Side by Side Diff: chromeos/network/network_state_handler_unittest.cc

Issue 299403012: Clean up shill fake implementations (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix browser_tests Created 6 years, 6 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/network/network_state_handler.h" 5 #include "chromeos/network/network_state_handler.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 13 matching lines...) Expand all
24 #include "testing/gtest/include/gtest/gtest.h" 24 #include "testing/gtest/include/gtest/gtest.h"
25 #include "third_party/cros_system_api/dbus/service_constants.h" 25 #include "third_party/cros_system_api/dbus/service_constants.h"
26 26
27 namespace { 27 namespace {
28 28
29 void ErrorCallbackFunction(const std::string& error_name, 29 void ErrorCallbackFunction(const std::string& error_name,
30 const std::string& error_message) { 30 const std::string& error_message) {
31 LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message; 31 LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message;
32 } 32 }
33 33
34 const std::string kShillManagerClientStubDefaultService = "eth1"; 34 const std::string kShillManagerClientStubDefaultService = "/service/eth1";
35 const std::string kShillManagerClientStubDefaultWifi = "wifi1"; 35 const std::string kShillManagerClientStubDefaultWifi = "/service/wifi1";
36 const std::string kShillManagerClientStubWifi2 = "wifi2"; 36 const std::string kShillManagerClientStubWifi2 = "/service/wifi2";
37 const std::string kShillManagerClientStubCellular = "cellular1"; 37 const std::string kShillManagerClientStubCellular = "/service/cellular1";
38 38
39 using chromeos::NetworkState; 39 using chromeos::NetworkState;
40 using chromeos::NetworkStateHandler; 40 using chromeos::NetworkStateHandler;
41 41
42 class TestObserver : public chromeos::NetworkStateHandlerObserver { 42 class TestObserver : public chromeos::NetworkStateHandlerObserver {
43 public: 43 public:
44 explicit TestObserver(NetworkStateHandler* handler) 44 explicit TestObserver(NetworkStateHandler* handler)
45 : handler_(handler), 45 : handler_(handler),
46 device_list_changed_count_(0), 46 device_list_changed_count_(0),
47 device_count_(0),
pneubeck (no reviews) 2014/06/04 09:30:27 nit: You could consider setting the absolute count
stevenjb 2014/06/04 19:49:58 We don't ever currently test for 0 entries, and pr
47 network_count_(0), 48 network_count_(0),
48 default_network_change_count_(0), 49 default_network_change_count_(0),
49 favorite_count_(0) { 50 favorite_count_(0) {
50 } 51 }
51 52
52 virtual ~TestObserver() { 53 virtual ~TestObserver() {
53 } 54 }
54 55
55 virtual void DeviceListChanged() OVERRIDE { 56 virtual void DeviceListChanged() OVERRIDE {
57 NetworkStateHandler::DeviceStateList devices;
58 handler_->GetDeviceList(&devices);
59 device_count_ = devices.size();
56 ++device_list_changed_count_; 60 ++device_list_changed_count_;
57 } 61 }
58 62
59 virtual void NetworkListChanged() OVERRIDE { 63 virtual void NetworkListChanged() OVERRIDE {
60 NetworkStateHandler::NetworkStateList networks; 64 NetworkStateHandler::NetworkStateList networks;
61 handler_->GetNetworkList(&networks); 65 handler_->GetNetworkList(&networks);
62 network_count_ = networks.size(); 66 network_count_ = networks.size();
63 if (network_count_ == 0) { 67 if (network_count_ == 0) {
64 default_network_ = ""; 68 default_network_ = "";
65 default_network_connection_state_ = ""; 69 default_network_connection_state_ = "";
(...skipping 17 matching lines...) Expand all
83 network_connection_state_[network->path()] = network->connection_state(); 87 network_connection_state_[network->path()] = network->connection_state();
84 connection_state_changes_[network->path()]++; 88 connection_state_changes_[network->path()]++;
85 } 89 }
86 90
87 virtual void NetworkPropertiesUpdated(const NetworkState* network) OVERRIDE { 91 virtual void NetworkPropertiesUpdated(const NetworkState* network) OVERRIDE {
88 DCHECK(network); 92 DCHECK(network);
89 property_updates_[network->path()]++; 93 property_updates_[network->path()]++;
90 } 94 }
91 95
92 size_t device_list_changed_count() { return device_list_changed_count_; } 96 size_t device_list_changed_count() { return device_list_changed_count_; }
97 size_t device_count() { return device_count_; }
93 size_t network_count() { return network_count_; } 98 size_t network_count() { return network_count_; }
94 size_t default_network_change_count() { 99 size_t default_network_change_count() {
95 return default_network_change_count_; 100 return default_network_change_count_;
96 } 101 }
97 void reset_network_change_count() { 102 void reset_change_counts() {
98 DVLOG(1) << "ResetNetworkChangeCount"; 103 DVLOG(1) << "=== RESET CHANGE COUNTS ===";
99 default_network_change_count_ = 0; 104 default_network_change_count_ = 0;
105 device_list_changed_count_ = 0;
100 } 106 }
101 std::string default_network() { return default_network_; } 107 std::string default_network() { return default_network_; }
102 std::string default_network_connection_state() { 108 std::string default_network_connection_state() {
103 return default_network_connection_state_; 109 return default_network_connection_state_;
104 } 110 }
105 size_t favorite_count() { return favorite_count_; } 111 size_t favorite_count() { return favorite_count_; }
106 112
107 int PropertyUpdatesForService(const std::string& service_path) { 113 int PropertyUpdatesForService(const std::string& service_path) {
108 return property_updates_[service_path]; 114 return property_updates_[service_path];
109 } 115 }
110 116
111 int ConnectionStateChangesForService(const std::string& service_path) { 117 int ConnectionStateChangesForService(const std::string& service_path) {
112 return connection_state_changes_[service_path]; 118 return connection_state_changes_[service_path];
113 } 119 }
114 120
115 std::string NetworkConnectionStateForService( 121 std::string NetworkConnectionStateForService(
116 const std::string& service_path) { 122 const std::string& service_path) {
117 return network_connection_state_[service_path]; 123 return network_connection_state_[service_path];
118 } 124 }
119 125
120 private: 126 private:
121 NetworkStateHandler* handler_; 127 NetworkStateHandler* handler_;
122 size_t device_list_changed_count_; 128 size_t device_list_changed_count_;
129 size_t device_count_;
123 size_t network_count_; 130 size_t network_count_;
124 size_t default_network_change_count_; 131 size_t default_network_change_count_;
125 std::string default_network_; 132 std::string default_network_;
126 std::string default_network_connection_state_; 133 std::string default_network_connection_state_;
127 size_t favorite_count_; 134 size_t favorite_count_;
128 std::map<std::string, int> property_updates_; 135 std::map<std::string, int> property_updates_;
129 std::map<std::string, int> connection_state_changes_; 136 std::map<std::string, int> connection_state_changes_;
130 std::map<std::string, std::string> network_connection_state_; 137 std::map<std::string, std::string> network_connection_state_;
131 138
132 DISALLOW_COPY_AND_ASSIGN(TestObserver); 139 DISALLOW_COPY_AND_ASSIGN(TestObserver);
133 }; 140 };
134 141
135 } // namespace 142 } // namespace
136 143
137 namespace chromeos { 144 namespace chromeos {
138 145
139 class NetworkStateHandlerTest : public testing::Test { 146 class NetworkStateHandlerTest : public testing::Test {
140 public: 147 public:
141 NetworkStateHandlerTest() 148 NetworkStateHandlerTest()
142 : device_test_(NULL), 149 : device_test_(NULL),
143 manager_test_(NULL), 150 manager_test_(NULL),
144 profile_test_(NULL), 151 profile_test_(NULL),
145 service_test_(NULL) {} 152 service_test_(NULL) {}
146 virtual ~NetworkStateHandlerTest() {} 153 virtual ~NetworkStateHandlerTest() {}
147 154
148 virtual void SetUp() OVERRIDE { 155 virtual void SetUp() OVERRIDE {
149 // Initialize DBusThreadManager with a stub implementation. 156 // Initialize DBusThreadManager with a stub implementation.
150 DBusThreadManager::InitializeWithStub(); 157 DBusThreadManager::InitializeWithStub();
151 SetupNetworkStateHandler(); 158 SetupDefaultShillState();
159 network_state_handler_.reset(new NetworkStateHandler);
160 test_observer_.reset(new TestObserver(network_state_handler_.get()));
161 network_state_handler_->AddObserver(test_observer_.get(), FROM_HERE);
162 network_state_handler_->InitShillPropertyHandler();
152 message_loop_.RunUntilIdle(); 163 message_loop_.RunUntilIdle();
153 } 164 }
154 165
155 virtual void TearDown() OVERRIDE { 166 virtual void TearDown() OVERRIDE {
156 network_state_handler_->RemoveObserver(test_observer_.get(), FROM_HERE); 167 network_state_handler_->RemoveObserver(test_observer_.get(), FROM_HERE);
157 test_observer_.reset(); 168 test_observer_.reset();
158 network_state_handler_.reset(); 169 network_state_handler_.reset();
159 DBusThreadManager::Shutdown(); 170 DBusThreadManager::Shutdown();
160 } 171 }
161 172
162 void SetupNetworkStateHandler() {
163 SetupDefaultShillState();
164 network_state_handler_.reset(new NetworkStateHandler);
165 test_observer_.reset(new TestObserver(network_state_handler_.get()));
166 network_state_handler_->AddObserver(test_observer_.get(), FROM_HERE);
167 network_state_handler_->InitShillPropertyHandler();
168 }
169
170 protected: 173 protected:
171 void AddService(const std::string& service_path, 174 void AddService(const std::string& service_path,
172 const std::string& name, 175 const std::string& name,
173 const std::string& type, 176 const std::string& type,
174 const std::string& state) { 177 const std::string& state) {
175 service_test_->AddService(service_path, name, type, state, 178 service_test_->AddService(service_path, name, type, state,
176 true /* add_to_visible */, 179 true /* add_to_visible */,
177 true /* add_to_watchlist */); 180 true /* add_to_watchlist */);
178 } 181 }
179 182
(...skipping 16 matching lines...) Expand all
196 profile_test_ = 199 profile_test_ =
197 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface(); 200 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface();
198 ASSERT_TRUE(profile_test_); 201 ASSERT_TRUE(profile_test_);
199 profile_test_->ClearProfiles(); 202 profile_test_->ClearProfiles();
200 203
201 service_test_ = 204 service_test_ =
202 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface(); 205 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
203 ASSERT_TRUE(service_test_); 206 ASSERT_TRUE(service_test_);
204 service_test_->ClearServices(); 207 service_test_->ClearServices();
205 AddService(kShillManagerClientStubDefaultService, 208 AddService(kShillManagerClientStubDefaultService,
206 kShillManagerClientStubDefaultService, 209 "eth1",
207 shill::kTypeEthernet, 210 shill::kTypeEthernet,
208 shill::kStateOnline); 211 shill::kStateOnline);
209 AddService(kShillManagerClientStubDefaultWifi, 212 AddService(kShillManagerClientStubDefaultWifi,
210 kShillManagerClientStubDefaultWifi, 213 "wifi1",
211 shill::kTypeWifi, 214 shill::kTypeWifi,
212 shill::kStateOnline); 215 shill::kStateOnline);
213 AddService(kShillManagerClientStubWifi2, 216 AddService(kShillManagerClientStubWifi2,
214 kShillManagerClientStubWifi2, 217 "wifi2",
215 shill::kTypeWifi, 218 shill::kTypeWifi,
216 shill::kStateIdle); 219 shill::kStateIdle);
217 AddService(kShillManagerClientStubCellular, 220 AddService(kShillManagerClientStubCellular,
218 kShillManagerClientStubCellular, 221 "cellular1",
219 shill::kTypeCellular, 222 shill::kTypeCellular,
220 shill::kStateIdle); 223 shill::kStateIdle);
221 } 224 }
222 225
223 void UpdateManagerProperties() { 226 void UpdateManagerProperties() {
224 message_loop_.RunUntilIdle(); 227 message_loop_.RunUntilIdle();
225 network_state_handler_->UpdateManagerProperties(); 228 network_state_handler_->UpdateManagerProperties();
226 message_loop_.RunUntilIdle(); 229 message_loop_.RunUntilIdle();
227 } 230 }
228 231
229 base::MessageLoopForUI message_loop_; 232 base::MessageLoopForUI message_loop_;
230 scoped_ptr<NetworkStateHandler> network_state_handler_; 233 scoped_ptr<NetworkStateHandler> network_state_handler_;
231 scoped_ptr<TestObserver> test_observer_; 234 scoped_ptr<TestObserver> test_observer_;
232 ShillDeviceClient::TestInterface* device_test_; 235 ShillDeviceClient::TestInterface* device_test_;
233 ShillManagerClient::TestInterface* manager_test_; 236 ShillManagerClient::TestInterface* manager_test_;
234 ShillProfileClient::TestInterface* profile_test_; 237 ShillProfileClient::TestInterface* profile_test_;
235 ShillServiceClient::TestInterface* service_test_; 238 ShillServiceClient::TestInterface* service_test_;
236 239
237 private: 240 private:
238 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerTest); 241 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerTest);
239 }; 242 };
240 243
241 TEST_F(NetworkStateHandlerTest, NetworkStateHandlerStub) { 244 TEST_F(NetworkStateHandlerTest, NetworkStateHandlerStub) {
242 // Ensure that the network list is the expected size. 245 // Ensure that the device and network list are the expected size.
246 const size_t kNumShillManagerClientStubImplDevices = 2;
247 EXPECT_EQ(kNumShillManagerClientStubImplDevices,
248 test_observer_->device_count());
243 const size_t kNumShillManagerClientStubImplServices = 4; 249 const size_t kNumShillManagerClientStubImplServices = 4;
244 EXPECT_EQ(kNumShillManagerClientStubImplServices, 250 EXPECT_EQ(kNumShillManagerClientStubImplServices,
245 test_observer_->network_count()); 251 test_observer_->network_count());
246 // Ensure that the first stub network is the default network. 252 // Ensure that the first stub network is the default network.
247 EXPECT_EQ(kShillManagerClientStubDefaultService, 253 EXPECT_EQ(kShillManagerClientStubDefaultService,
248 test_observer_->default_network()); 254 test_observer_->default_network());
255 ASSERT_TRUE(network_state_handler_->DefaultNetwork());
249 EXPECT_EQ(kShillManagerClientStubDefaultService, 256 EXPECT_EQ(kShillManagerClientStubDefaultService,
250 network_state_handler_->ConnectedNetworkByType( 257 network_state_handler_->DefaultNetwork()->path());
251 NetworkTypePattern::Default())->path());
252 EXPECT_EQ(kShillManagerClientStubDefaultService, 258 EXPECT_EQ(kShillManagerClientStubDefaultService,
253 network_state_handler_->ConnectedNetworkByType( 259 network_state_handler_->ConnectedNetworkByType(
254 NetworkTypePattern::Ethernet())->path()); 260 NetworkTypePattern::Ethernet())->path());
255 EXPECT_EQ(kShillManagerClientStubDefaultWifi, 261 EXPECT_EQ(kShillManagerClientStubDefaultWifi,
256 network_state_handler_->ConnectedNetworkByType( 262 network_state_handler_->ConnectedNetworkByType(
257 NetworkTypePattern::WiFi())->path()); 263 NetworkTypePattern::WiFi())->path());
258 EXPECT_EQ(kShillManagerClientStubCellular, 264 EXPECT_EQ(kShillManagerClientStubCellular,
259 network_state_handler_->FirstNetworkByType( 265 network_state_handler_->FirstNetworkByType(
260 NetworkTypePattern::Mobile())->path()); 266 NetworkTypePattern::Mobile())->path());
261 EXPECT_EQ( 267 EXPECT_EQ(
262 kShillManagerClientStubCellular, 268 kShillManagerClientStubCellular,
263 network_state_handler_->FirstNetworkByType(NetworkTypePattern::Cellular()) 269 network_state_handler_->FirstNetworkByType(NetworkTypePattern::Cellular())
264 ->path()); 270 ->path());
265 EXPECT_EQ(shill::kStateOnline, 271 EXPECT_EQ(shill::kStateOnline,
266 test_observer_->default_network_connection_state()); 272 test_observer_->default_network_connection_state());
267 } 273 }
268 274
269 TEST_F(NetworkStateHandlerTest, TechnologyChanged) { 275 TEST_F(NetworkStateHandlerTest, TechnologyChanged) {
270 // There may be several manager changes during initialization. 276 // Disable a technology. Will immediately set the state to AVAILABLE and
271 size_t initial_changed_count = test_observer_->device_list_changed_count(); 277 // notify observers.
272 // Disable a technology. 278 test_observer_->reset_change_counts();
pneubeck (no reviews) 2014/06/04 09:30:27 maybe move this to the end of SetUp() in the fixtu
stevenjb 2014/06/04 19:49:58 Done.
273 network_state_handler_->SetTechnologyEnabled( 279 network_state_handler_->SetTechnologyEnabled(
274 NetworkTypePattern::Wimax(), false, network_handler::ErrorCallback()); 280 NetworkTypePattern::WiFi(), false, network_handler::ErrorCallback());
275 EXPECT_NE( 281 EXPECT_EQ(1u, test_observer_->device_list_changed_count());
276 NetworkStateHandler::TECHNOLOGY_ENABLED, 282 EXPECT_EQ(
277 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 283 NetworkStateHandler::TECHNOLOGY_AVAILABLE,
278 EXPECT_EQ(initial_changed_count + 1, 284 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
279 test_observer_->device_list_changed_count()); 285
280 // Enable a technology. 286 // Run the message loop. An additional notification will be received when
287 // Shill updates the enabled technologies. The state should remain AVAILABLE.
288 test_observer_->reset_change_counts();
289 message_loop_.RunUntilIdle();
290 EXPECT_EQ(1u, test_observer_->device_list_changed_count());
291 EXPECT_EQ(
292 NetworkStateHandler::TECHNOLOGY_AVAILABLE,
293 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
294
295 // Enable a technology. Will immediately set the state to ENABLING and
296 // notify observers.
297 test_observer_->reset_change_counts();
281 network_state_handler_->SetTechnologyEnabled( 298 network_state_handler_->SetTechnologyEnabled(
282 NetworkTypePattern::Wimax(), true, network_handler::ErrorCallback()); 299 NetworkTypePattern::WiFi(), true, network_handler::ErrorCallback());
283 // The technology state should immediately change to ENABLING and we should 300 EXPECT_EQ(1u, test_observer_->device_list_changed_count());
284 // receive a manager changed callback.
285 EXPECT_EQ(initial_changed_count + 2,
286 test_observer_->device_list_changed_count());
287 EXPECT_EQ( 301 EXPECT_EQ(
288 NetworkStateHandler::TECHNOLOGY_ENABLING, 302 NetworkStateHandler::TECHNOLOGY_ENABLING,
289 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 303 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
304
305 // Run the message loop. State should change to ENABLED.
306 test_observer_->reset_change_counts();
290 message_loop_.RunUntilIdle(); 307 message_loop_.RunUntilIdle();
291 // Ensure we receive 2 manager changed callbacks when the technology becomes 308 EXPECT_EQ(1u, test_observer_->device_list_changed_count());
292 // avalable and enabled.
293 EXPECT_EQ(initial_changed_count + 4,
294 test_observer_->device_list_changed_count());
295 EXPECT_EQ( 309 EXPECT_EQ(
296 NetworkStateHandler::TECHNOLOGY_ENABLED, 310 NetworkStateHandler::TECHNOLOGY_ENABLED,
297 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 311 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
298 } 312 }
299 313
300 TEST_F(NetworkStateHandlerTest, TechnologyState) { 314 TEST_F(NetworkStateHandlerTest, TechnologyState) {
301 manager_test_->RemoveTechnology(shill::kTypeWimax); 315 manager_test_->RemoveTechnology(shill::kTypeWimax);
302 message_loop_.RunUntilIdle(); 316 message_loop_.RunUntilIdle();
303 EXPECT_EQ( 317 EXPECT_EQ(
304 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE, 318 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
305 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 319 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
306 320
307 manager_test_->AddTechnology(shill::kTypeWimax, false); 321 manager_test_->AddTechnology(shill::kTypeWimax, false);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 connection_state_idle_value); 421 connection_state_idle_value);
408 message_loop_.RunUntilIdle(); 422 message_loop_.RunUntilIdle();
409 EXPECT_EQ(2, test_observer_->ConnectionStateChangesForService(eth1)); 423 EXPECT_EQ(2, test_observer_->ConnectionStateChangesForService(eth1));
410 } 424 }
411 425
412 TEST_F(NetworkStateHandlerTest, DefaultServiceDisconnected) { 426 TEST_F(NetworkStateHandlerTest, DefaultServiceDisconnected) {
413 const std::string eth1 = kShillManagerClientStubDefaultService; 427 const std::string eth1 = kShillManagerClientStubDefaultService;
414 const std::string wifi1 = kShillManagerClientStubDefaultWifi; 428 const std::string wifi1 = kShillManagerClientStubDefaultWifi;
415 429
416 // Disconnect ethernet. 430 // Disconnect ethernet.
417 test_observer_->reset_network_change_count(); 431 test_observer_->reset_change_counts();
418 base::StringValue connection_state_idle_value(shill::kStateIdle); 432 base::StringValue connection_state_idle_value(shill::kStateIdle);
419 service_test_->SetServiceProperty(eth1, shill::kStateProperty, 433 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
420 connection_state_idle_value); 434 connection_state_idle_value);
421 message_loop_.RunUntilIdle(); 435 message_loop_.RunUntilIdle();
422 // Expect two changes: first when eth1 becomes disconnected, second when 436 // Expect two changes: first when eth1 becomes disconnected, second when
423 // wifi1 becomes the default. 437 // wifi1 becomes the default.
424 EXPECT_EQ(2u, test_observer_->default_network_change_count()); 438 EXPECT_EQ(2u, test_observer_->default_network_change_count());
425 EXPECT_EQ(wifi1, test_observer_->default_network()); 439 EXPECT_EQ(wifi1, test_observer_->default_network());
426 440
427 // Disconnect wifi. 441 // Disconnect wifi.
428 test_observer_->reset_network_change_count(); 442 test_observer_->reset_change_counts();
429 service_test_->SetServiceProperty(wifi1, shill::kStateProperty, 443 service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
430 connection_state_idle_value); 444 connection_state_idle_value);
431 message_loop_.RunUntilIdle(); 445 message_loop_.RunUntilIdle();
432 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 446 EXPECT_EQ(1u, test_observer_->default_network_change_count());
433 EXPECT_EQ("", test_observer_->default_network()); 447 EXPECT_EQ("", test_observer_->default_network());
434 } 448 }
435 449
436 TEST_F(NetworkStateHandlerTest, DefaultServiceConnected) { 450 TEST_F(NetworkStateHandlerTest, DefaultServiceConnected) {
437 const std::string eth1 = kShillManagerClientStubDefaultService; 451 const std::string eth1 = kShillManagerClientStubDefaultService;
438 const std::string wifi1 = kShillManagerClientStubDefaultWifi; 452 const std::string wifi1 = kShillManagerClientStubDefaultWifi;
439 453
440 // Disconnect ethernet and wifi. 454 // Disconnect ethernet and wifi.
441 base::StringValue connection_state_idle_value(shill::kStateIdle); 455 base::StringValue connection_state_idle_value(shill::kStateIdle);
442 service_test_->SetServiceProperty(eth1, shill::kStateProperty, 456 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
443 connection_state_idle_value); 457 connection_state_idle_value);
444 service_test_->SetServiceProperty(wifi1, shill::kStateProperty, 458 service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
445 connection_state_idle_value); 459 connection_state_idle_value);
446 message_loop_.RunUntilIdle(); 460 message_loop_.RunUntilIdle();
447 EXPECT_EQ(std::string(), test_observer_->default_network()); 461 EXPECT_EQ(std::string(), test_observer_->default_network());
448 462
449 // Connect ethernet, should become the default network. 463 // Connect ethernet, should become the default network.
450 test_observer_->reset_network_change_count(); 464 test_observer_->reset_change_counts();
451 base::StringValue connection_state_ready_value(shill::kStateReady); 465 base::StringValue connection_state_ready_value(shill::kStateReady);
452 service_test_->SetServiceProperty(eth1, shill::kStateProperty, 466 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
453 connection_state_ready_value); 467 connection_state_ready_value);
454 message_loop_.RunUntilIdle(); 468 message_loop_.RunUntilIdle();
455 EXPECT_EQ(eth1, test_observer_->default_network()); 469 EXPECT_EQ(eth1, test_observer_->default_network());
456 EXPECT_EQ(shill::kStateReady, 470 EXPECT_EQ(shill::kStateReady,
457 test_observer_->default_network_connection_state()); 471 test_observer_->default_network_connection_state());
458 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 472 EXPECT_EQ(1u, test_observer_->default_network_change_count());
459 } 473 }
460 474
461 TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) { 475 TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) {
462 const std::string eth1 = kShillManagerClientStubDefaultService; 476 const std::string eth1 = kShillManagerClientStubDefaultService;
463 // The default service should be eth1. 477 // The default service should be eth1.
464 EXPECT_EQ(eth1, test_observer_->default_network()); 478 EXPECT_EQ(eth1, test_observer_->default_network());
465 479
466 // Change the default network by changing Manager.DefaultService. 480 // Change the default network by changing Manager.DefaultService.
467 test_observer_->reset_network_change_count(); 481 test_observer_->reset_change_counts();
468 const std::string wifi1 = kShillManagerClientStubDefaultWifi; 482 const std::string wifi1 = kShillManagerClientStubDefaultWifi;
469 base::StringValue wifi1_value(wifi1); 483 base::StringValue wifi1_value(wifi1);
470 manager_test_->SetManagerProperty( 484 manager_test_->SetManagerProperty(
471 shill::kDefaultServiceProperty, wifi1_value); 485 shill::kDefaultServiceProperty, wifi1_value);
472 message_loop_.RunUntilIdle(); 486 message_loop_.RunUntilIdle();
473 EXPECT_EQ(wifi1, test_observer_->default_network()); 487 EXPECT_EQ(wifi1, test_observer_->default_network());
474 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 488 EXPECT_EQ(1u, test_observer_->default_network_change_count());
475 489
476 // Change the state of the default network. 490 // Change the state of the default network.
477 test_observer_->reset_network_change_count(); 491 test_observer_->reset_change_counts();
478 base::StringValue connection_state_ready_value(shill::kStateReady); 492 base::StringValue connection_state_ready_value(shill::kStateReady);
479 service_test_->SetServiceProperty(wifi1, shill::kStateProperty, 493 service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
480 connection_state_ready_value); 494 connection_state_ready_value);
481 message_loop_.RunUntilIdle(); 495 message_loop_.RunUntilIdle();
482 EXPECT_EQ(shill::kStateReady, 496 EXPECT_EQ(shill::kStateReady,
483 test_observer_->default_network_connection_state()); 497 test_observer_->default_network_connection_state());
484 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 498 EXPECT_EQ(1u, test_observer_->default_network_change_count());
485 499
486 // Updating a property on the default network should trigger 500 // Updating a property on the default network should trigger
487 // a default network change. 501 // a default network change.
488 test_observer_->reset_network_change_count(); 502 test_observer_->reset_change_counts();
489 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( 503 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
490 dbus::ObjectPath(wifi1), 504 dbus::ObjectPath(wifi1),
491 shill::kSecurityProperty, base::StringValue("TestSecurity"), 505 shill::kSecurityProperty, base::StringValue("TestSecurity"),
492 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); 506 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
493 message_loop_.RunUntilIdle(); 507 message_loop_.RunUntilIdle();
494 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 508 EXPECT_EQ(1u, test_observer_->default_network_change_count());
495 509
496 // No default network updates for signal strength changes. 510 // No default network updates for signal strength changes.
497 test_observer_->reset_network_change_count(); 511 test_observer_->reset_change_counts();
498 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( 512 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
499 dbus::ObjectPath(wifi1), 513 dbus::ObjectPath(wifi1),
500 shill::kSignalStrengthProperty, base::FundamentalValue(32), 514 shill::kSignalStrengthProperty, base::FundamentalValue(32),
501 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); 515 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
502 message_loop_.RunUntilIdle(); 516 message_loop_.RunUntilIdle();
503 EXPECT_EQ(0u, test_observer_->default_network_change_count()); 517 EXPECT_EQ(0u, test_observer_->default_network_change_count());
504 } 518 }
505 519
506 TEST_F(NetworkStateHandlerTest, RequestUpdate) { 520 TEST_F(NetworkStateHandlerTest, RequestUpdate) {
507 // Request an update for kShillManagerClientStubDefaultWifi. 521 // Request an update for kShillManagerClientStubDefaultWifi.
508 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService( 522 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(
509 kShillManagerClientStubDefaultWifi)); 523 kShillManagerClientStubDefaultWifi));
510 network_state_handler_->RequestUpdateForNetwork( 524 network_state_handler_->RequestUpdateForNetwork(
511 kShillManagerClientStubDefaultWifi); 525 kShillManagerClientStubDefaultWifi);
512 message_loop_.RunUntilIdle(); 526 message_loop_.RunUntilIdle();
513 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService( 527 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(
514 kShillManagerClientStubDefaultWifi)); 528 kShillManagerClientStubDefaultWifi));
515 } 529 }
516 530
517 TEST_F(NetworkStateHandlerTest, NetworkGuidInProfile) { 531 TEST_F(NetworkStateHandlerTest, NetworkGuidInProfile) {
518 const std::string profile = "/profile/profile1"; 532 const std::string profile = "/profile/profile1";
519 const std::string wifi_path = "wifi_with_guid"; 533 const std::string wifi_path = "/service/wifi_with_guid";
520 const std::string wifi_guid = "WIFI_GUID"; 534 const std::string wifi_guid = "WIFI_GUID";
521 const bool is_service_configured = true; 535 const bool is_service_configured = true;
522 536
523 // Add a network to the default Profile with a specified GUID. 537 // Add a network to the default Profile with a specified GUID.
524 service_test_->AddServiceWithIPConfig( 538 service_test_->AddServiceWithIPConfig(
525 wifi_path, 539 wifi_path,
526 wifi_guid, 540 wifi_guid,
527 wifi_path /* name */, 541 wifi_path /* name */,
528 shill::kTypeWifi, 542 shill::kTypeWifi,
529 shill::kStateOnline, 543 shill::kStateOnline,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 EXPECT_EQ(wifi_guid, network->guid()); 575 EXPECT_EQ(wifi_guid, network->guid());
562 576
563 // Also verify FavoriteState (mostly to test the stub behavior). 577 // Also verify FavoriteState (mostly to test the stub behavior).
564 favorite = network_state_handler_->GetFavoriteStateFromServicePath( 578 favorite = network_state_handler_->GetFavoriteStateFromServicePath(
565 wifi_path, is_service_configured); 579 wifi_path, is_service_configured);
566 ASSERT_TRUE(favorite); 580 ASSERT_TRUE(favorite);
567 EXPECT_EQ(wifi_guid, favorite->guid()); 581 EXPECT_EQ(wifi_guid, favorite->guid());
568 } 582 }
569 583
570 TEST_F(NetworkStateHandlerTest, NetworkGuidNotInProfile) { 584 TEST_F(NetworkStateHandlerTest, NetworkGuidNotInProfile) {
571 const std::string wifi_path = "wifi_with_guid"; 585 const std::string wifi_path = "/service/wifi_with_guid";
572 const bool is_service_configured = false; 586 const bool is_service_configured = false;
573 587
574 // Add a network without adding it to a profile. 588 // Add a network without adding it to a profile.
575 AddService(wifi_path, wifi_path, shill::kTypeWifi, shill::kStateOnline); 589 AddService(wifi_path, wifi_path, shill::kTypeWifi, shill::kStateOnline);
576 UpdateManagerProperties(); 590 UpdateManagerProperties();
577 591
578 // Verify that a FavoriteState exists with an assigned GUID. 592 // Verify that a FavoriteState exists with an assigned GUID.
579 const FavoriteState* favorite = 593 const FavoriteState* favorite =
580 network_state_handler_->GetFavoriteStateFromServicePath( 594 network_state_handler_->GetFavoriteStateFromServicePath(
581 wifi_path, is_service_configured); 595 wifi_path, is_service_configured);
(...skipping 21 matching lines...) Expand all
603 EXPECT_EQ(wifi_guid, network->guid()); 617 EXPECT_EQ(wifi_guid, network->guid());
604 618
605 // Also verify FavoriteState (mostly to test the stub behavior). 619 // Also verify FavoriteState (mostly to test the stub behavior).
606 favorite = network_state_handler_->GetFavoriteStateFromServicePath( 620 favorite = network_state_handler_->GetFavoriteStateFromServicePath(
607 wifi_path, is_service_configured); 621 wifi_path, is_service_configured);
608 ASSERT_TRUE(favorite); 622 ASSERT_TRUE(favorite);
609 EXPECT_EQ(wifi_guid, favorite->guid()); 623 EXPECT_EQ(wifi_guid, favorite->guid());
610 } 624 }
611 625
612 } // namespace chromeos 626 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698