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

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

Issue 175243004: Chrome OS: Use Manager.DefaultService for Default Network (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 9 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
« no previous file with comments | « chromeos/network/network_state_handler.cc ('k') | chromeos/network/shill_property_handler.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 } 66 }
67 NetworkStateHandler::FavoriteStateList favorites; 67 NetworkStateHandler::FavoriteStateList favorites;
68 handler_->GetFavoriteList(&favorites); 68 handler_->GetFavoriteList(&favorites);
69 favorite_count_ = favorites.size(); 69 favorite_count_ = favorites.size();
70 } 70 }
71 71
72 virtual void DefaultNetworkChanged(const NetworkState* network) OVERRIDE { 72 virtual void DefaultNetworkChanged(const NetworkState* network) OVERRIDE {
73 ++default_network_change_count_; 73 ++default_network_change_count_;
74 default_network_ = network ? network->path() : ""; 74 default_network_ = network ? network->path() : "";
75 default_network_connection_state_ = 75 default_network_connection_state_ =
76 network ? network->connection_state() : ""; 76 network ? network->connection_state() : "";
77 DVLOG(1) << "DefaultNetworkChanged: " << default_network_
78 << " State: " << default_network_connection_state_;
77 } 79 }
78 80
79 virtual void NetworkConnectionStateChanged( 81 virtual void NetworkConnectionStateChanged(
80 const NetworkState* network) OVERRIDE { 82 const NetworkState* network) OVERRIDE {
81 network_connection_state_[network->path()] = network->connection_state(); 83 network_connection_state_[network->path()] = network->connection_state();
82 connection_state_changes_[network->path()]++; 84 connection_state_changes_[network->path()]++;
83 } 85 }
84 86
85 virtual void NetworkPropertiesUpdated(const NetworkState* network) OVERRIDE { 87 virtual void NetworkPropertiesUpdated(const NetworkState* network) OVERRIDE {
86 DCHECK(network); 88 DCHECK(network);
87 property_updates_[network->path()]++; 89 property_updates_[network->path()]++;
88 } 90 }
89 91
90 size_t device_list_changed_count() { return device_list_changed_count_; } 92 size_t device_list_changed_count() { return device_list_changed_count_; }
91 size_t network_count() { return network_count_; } 93 size_t network_count() { return network_count_; }
92 size_t default_network_change_count() { 94 size_t default_network_change_count() {
93 return default_network_change_count_; 95 return default_network_change_count_;
94 } 96 }
97 void reset_network_change_count() {
98 DVLOG(1) << "ResetNetworkChangeCount";
99 default_network_change_count_ = 0;
100 }
95 std::string default_network() { return default_network_; } 101 std::string default_network() { return default_network_; }
96 std::string default_network_connection_state() { 102 std::string default_network_connection_state() {
97 return default_network_connection_state_; 103 return default_network_connection_state_;
98 } 104 }
99 size_t favorite_count() { return favorite_count_; } 105 size_t favorite_count() { return favorite_count_; }
100 106
101 int PropertyUpdatesForService(const std::string& service_path) { 107 int PropertyUpdatesForService(const std::string& service_path) {
102 return property_updates_[service_path]; 108 return property_updates_[service_path];
103 } 109 }
104 110
(...skipping 20 matching lines...) Expand all
125 131
126 DISALLOW_COPY_AND_ASSIGN(TestObserver); 132 DISALLOW_COPY_AND_ASSIGN(TestObserver);
127 }; 133 };
128 134
129 } // namespace 135 } // namespace
130 136
131 namespace chromeos { 137 namespace chromeos {
132 138
133 class NetworkStateHandlerTest : public testing::Test { 139 class NetworkStateHandlerTest : public testing::Test {
134 public: 140 public:
135 NetworkStateHandlerTest() {} 141 NetworkStateHandlerTest()
142 : device_test_(NULL), manager_test_(NULL), service_test_(NULL) {}
136 virtual ~NetworkStateHandlerTest() {} 143 virtual ~NetworkStateHandlerTest() {}
137 144
138 virtual void SetUp() OVERRIDE { 145 virtual void SetUp() OVERRIDE {
139 // Initialize DBusThreadManager with a stub implementation. 146 // Initialize DBusThreadManager with a stub implementation.
140 DBusThreadManager::InitializeWithStub(); 147 DBusThreadManager::InitializeWithStub();
141 SetupNetworkStateHandler(); 148 SetupNetworkStateHandler();
142 message_loop_.RunUntilIdle(); 149 message_loop_.RunUntilIdle();
143 } 150 }
144 151
145 virtual void TearDown() OVERRIDE { 152 virtual void TearDown() OVERRIDE {
146 network_state_handler_->RemoveObserver(test_observer_.get(), FROM_HERE); 153 network_state_handler_->RemoveObserver(test_observer_.get(), FROM_HERE);
147 test_observer_.reset(); 154 test_observer_.reset();
148 network_state_handler_.reset(); 155 network_state_handler_.reset();
149 DBusThreadManager::Shutdown(); 156 DBusThreadManager::Shutdown();
150 } 157 }
151 158
152 void SetupNetworkStateHandler() { 159 void SetupNetworkStateHandler() {
153 SetupDefaultShillState(); 160 SetupDefaultShillState();
154 network_state_handler_.reset(new NetworkStateHandler); 161 network_state_handler_.reset(new NetworkStateHandler);
155 test_observer_.reset(new TestObserver(network_state_handler_.get())); 162 test_observer_.reset(new TestObserver(network_state_handler_.get()));
156 network_state_handler_->AddObserver(test_observer_.get(), FROM_HERE); 163 network_state_handler_->AddObserver(test_observer_.get(), FROM_HERE);
157 network_state_handler_->InitShillPropertyHandler(); 164 network_state_handler_->InitShillPropertyHandler();
158 } 165 }
159 166
160 protected: 167 protected:
161 void SetupDefaultShillState() { 168 void SetupDefaultShillState() {
162 message_loop_.RunUntilIdle(); // Process any pending updates 169 message_loop_.RunUntilIdle(); // Process any pending updates
163 ShillDeviceClient::TestInterface* device_test = 170 device_test_ =
164 DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface(); 171 DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface();
165 device_test->ClearDevices(); 172 ASSERT_TRUE(device_test_);
166 device_test->AddDevice("/device/stub_wifi_device1", 173 device_test_->ClearDevices();
167 shill::kTypeWifi, "stub_wifi_device1"); 174 device_test_->AddDevice(
168 device_test->AddDevice("/device/stub_cellular_device1", 175 "/device/stub_wifi_device1", shill::kTypeWifi, "stub_wifi_device1");
169 shill::kTypeCellular, "stub_cellular_device1"); 176 device_test_->AddDevice("/device/stub_cellular_device1",
177 shill::kTypeCellular,
178 "stub_cellular_device1");
170 179
171 ShillServiceClient::TestInterface* service_test = 180 manager_test_ =
181 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface();
182 ASSERT_TRUE(manager_test_);
183
184 service_test_ =
172 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface(); 185 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
173 service_test->ClearServices(); 186 ASSERT_TRUE(service_test_);
187 service_test_->ClearServices();
174 const bool add_to_visible = true; 188 const bool add_to_visible = true;
175 const bool add_to_watchlist = true; 189 const bool add_to_watchlist = true;
176 service_test->AddService(kShillManagerClientStubDefaultService, 190 service_test_->AddService(kShillManagerClientStubDefaultService,
177 kShillManagerClientStubDefaultService, 191 kShillManagerClientStubDefaultService,
178 shill::kTypeEthernet, shill::kStateOnline, 192 shill::kTypeEthernet,
179 add_to_visible, add_to_watchlist); 193 shill::kStateOnline,
180 service_test->AddService(kShillManagerClientStubDefaultWireless, 194 add_to_visible,
181 kShillManagerClientStubDefaultWireless, 195 add_to_watchlist);
182 shill::kTypeWifi, shill::kStateOnline, 196 service_test_->AddService(kShillManagerClientStubDefaultWireless,
183 add_to_visible, add_to_watchlist); 197 kShillManagerClientStubDefaultWireless,
184 service_test->AddService(kShillManagerClientStubWireless2, 198 shill::kTypeWifi,
185 kShillManagerClientStubWireless2, 199 shill::kStateOnline,
186 shill::kTypeWifi, shill::kStateIdle, 200 add_to_visible,
187 add_to_visible, add_to_watchlist); 201 add_to_watchlist);
188 service_test->AddService(kShillManagerClientStubCellular, 202 service_test_->AddService(kShillManagerClientStubWireless2,
189 kShillManagerClientStubCellular, 203 kShillManagerClientStubWireless2,
190 shill::kTypeCellular, shill::kStateIdle, 204 shill::kTypeWifi,
191 add_to_visible, add_to_watchlist); 205 shill::kStateIdle,
206 add_to_visible,
207 add_to_watchlist);
208 service_test_->AddService(kShillManagerClientStubCellular,
209 kShillManagerClientStubCellular,
210 shill::kTypeCellular,
211 shill::kStateIdle,
212 add_to_visible,
213 add_to_watchlist);
192 } 214 }
193 215
194 base::MessageLoopForUI message_loop_; 216 base::MessageLoopForUI message_loop_;
195 scoped_ptr<NetworkStateHandler> network_state_handler_; 217 scoped_ptr<NetworkStateHandler> network_state_handler_;
196 scoped_ptr<TestObserver> test_observer_; 218 scoped_ptr<TestObserver> test_observer_;
219 ShillDeviceClient::TestInterface* device_test_;
220 ShillManagerClient::TestInterface* manager_test_;
221 ShillServiceClient::TestInterface* service_test_;
197 222
198 private: 223 private:
199 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerTest); 224 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerTest);
200 }; 225 };
201 226
202 TEST_F(NetworkStateHandlerTest, NetworkStateHandlerStub) { 227 TEST_F(NetworkStateHandlerTest, NetworkStateHandlerStub) {
203 // Ensure that the network list is the expected size. 228 // Ensure that the network list is the expected size.
204 const size_t kNumShillManagerClientStubImplServices = 4; 229 const size_t kNumShillManagerClientStubImplServices = 4;
205 EXPECT_EQ(kNumShillManagerClientStubImplServices, 230 EXPECT_EQ(kNumShillManagerClientStubImplServices,
206 test_observer_->network_count()); 231 test_observer_->network_count());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 // Ensure we receive 2 manager changed callbacks when the technology becomes 277 // Ensure we receive 2 manager changed callbacks when the technology becomes
253 // avalable and enabled. 278 // avalable and enabled.
254 EXPECT_EQ(initial_changed_count + 4, 279 EXPECT_EQ(initial_changed_count + 4,
255 test_observer_->device_list_changed_count()); 280 test_observer_->device_list_changed_count());
256 EXPECT_EQ( 281 EXPECT_EQ(
257 NetworkStateHandler::TECHNOLOGY_ENABLED, 282 NetworkStateHandler::TECHNOLOGY_ENABLED,
258 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 283 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
259 } 284 }
260 285
261 TEST_F(NetworkStateHandlerTest, TechnologyState) { 286 TEST_F(NetworkStateHandlerTest, TechnologyState) {
262 ShillManagerClient::TestInterface* manager_test = 287 manager_test_->RemoveTechnology(shill::kTypeWimax);
263 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface();
264 manager_test->RemoveTechnology(shill::kTypeWimax);
265 message_loop_.RunUntilIdle(); 288 message_loop_.RunUntilIdle();
266 EXPECT_EQ( 289 EXPECT_EQ(
267 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE, 290 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
268 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 291 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
269 292
270 manager_test->AddTechnology(shill::kTypeWimax, false); 293 manager_test_->AddTechnology(shill::kTypeWimax, false);
271 message_loop_.RunUntilIdle(); 294 message_loop_.RunUntilIdle();
272 EXPECT_EQ( 295 EXPECT_EQ(
273 NetworkStateHandler::TECHNOLOGY_AVAILABLE, 296 NetworkStateHandler::TECHNOLOGY_AVAILABLE,
274 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 297 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
275 298
276 manager_test->SetTechnologyInitializing(shill::kTypeWimax, true); 299 manager_test_->SetTechnologyInitializing(shill::kTypeWimax, true);
277 message_loop_.RunUntilIdle(); 300 message_loop_.RunUntilIdle();
278 EXPECT_EQ( 301 EXPECT_EQ(
279 NetworkStateHandler::TECHNOLOGY_UNINITIALIZED, 302 NetworkStateHandler::TECHNOLOGY_UNINITIALIZED,
280 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 303 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
281 304
282 manager_test->SetTechnologyInitializing(shill::kTypeWimax, false); 305 manager_test_->SetTechnologyInitializing(shill::kTypeWimax, false);
283 network_state_handler_->SetTechnologyEnabled( 306 network_state_handler_->SetTechnologyEnabled(
284 NetworkTypePattern::Wimax(), true, network_handler::ErrorCallback()); 307 NetworkTypePattern::Wimax(), true, network_handler::ErrorCallback());
285 message_loop_.RunUntilIdle(); 308 message_loop_.RunUntilIdle();
286 EXPECT_EQ( 309 EXPECT_EQ(
287 NetworkStateHandler::TECHNOLOGY_ENABLED, 310 NetworkStateHandler::TECHNOLOGY_ENABLED,
288 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 311 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
289 312
290 manager_test->RemoveTechnology(shill::kTypeWimax); 313 manager_test_->RemoveTechnology(shill::kTypeWimax);
291 message_loop_.RunUntilIdle(); 314 message_loop_.RunUntilIdle();
292 EXPECT_EQ( 315 EXPECT_EQ(
293 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE, 316 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
294 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 317 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
295 } 318 }
296 319
297 TEST_F(NetworkStateHandlerTest, ServicePropertyChanged) { 320 TEST_F(NetworkStateHandlerTest, ServicePropertyChanged) {
298 // Set a service property. 321 // Set a service property.
299 const std::string eth1 = kShillManagerClientStubDefaultService; 322 const std::string eth1 = kShillManagerClientStubDefaultService;
300 EXPECT_EQ("", network_state_handler_->GetNetworkState(eth1)->security()); 323 EXPECT_EQ("", network_state_handler_->GetNetworkState(eth1)->security());
(...skipping 24 matching lines...) Expand all
325 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface(); 348 DBusThreadManager::Get()->GetShillProfileClient()->GetTestInterface();
326 EXPECT_TRUE(profile_test->AddService("/profile/default", wifi1)); 349 EXPECT_TRUE(profile_test->AddService("/profile/default", wifi1));
327 message_loop_.RunUntilIdle(); 350 message_loop_.RunUntilIdle();
328 network_state_handler_->UpdateManagerProperties(); 351 network_state_handler_->UpdateManagerProperties();
329 message_loop_.RunUntilIdle(); 352 message_loop_.RunUntilIdle();
330 EXPECT_EQ(1u, test_observer_->favorite_count()); 353 EXPECT_EQ(1u, test_observer_->favorite_count());
331 } 354 }
332 355
333 TEST_F(NetworkStateHandlerTest, NetworkConnectionStateChanged) { 356 TEST_F(NetworkStateHandlerTest, NetworkConnectionStateChanged) {
334 // Change a network state. 357 // Change a network state.
335 ShillServiceClient::TestInterface* service_test =
336 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
337 const std::string eth1 = kShillManagerClientStubDefaultService; 358 const std::string eth1 = kShillManagerClientStubDefaultService;
338 base::StringValue connection_state_idle_value(shill::kStateIdle); 359 base::StringValue connection_state_idle_value(shill::kStateIdle);
339 service_test->SetServiceProperty(eth1, shill::kStateProperty, 360 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
340 connection_state_idle_value); 361 connection_state_idle_value);
341 message_loop_.RunUntilIdle(); 362 message_loop_.RunUntilIdle();
342 EXPECT_EQ(shill::kStateIdle, 363 EXPECT_EQ(shill::kStateIdle,
343 test_observer_->NetworkConnectionStateForService(eth1)); 364 test_observer_->NetworkConnectionStateForService(eth1));
344 EXPECT_EQ(2, test_observer_->ConnectionStateChangesForService(eth1)); 365 EXPECT_EQ(2, test_observer_->ConnectionStateChangesForService(eth1));
345 // Confirm that changing the connection state to the same value does *not* 366 // Confirm that changing the connection state to the same value does *not*
346 // signal the observer. 367 // signal the observer.
347 service_test->SetServiceProperty(eth1, shill::kStateProperty, 368 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
348 connection_state_idle_value); 369 connection_state_idle_value);
349 message_loop_.RunUntilIdle(); 370 message_loop_.RunUntilIdle();
350 EXPECT_EQ(2, test_observer_->ConnectionStateChangesForService(eth1)); 371 EXPECT_EQ(2, test_observer_->ConnectionStateChangesForService(eth1));
351 } 372 }
352 373
353 TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) { 374 TEST_F(NetworkStateHandlerTest, DefaultServiceDisconnected) {
354 ShillManagerClient::TestInterface* manager_test =
355 DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface();
356 ASSERT_TRUE(manager_test);
357 ShillServiceClient::TestInterface* service_test =
358 DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
359 ASSERT_TRUE(service_test);
360
361 // Change the default network by changing the state of eth1 to Idle which
362 // should re-sort Manager.Services.
363 const std::string eth1 = kShillManagerClientStubDefaultService; 375 const std::string eth1 = kShillManagerClientStubDefaultService;
364 const std::string wifi1 = kShillManagerClientStubDefaultWireless; 376 const std::string wifi1 = kShillManagerClientStubDefaultWireless;
377
378 // Disconnect ethernet.
379 test_observer_->reset_network_change_count();
365 base::StringValue connection_state_idle_value(shill::kStateIdle); 380 base::StringValue connection_state_idle_value(shill::kStateIdle);
366 service_test->SetServiceProperty(eth1, shill::kStateProperty, 381 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
367 connection_state_idle_value); 382 connection_state_idle_value);
383 message_loop_.RunUntilIdle();
384 // Expect two changes: first when eth1 becomes disconnected, second when
385 // wifi1 becomes the default.
386 EXPECT_EQ(2u, test_observer_->default_network_change_count());
387 EXPECT_EQ(wifi1, test_observer_->default_network());
388
389 // Disconnect wifi.
390 test_observer_->reset_network_change_count();
391 service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
392 connection_state_idle_value);
393 message_loop_.RunUntilIdle();
394 EXPECT_EQ(1u, test_observer_->default_network_change_count());
395 EXPECT_EQ("", test_observer_->default_network());
396 }
397
398 TEST_F(NetworkStateHandlerTest, DefaultServiceConnected) {
399 const std::string eth1 = kShillManagerClientStubDefaultService;
400 const std::string wifi1 = kShillManagerClientStubDefaultWireless;
401
402 // Disconnect ethernet and wifi.
403 base::StringValue connection_state_idle_value(shill::kStateIdle);
404 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
405 connection_state_idle_value);
406 service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
407 connection_state_idle_value);
408 message_loop_.RunUntilIdle();
409 EXPECT_EQ(std::string(), test_observer_->default_network());
410
411 // Connect ethernet, should become the default network.
412 test_observer_->reset_network_change_count();
413 base::StringValue connection_state_ready_value(shill::kStateReady);
414 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
415 connection_state_ready_value);
416 message_loop_.RunUntilIdle();
417 EXPECT_EQ(eth1, test_observer_->default_network());
418 EXPECT_EQ(shill::kStateReady,
419 test_observer_->default_network_connection_state());
420 EXPECT_EQ(1u, test_observer_->default_network_change_count());
421 }
422
423 TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) {
424 const std::string eth1 = kShillManagerClientStubDefaultService;
425 // The default service should be eth1.
426 EXPECT_EQ(eth1, test_observer_->default_network());
427
428 // Change the default network by changing Manager.DefaultService.
429 test_observer_->reset_network_change_count();
430 const std::string wifi1 = kShillManagerClientStubDefaultWireless;
431 base::StringValue wifi1_value(wifi1);
432 manager_test_->SetManagerProperty(
433 shill::kDefaultServiceProperty, wifi1_value);
368 message_loop_.RunUntilIdle(); 434 message_loop_.RunUntilIdle();
369 EXPECT_EQ(wifi1, test_observer_->default_network()); 435 EXPECT_EQ(wifi1, test_observer_->default_network());
370 EXPECT_EQ(shill::kStateOnline, 436 EXPECT_EQ(1u, test_observer_->default_network_change_count());
437
438 // Change the state of the default network.
439 test_observer_->reset_network_change_count();
440 base::StringValue connection_state_ready_value(shill::kStateReady);
441 service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
442 connection_state_ready_value);
443 message_loop_.RunUntilIdle();
444 EXPECT_EQ(shill::kStateReady,
371 test_observer_->default_network_connection_state()); 445 test_observer_->default_network_connection_state());
372 // We should have seen 2 default network updates - for the default 446 EXPECT_EQ(1u, test_observer_->default_network_change_count());
373 // service change, and for the state change.
374 EXPECT_EQ(2u, test_observer_->default_network_change_count());
375 447
376 // Updating a property on the default network should trigger 448 // Updating a property on the default network should trigger
377 // a default network change. 449 // a default network change.
450 test_observer_->reset_network_change_count();
378 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( 451 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
379 dbus::ObjectPath(wifi1), 452 dbus::ObjectPath(wifi1),
380 shill::kSecurityProperty, base::StringValue("TestSecurity"), 453 shill::kSecurityProperty, base::StringValue("TestSecurity"),
381 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); 454 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
382 message_loop_.RunUntilIdle(); 455 message_loop_.RunUntilIdle();
383 EXPECT_EQ(3u, test_observer_->default_network_change_count()); 456 EXPECT_EQ(1u, test_observer_->default_network_change_count());
384 457
385 // No default network updates for signal strength changes. 458 // No default network updates for signal strength changes.
459 test_observer_->reset_network_change_count();
386 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( 460 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
387 dbus::ObjectPath(wifi1), 461 dbus::ObjectPath(wifi1),
388 shill::kSignalStrengthProperty, base::FundamentalValue(32), 462 shill::kSignalStrengthProperty, base::FundamentalValue(32),
389 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); 463 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
390 message_loop_.RunUntilIdle(); 464 message_loop_.RunUntilIdle();
391 EXPECT_EQ(3u, test_observer_->default_network_change_count()); 465 EXPECT_EQ(0u, test_observer_->default_network_change_count());
392 } 466 }
393 467
394 TEST_F(NetworkStateHandlerTest, RequestUpdate) { 468 TEST_F(NetworkStateHandlerTest, RequestUpdate) {
395 // Request an update for kShillManagerClientStubDefaultWireless. 469 // Request an update for kShillManagerClientStubDefaultWireless.
396 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService( 470 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(
397 kShillManagerClientStubDefaultWireless)); 471 kShillManagerClientStubDefaultWireless));
398 network_state_handler_->RequestUpdateForNetwork( 472 network_state_handler_->RequestUpdateForNetwork(
399 kShillManagerClientStubDefaultWireless); 473 kShillManagerClientStubDefaultWireless);
400 message_loop_.RunUntilIdle(); 474 message_loop_.RunUntilIdle();
401 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService( 475 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(
402 kShillManagerClientStubDefaultWireless)); 476 kShillManagerClientStubDefaultWireless));
403 477
404 // Request an update for all networks. 478 // Request an update for all networks.
405 network_state_handler_->RequestUpdateForAllNetworks(); 479 network_state_handler_->RequestUpdateForAllNetworks();
406 message_loop_.RunUntilIdle(); 480 message_loop_.RunUntilIdle();
407 // kShillManagerClientStubDefaultWireless should now have 3 updates 481 // kShillManagerClientStubDefaultWireless should now have 3 updates
408 EXPECT_EQ(3, test_observer_->PropertyUpdatesForService( 482 EXPECT_EQ(3, test_observer_->PropertyUpdatesForService(
409 kShillManagerClientStubDefaultWireless)); 483 kShillManagerClientStubDefaultWireless));
410 // Other networks should have 2 updates (inital + request). 484 // Other networks should have 2 updates (inital + request).
411 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService( 485 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(
412 kShillManagerClientStubDefaultService)); 486 kShillManagerClientStubDefaultService));
413 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService( 487 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(
414 kShillManagerClientStubWireless2)); 488 kShillManagerClientStubWireless2));
415 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService( 489 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(
416 kShillManagerClientStubCellular)); 490 kShillManagerClientStubCellular));
417 } 491 }
418 492
419 } // namespace chromeos 493 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/network/network_state_handler.cc ('k') | chromeos/network/shill_property_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698