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

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

Issue 2314853004: Remove calls to deprecated MessageLoop methods in chromeos. (Closed)
Patch Set: Created 4 years, 3 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
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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <memory> 10 #include <memory>
11 #include <set> 11 #include <set>
12 #include <string> 12 #include <string>
13 13
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/macros.h" 15 #include "base/macros.h"
16 #include "base/message_loop/message_loop.h" 16 #include "base/message_loop/message_loop.h"
17 #include "base/run_loop.h"
17 #include "base/values.h" 18 #include "base/values.h"
18 #include "chromeos/dbus/dbus_thread_manager.h" 19 #include "chromeos/dbus/dbus_thread_manager.h"
19 #include "chromeos/dbus/shill_device_client.h" 20 #include "chromeos/dbus/shill_device_client.h"
20 #include "chromeos/dbus/shill_ipconfig_client.h" 21 #include "chromeos/dbus/shill_ipconfig_client.h"
21 #include "chromeos/dbus/shill_manager_client.h" 22 #include "chromeos/dbus/shill_manager_client.h"
22 #include "chromeos/dbus/shill_profile_client.h" 23 #include "chromeos/dbus/shill_profile_client.h"
23 #include "chromeos/dbus/shill_service_client.h" 24 #include "chromeos/dbus/shill_service_client.h"
24 #include "chromeos/network/device_state.h" 25 #include "chromeos/network/device_state.h"
25 #include "chromeos/network/network_state.h" 26 #include "chromeos/network/network_state.h"
26 #include "chromeos/network/network_state_handler.h" 27 #include "chromeos/network/network_state_handler.h"
27 #include "chromeos/network/network_state_handler_observer.h" 28 #include "chromeos/network/network_state_handler_observer.h"
28 #include "dbus/object_path.h" 29 #include "dbus/object_path.h"
29 #include "testing/gtest/include/gtest/gtest.h" 30 #include "testing/gtest/include/gtest/gtest.h"
30 #include "third_party/cros_system_api/dbus/service_constants.h" 31 #include "third_party/cros_system_api/dbus/service_constants.h"
31 32
32 namespace { 33 namespace {
33 34
34 void ErrorCallbackFunction(const std::string& error_name, 35 void ErrorCallbackFunction(const std::string& error_name,
35 const std::string& error_message) { 36 const std::string& error_message) {
36 LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message; 37 LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message;
37 } 38 }
38 39
39 const std::string kShillManagerClientStubWifiDevice = 40 const char kShillManagerClientStubWifiDevice[] = "/device/stub_wifi_device1";
40 "/device/stub_wifi_device1"; 41 const char kShillManagerClientStubCellularDevice[] =
41 const std::string kShillManagerClientStubCellularDevice =
42 "/device/stub_cellular_device1"; 42 "/device/stub_cellular_device1";
43 const std::string kShillManagerClientStubDefaultService = "/service/eth1"; 43 const char kShillManagerClientStubDefaultService[] = "/service/eth1";
44 const std::string kShillManagerClientStubDefaultWifi = "/service/wifi1"; 44 const char kShillManagerClientStubDefaultWifi[] = "/service/wifi1";
45 const std::string kShillManagerClientStubWifi2 = "/service/wifi2"; 45 const char kShillManagerClientStubWifi2[] = "/service/wifi2";
46 const std::string kShillManagerClientStubCellular = "/service/cellular1"; 46 const char kShillManagerClientStubCellular[] = "/service/cellular1";
47 47
48 using chromeos::DeviceState; 48 using chromeos::DeviceState;
49 using chromeos::NetworkState; 49 using chromeos::NetworkState;
50 using chromeos::NetworkStateHandler; 50 using chromeos::NetworkStateHandler;
51 51
52 class TestObserver : public chromeos::NetworkStateHandlerObserver { 52 class TestObserver : public chromeos::NetworkStateHandlerObserver {
53 public: 53 public:
54 explicit TestObserver(NetworkStateHandler* handler) 54 explicit TestObserver(NetworkStateHandler* handler)
55 : handler_(handler), 55 : handler_(handler),
56 device_list_changed_count_(0), 56 device_list_changed_count_(0),
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 ~NetworkStateHandlerTest() override {} 180 ~NetworkStateHandlerTest() override {}
181 181
182 void SetUp() override { 182 void SetUp() override {
183 // Initialize DBusThreadManager with a stub implementation. 183 // Initialize DBusThreadManager with a stub implementation.
184 DBusThreadManager::Initialize(); 184 DBusThreadManager::Initialize();
185 SetupDefaultShillState(); 185 SetupDefaultShillState();
186 network_state_handler_.reset(new NetworkStateHandler); 186 network_state_handler_.reset(new NetworkStateHandler);
187 test_observer_.reset(new TestObserver(network_state_handler_.get())); 187 test_observer_.reset(new TestObserver(network_state_handler_.get()));
188 network_state_handler_->AddObserver(test_observer_.get(), FROM_HERE); 188 network_state_handler_->AddObserver(test_observer_.get(), FROM_HERE);
189 network_state_handler_->InitShillPropertyHandler(); 189 network_state_handler_->InitShillPropertyHandler();
190 message_loop_.RunUntilIdle(); 190 base::RunLoop().RunUntilIdle();
191 test_observer_->reset_change_counts(); 191 test_observer_->reset_change_counts();
192 } 192 }
193 193
194 void TearDown() override { 194 void TearDown() override {
195 network_state_handler_->RemoveObserver(test_observer_.get(), FROM_HERE); 195 network_state_handler_->RemoveObserver(test_observer_.get(), FROM_HERE);
196 test_observer_.reset(); 196 test_observer_.reset();
197 network_state_handler_.reset(); 197 network_state_handler_.reset();
198 DBusThreadManager::Shutdown(); 198 DBusThreadManager::Shutdown();
199 } 199 }
200 200
201 protected: 201 protected:
202 void AddService(const std::string& service_path, 202 void AddService(const std::string& service_path,
203 const std::string& guid, 203 const std::string& guid,
204 const std::string& name, 204 const std::string& name,
205 const std::string& type, 205 const std::string& type,
206 const std::string& state) { 206 const std::string& state) {
207 service_test_->AddService(service_path, guid, name, type, state, 207 service_test_->AddService(service_path, guid, name, type, state,
208 true /* add_to_visible */); 208 true /* add_to_visible */);
209 } 209 }
210 210
211 void SetupDefaultShillState() { 211 void SetupDefaultShillState() {
212 message_loop_.RunUntilIdle(); // Process any pending updates 212 base::RunLoop().RunUntilIdle(); // Process any pending updates
213 device_test_ = 213 device_test_ =
214 DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface(); 214 DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface();
215 ASSERT_TRUE(device_test_); 215 ASSERT_TRUE(device_test_);
216 device_test_->ClearDevices(); 216 device_test_->ClearDevices();
217 device_test_->AddDevice(kShillManagerClientStubWifiDevice, 217 device_test_->AddDevice(kShillManagerClientStubWifiDevice,
218 shill::kTypeWifi, "stub_wifi_device1"); 218 shill::kTypeWifi, "stub_wifi_device1");
219 device_test_->AddDevice(kShillManagerClientStubCellularDevice, 219 device_test_->AddDevice(kShillManagerClientStubCellularDevice,
220 shill::kTypeCellular, "stub_cellular_device1"); 220 shill::kTypeCellular, "stub_cellular_device1");
221 221
222 manager_test_ = 222 manager_test_ =
(...skipping 24 matching lines...) Expand all
247 "wifi2", 247 "wifi2",
248 shill::kTypeWifi, 248 shill::kTypeWifi,
249 shill::kStateIdle); 249 shill::kStateIdle);
250 AddService(kShillManagerClientStubCellular, 250 AddService(kShillManagerClientStubCellular,
251 "cellular1_guid", 251 "cellular1_guid",
252 "cellular1", 252 "cellular1",
253 shill::kTypeCellular, 253 shill::kTypeCellular,
254 shill::kStateIdle); 254 shill::kStateIdle);
255 } 255 }
256 256
257 void UpdateManagerProperties() { 257 void UpdateManagerProperties() { base::RunLoop().RunUntilIdle(); }
258 message_loop_.RunUntilIdle();
259 }
260 258
261 void SetServiceProperty(const std::string& service_path, 259 void SetServiceProperty(const std::string& service_path,
262 const std::string& key, 260 const std::string& key,
263 const base::Value& value) { 261 const base::Value& value) {
264 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( 262 DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
265 dbus::ObjectPath(service_path), key, value, 263 dbus::ObjectPath(service_path), key, value,
266 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); 264 base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
267 } 265 }
268 266
269 base::MessageLoopForUI message_loop_; 267 base::MessageLoopForUI message_loop_;
armansito 2016/09/06 22:04:32 ditto
270 std::unique_ptr<NetworkStateHandler> network_state_handler_; 268 std::unique_ptr<NetworkStateHandler> network_state_handler_;
271 std::unique_ptr<TestObserver> test_observer_; 269 std::unique_ptr<TestObserver> test_observer_;
272 ShillDeviceClient::TestInterface* device_test_; 270 ShillDeviceClient::TestInterface* device_test_;
273 ShillManagerClient::TestInterface* manager_test_; 271 ShillManagerClient::TestInterface* manager_test_;
274 ShillProfileClient::TestInterface* profile_test_; 272 ShillProfileClient::TestInterface* profile_test_;
275 ShillServiceClient::TestInterface* service_test_; 273 ShillServiceClient::TestInterface* service_test_;
276 274
277 private: 275 private:
278 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerTest); 276 DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerTest);
279 }; 277 };
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 const std::string wifi_favorite_path = "/service/wifi_faviorite"; 317 const std::string wifi_favorite_path = "/service/wifi_faviorite";
320 service_test_->AddService(wifi_favorite_path, 318 service_test_->AddService(wifi_favorite_path,
321 "wifi_faviorite_guid", 319 "wifi_faviorite_guid",
322 "wifi_faviorite", 320 "wifi_faviorite",
323 shill::kTypeWifi, 321 shill::kTypeWifi,
324 shill::kStateIdle, 322 shill::kStateIdle,
325 false /* add_to_visible */); 323 false /* add_to_visible */);
326 profile_test_->AddProfile(profile, "" /* userhash */); 324 profile_test_->AddProfile(profile, "" /* userhash */);
327 EXPECT_TRUE(profile_test_->AddService(profile, wifi_favorite_path)); 325 EXPECT_TRUE(profile_test_->AddService(profile, wifi_favorite_path));
328 UpdateManagerProperties(); 326 UpdateManagerProperties();
329 message_loop_.RunUntilIdle(); 327 base::RunLoop().RunUntilIdle();
330 EXPECT_EQ(kNumShillManagerClientStubImplServices + 1, 328 EXPECT_EQ(kNumShillManagerClientStubImplServices + 1,
331 test_observer_->network_count()); 329 test_observer_->network_count());
332 330
333 // Get all networks. 331 // Get all networks.
334 NetworkStateHandler::NetworkStateList networks; 332 NetworkStateHandler::NetworkStateList networks;
335 network_state_handler_->GetNetworkListByType(NetworkTypePattern::Default(), 333 network_state_handler_->GetNetworkListByType(NetworkTypePattern::Default(),
336 false /* configured_only */, 334 false /* configured_only */,
337 false /* visible_only */, 335 false /* visible_only */,
338 0 /* no limit */, 336 0 /* no limit */,
339 &networks); 337 &networks);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 test_observer_->network_count()); 398 test_observer_->network_count());
401 // Add a non-visible network to the profile. 399 // Add a non-visible network to the profile.
402 const std::string profile = "/profile/profile1"; 400 const std::string profile = "/profile/profile1";
403 const std::string wifi_favorite_path = "/service/wifi_faviorite"; 401 const std::string wifi_favorite_path = "/service/wifi_faviorite";
404 service_test_->AddService(wifi_favorite_path, 402 service_test_->AddService(wifi_favorite_path,
405 "wifi_faviorite_guid", 403 "wifi_faviorite_guid",
406 "wifi_faviorite", 404 "wifi_faviorite",
407 shill::kTypeWifi, 405 shill::kTypeWifi,
408 shill::kStateIdle, 406 shill::kStateIdle,
409 false /* add_to_visible */); 407 false /* add_to_visible */);
410 message_loop_.RunUntilIdle(); 408 base::RunLoop().RunUntilIdle();
411 EXPECT_EQ(kNumShillManagerClientStubImplServices + 1, 409 EXPECT_EQ(kNumShillManagerClientStubImplServices + 1,
412 test_observer_->network_count()); 410 test_observer_->network_count());
413 411
414 // Get visible networks. 412 // Get visible networks.
415 NetworkStateHandler::NetworkStateList networks; 413 NetworkStateHandler::NetworkStateList networks;
416 network_state_handler_->GetVisibleNetworkList(&networks); 414 network_state_handler_->GetVisibleNetworkList(&networks);
417 EXPECT_EQ(kNumShillManagerClientStubImplServices, networks.size()); 415 EXPECT_EQ(kNumShillManagerClientStubImplServices, networks.size());
418 416
419 // Change the visible state of a network. 417 // Change the visible state of a network.
420 SetServiceProperty(kShillManagerClientStubWifi2, shill::kVisibleProperty, 418 SetServiceProperty(kShillManagerClientStubWifi2, shill::kVisibleProperty,
421 base::FundamentalValue(false)); 419 base::FundamentalValue(false));
422 message_loop_.RunUntilIdle(); 420 base::RunLoop().RunUntilIdle();
423 network_state_handler_->GetVisibleNetworkList(&networks); 421 network_state_handler_->GetVisibleNetworkList(&networks);
424 EXPECT_EQ(kNumShillManagerClientStubImplServices - 1, networks.size()); 422 EXPECT_EQ(kNumShillManagerClientStubImplServices - 1, networks.size());
425 } 423 }
426 424
427 TEST_F(NetworkStateHandlerTest, TechnologyChanged) { 425 TEST_F(NetworkStateHandlerTest, TechnologyChanged) {
428 // Disable a technology. Will immediately set the state to AVAILABLE and 426 // Disable a technology. Will immediately set the state to AVAILABLE and
429 // notify observers. 427 // notify observers.
430 network_state_handler_->SetTechnologyEnabled( 428 network_state_handler_->SetTechnologyEnabled(
431 NetworkTypePattern::WiFi(), false, network_handler::ErrorCallback()); 429 NetworkTypePattern::WiFi(), false, network_handler::ErrorCallback());
432 EXPECT_EQ(1u, test_observer_->device_list_changed_count()); 430 EXPECT_EQ(1u, test_observer_->device_list_changed_count());
433 EXPECT_EQ( 431 EXPECT_EQ(
434 NetworkStateHandler::TECHNOLOGY_AVAILABLE, 432 NetworkStateHandler::TECHNOLOGY_AVAILABLE,
435 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi())); 433 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
436 434
437 // Run the message loop. An additional notification will be received when 435 // Run the message loop. An additional notification will be received when
438 // Shill updates the enabled technologies. The state should remain AVAILABLE. 436 // Shill updates the enabled technologies. The state should remain AVAILABLE.
439 test_observer_->reset_change_counts(); 437 test_observer_->reset_change_counts();
440 message_loop_.RunUntilIdle(); 438 base::RunLoop().RunUntilIdle();
441 EXPECT_EQ(1u, test_observer_->device_list_changed_count()); 439 EXPECT_EQ(1u, test_observer_->device_list_changed_count());
442 EXPECT_EQ( 440 EXPECT_EQ(
443 NetworkStateHandler::TECHNOLOGY_AVAILABLE, 441 NetworkStateHandler::TECHNOLOGY_AVAILABLE,
444 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi())); 442 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
445 443
446 // Enable a technology. Will immediately set the state to ENABLING and 444 // Enable a technology. Will immediately set the state to ENABLING and
447 // notify observers. 445 // notify observers.
448 test_observer_->reset_change_counts(); 446 test_observer_->reset_change_counts();
449 network_state_handler_->SetTechnologyEnabled( 447 network_state_handler_->SetTechnologyEnabled(
450 NetworkTypePattern::WiFi(), true, network_handler::ErrorCallback()); 448 NetworkTypePattern::WiFi(), true, network_handler::ErrorCallback());
451 EXPECT_EQ(1u, test_observer_->device_list_changed_count()); 449 EXPECT_EQ(1u, test_observer_->device_list_changed_count());
452 EXPECT_EQ( 450 EXPECT_EQ(
453 NetworkStateHandler::TECHNOLOGY_ENABLING, 451 NetworkStateHandler::TECHNOLOGY_ENABLING,
454 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi())); 452 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
455 453
456 // Run the message loop. State should change to ENABLED. 454 // Run the message loop. State should change to ENABLED.
457 test_observer_->reset_change_counts(); 455 test_observer_->reset_change_counts();
458 message_loop_.RunUntilIdle(); 456 base::RunLoop().RunUntilIdle();
459 EXPECT_EQ(1u, test_observer_->device_list_changed_count()); 457 EXPECT_EQ(1u, test_observer_->device_list_changed_count());
460 EXPECT_EQ( 458 EXPECT_EQ(
461 NetworkStateHandler::TECHNOLOGY_ENABLED, 459 NetworkStateHandler::TECHNOLOGY_ENABLED,
462 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi())); 460 network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
463 } 461 }
464 462
465 TEST_F(NetworkStateHandlerTest, TechnologyState) { 463 TEST_F(NetworkStateHandlerTest, TechnologyState) {
466 manager_test_->RemoveTechnology(shill::kTypeWimax); 464 manager_test_->RemoveTechnology(shill::kTypeWimax);
467 message_loop_.RunUntilIdle(); 465 base::RunLoop().RunUntilIdle();
468 EXPECT_EQ( 466 EXPECT_EQ(
469 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE, 467 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
470 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 468 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
471 469
472 manager_test_->AddTechnology(shill::kTypeWimax, false); 470 manager_test_->AddTechnology(shill::kTypeWimax, false);
473 message_loop_.RunUntilIdle(); 471 base::RunLoop().RunUntilIdle();
474 EXPECT_EQ( 472 EXPECT_EQ(
475 NetworkStateHandler::TECHNOLOGY_AVAILABLE, 473 NetworkStateHandler::TECHNOLOGY_AVAILABLE,
476 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 474 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
477 475
478 manager_test_->SetTechnologyInitializing(shill::kTypeWimax, true); 476 manager_test_->SetTechnologyInitializing(shill::kTypeWimax, true);
479 message_loop_.RunUntilIdle(); 477 base::RunLoop().RunUntilIdle();
480 EXPECT_EQ( 478 EXPECT_EQ(
481 NetworkStateHandler::TECHNOLOGY_UNINITIALIZED, 479 NetworkStateHandler::TECHNOLOGY_UNINITIALIZED,
482 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 480 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
483 481
484 manager_test_->SetTechnologyInitializing(shill::kTypeWimax, false); 482 manager_test_->SetTechnologyInitializing(shill::kTypeWimax, false);
485 network_state_handler_->SetTechnologyEnabled( 483 network_state_handler_->SetTechnologyEnabled(
486 NetworkTypePattern::Wimax(), true, network_handler::ErrorCallback()); 484 NetworkTypePattern::Wimax(), true, network_handler::ErrorCallback());
487 message_loop_.RunUntilIdle(); 485 base::RunLoop().RunUntilIdle();
488 EXPECT_EQ( 486 EXPECT_EQ(
489 NetworkStateHandler::TECHNOLOGY_ENABLED, 487 NetworkStateHandler::TECHNOLOGY_ENABLED,
490 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 488 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
491 489
492 manager_test_->RemoveTechnology(shill::kTypeWimax); 490 manager_test_->RemoveTechnology(shill::kTypeWimax);
493 message_loop_.RunUntilIdle(); 491 base::RunLoop().RunUntilIdle();
494 EXPECT_EQ( 492 EXPECT_EQ(
495 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE, 493 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
496 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 494 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
497 } 495 }
498 496
499 TEST_F(NetworkStateHandlerTest, ServicePropertyChanged) { 497 TEST_F(NetworkStateHandlerTest, ServicePropertyChanged) {
500 // Set a service property. 498 // Set a service property.
501 const std::string eth1 = kShillManagerClientStubDefaultService; 499 const std::string eth1 = kShillManagerClientStubDefaultService;
502 const NetworkState* ethernet = network_state_handler_->GetNetworkState(eth1); 500 const NetworkState* ethernet = network_state_handler_->GetNetworkState(eth1);
503 ASSERT_TRUE(ethernet); 501 ASSERT_TRUE(ethernet);
504 EXPECT_EQ("", ethernet->security_class()); 502 EXPECT_EQ("", ethernet->security_class());
505 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(eth1)); 503 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(eth1));
506 base::StringValue security_class_value("TestSecurityClass"); 504 base::StringValue security_class_value("TestSecurityClass");
507 SetServiceProperty(eth1, shill::kSecurityClassProperty, security_class_value); 505 SetServiceProperty(eth1, shill::kSecurityClassProperty, security_class_value);
508 message_loop_.RunUntilIdle(); 506 base::RunLoop().RunUntilIdle();
509 ethernet = network_state_handler_->GetNetworkState(eth1); 507 ethernet = network_state_handler_->GetNetworkState(eth1);
510 EXPECT_EQ("TestSecurityClass", ethernet->security_class()); 508 EXPECT_EQ("TestSecurityClass", ethernet->security_class());
511 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(eth1)); 509 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(eth1));
512 510
513 // Changing a service to the existing value should not trigger an update. 511 // Changing a service to the existing value should not trigger an update.
514 SetServiceProperty(eth1, shill::kSecurityClassProperty, security_class_value); 512 SetServiceProperty(eth1, shill::kSecurityClassProperty, security_class_value);
515 message_loop_.RunUntilIdle(); 513 base::RunLoop().RunUntilIdle();
516 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(eth1)); 514 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(eth1));
517 } 515 }
518 516
519 TEST_F(NetworkStateHandlerTest, GetState) { 517 TEST_F(NetworkStateHandlerTest, GetState) {
520 const std::string profile = "/profile/profile1"; 518 const std::string profile = "/profile/profile1";
521 const std::string wifi_path = kShillManagerClientStubDefaultWifi; 519 const std::string wifi_path = kShillManagerClientStubDefaultWifi;
522 520
523 // Add a wifi service to a Profile. 521 // Add a wifi service to a Profile.
524 profile_test_->AddProfile(profile, "" /* userhash */); 522 profile_test_->AddProfile(profile, "" /* userhash */);
525 EXPECT_TRUE(profile_test_->AddService(profile, wifi_path)); 523 EXPECT_TRUE(profile_test_->AddService(profile, wifi_path));
(...skipping 18 matching lines...) Expand all
544 } 542 }
545 543
546 TEST_F(NetworkStateHandlerTest, NetworkConnectionStateChanged) { 544 TEST_F(NetworkStateHandlerTest, NetworkConnectionStateChanged) {
547 const std::string eth1 = kShillManagerClientStubDefaultService; 545 const std::string eth1 = kShillManagerClientStubDefaultService;
548 EXPECT_EQ(0, test_observer_->ConnectionStateChangesForService(eth1)); 546 EXPECT_EQ(0, test_observer_->ConnectionStateChangesForService(eth1));
549 547
550 // Change a network state. 548 // Change a network state.
551 base::StringValue connection_state_idle_value(shill::kStateIdle); 549 base::StringValue connection_state_idle_value(shill::kStateIdle);
552 service_test_->SetServiceProperty(eth1, shill::kStateProperty, 550 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
553 connection_state_idle_value); 551 connection_state_idle_value);
554 message_loop_.RunUntilIdle(); 552 base::RunLoop().RunUntilIdle();
555 EXPECT_EQ(shill::kStateIdle, 553 EXPECT_EQ(shill::kStateIdle,
556 test_observer_->NetworkConnectionStateForService(eth1)); 554 test_observer_->NetworkConnectionStateForService(eth1));
557 EXPECT_EQ(1, test_observer_->ConnectionStateChangesForService(eth1)); 555 EXPECT_EQ(1, test_observer_->ConnectionStateChangesForService(eth1));
558 // Confirm that changing the connection state to the same value does *not* 556 // Confirm that changing the connection state to the same value does *not*
559 // signal the observer. 557 // signal the observer.
560 service_test_->SetServiceProperty(eth1, shill::kStateProperty, 558 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
561 connection_state_idle_value); 559 connection_state_idle_value);
562 message_loop_.RunUntilIdle(); 560 base::RunLoop().RunUntilIdle();
563 EXPECT_EQ(1, test_observer_->ConnectionStateChangesForService(eth1)); 561 EXPECT_EQ(1, test_observer_->ConnectionStateChangesForService(eth1));
564 } 562 }
565 563
566 TEST_F(NetworkStateHandlerTest, DefaultServiceDisconnected) { 564 TEST_F(NetworkStateHandlerTest, DefaultServiceDisconnected) {
567 const std::string eth1 = kShillManagerClientStubDefaultService; 565 const std::string eth1 = kShillManagerClientStubDefaultService;
568 const std::string wifi1 = kShillManagerClientStubDefaultWifi; 566 const std::string wifi1 = kShillManagerClientStubDefaultWifi;
569 567
570 EXPECT_EQ(0u, test_observer_->default_network_change_count()); 568 EXPECT_EQ(0u, test_observer_->default_network_change_count());
571 // Disconnect ethernet. 569 // Disconnect ethernet.
572 base::StringValue connection_state_idle_value(shill::kStateIdle); 570 base::StringValue connection_state_idle_value(shill::kStateIdle);
573 service_test_->SetServiceProperty(eth1, shill::kStateProperty, 571 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
574 connection_state_idle_value); 572 connection_state_idle_value);
575 message_loop_.RunUntilIdle(); 573 base::RunLoop().RunUntilIdle();
576 // Expect two changes: first when eth1 becomes disconnected, second when 574 // Expect two changes: first when eth1 becomes disconnected, second when
577 // wifi1 becomes the default. 575 // wifi1 becomes the default.
578 EXPECT_EQ(2u, test_observer_->default_network_change_count()); 576 EXPECT_EQ(2u, test_observer_->default_network_change_count());
579 EXPECT_EQ(wifi1, test_observer_->default_network()); 577 EXPECT_EQ(wifi1, test_observer_->default_network());
580 578
581 // Disconnect wifi. 579 // Disconnect wifi.
582 test_observer_->reset_change_counts(); 580 test_observer_->reset_change_counts();
583 service_test_->SetServiceProperty(wifi1, shill::kStateProperty, 581 service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
584 connection_state_idle_value); 582 connection_state_idle_value);
585 message_loop_.RunUntilIdle(); 583 base::RunLoop().RunUntilIdle();
586 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 584 EXPECT_EQ(1u, test_observer_->default_network_change_count());
587 EXPECT_EQ("", test_observer_->default_network()); 585 EXPECT_EQ("", test_observer_->default_network());
588 } 586 }
589 587
590 TEST_F(NetworkStateHandlerTest, DefaultServiceConnected) { 588 TEST_F(NetworkStateHandlerTest, DefaultServiceConnected) {
591 const std::string eth1 = kShillManagerClientStubDefaultService; 589 const std::string eth1 = kShillManagerClientStubDefaultService;
592 const std::string wifi1 = kShillManagerClientStubDefaultWifi; 590 const std::string wifi1 = kShillManagerClientStubDefaultWifi;
593 591
594 // Disconnect ethernet and wifi. 592 // Disconnect ethernet and wifi.
595 base::StringValue connection_state_idle_value(shill::kStateIdle); 593 base::StringValue connection_state_idle_value(shill::kStateIdle);
596 service_test_->SetServiceProperty(eth1, shill::kStateProperty, 594 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
597 connection_state_idle_value); 595 connection_state_idle_value);
598 service_test_->SetServiceProperty(wifi1, shill::kStateProperty, 596 service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
599 connection_state_idle_value); 597 connection_state_idle_value);
600 message_loop_.RunUntilIdle(); 598 base::RunLoop().RunUntilIdle();
601 EXPECT_EQ(std::string(), test_observer_->default_network()); 599 EXPECT_EQ(std::string(), test_observer_->default_network());
602 600
603 // Connect ethernet, should become the default network. 601 // Connect ethernet, should become the default network.
604 test_observer_->reset_change_counts(); 602 test_observer_->reset_change_counts();
605 base::StringValue connection_state_ready_value(shill::kStateReady); 603 base::StringValue connection_state_ready_value(shill::kStateReady);
606 service_test_->SetServiceProperty(eth1, shill::kStateProperty, 604 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
607 connection_state_ready_value); 605 connection_state_ready_value);
608 message_loop_.RunUntilIdle(); 606 base::RunLoop().RunUntilIdle();
609 EXPECT_EQ(eth1, test_observer_->default_network()); 607 EXPECT_EQ(eth1, test_observer_->default_network());
610 EXPECT_EQ(shill::kStateReady, 608 EXPECT_EQ(shill::kStateReady,
611 test_observer_->default_network_connection_state()); 609 test_observer_->default_network_connection_state());
612 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 610 EXPECT_EQ(1u, test_observer_->default_network_change_count());
613 } 611 }
614 612
615 TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) { 613 TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) {
616 const std::string eth1 = kShillManagerClientStubDefaultService; 614 const std::string eth1 = kShillManagerClientStubDefaultService;
617 // The default service should be eth1. 615 // The default service should be eth1.
618 EXPECT_EQ(eth1, test_observer_->default_network()); 616 EXPECT_EQ(eth1, test_observer_->default_network());
619 617
620 // Change the default network by changing Manager.DefaultService. 618 // Change the default network by changing Manager.DefaultService.
621 // This should only generate one default network notification when the 619 // This should only generate one default network notification when the
622 // DefaultService property changes. 620 // DefaultService property changes.
623 const std::string wifi1 = kShillManagerClientStubDefaultWifi; 621 const std::string wifi1 = kShillManagerClientStubDefaultWifi;
624 SetServiceProperty(eth1, shill::kStateProperty, 622 SetServiceProperty(eth1, shill::kStateProperty,
625 base::StringValue(shill::kStateIdle)); 623 base::StringValue(shill::kStateIdle));
626 manager_test_->SetManagerProperty(shill::kDefaultServiceProperty, 624 manager_test_->SetManagerProperty(shill::kDefaultServiceProperty,
627 base::StringValue(wifi1)); 625 base::StringValue(wifi1));
628 message_loop_.RunUntilIdle(); 626 base::RunLoop().RunUntilIdle();
629 EXPECT_EQ(wifi1, test_observer_->default_network()); 627 EXPECT_EQ(wifi1, test_observer_->default_network());
630 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 628 EXPECT_EQ(1u, test_observer_->default_network_change_count());
631 629
632 // Change the state of the default network. This should generate a 630 // Change the state of the default network. This should generate a
633 // default network notification. 631 // default network notification.
634 test_observer_->reset_change_counts(); 632 test_observer_->reset_change_counts();
635 service_test_->SetServiceProperty(wifi1, shill::kStateProperty, 633 service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
636 base::StringValue(shill::kStateReady)); 634 base::StringValue(shill::kStateReady));
637 message_loop_.RunUntilIdle(); 635 base::RunLoop().RunUntilIdle();
638 EXPECT_EQ(shill::kStateReady, 636 EXPECT_EQ(shill::kStateReady,
639 test_observer_->default_network_connection_state()); 637 test_observer_->default_network_connection_state());
640 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 638 EXPECT_EQ(1u, test_observer_->default_network_change_count());
641 639
642 // Updating a property on the default network should also trigger 640 // Updating a property on the default network should also trigger
643 // a default network change. 641 // a default network change.
644 test_observer_->reset_change_counts(); 642 test_observer_->reset_change_counts();
645 SetServiceProperty(wifi1, shill::kSecurityClassProperty, 643 SetServiceProperty(wifi1, shill::kSecurityClassProperty,
646 base::StringValue("TestSecurityClass")); 644 base::StringValue("TestSecurityClass"));
647 message_loop_.RunUntilIdle(); 645 base::RunLoop().RunUntilIdle();
648 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 646 EXPECT_EQ(1u, test_observer_->default_network_change_count());
649 647
650 // No default network updates for signal strength changes. 648 // No default network updates for signal strength changes.
651 test_observer_->reset_change_counts(); 649 test_observer_->reset_change_counts();
652 SetServiceProperty(wifi1, shill::kSignalStrengthProperty, 650 SetServiceProperty(wifi1, shill::kSignalStrengthProperty,
653 base::FundamentalValue(32)); 651 base::FundamentalValue(32));
654 message_loop_.RunUntilIdle(); 652 base::RunLoop().RunUntilIdle();
655 EXPECT_EQ(0u, test_observer_->default_network_change_count()); 653 EXPECT_EQ(0u, test_observer_->default_network_change_count());
656 654
657 // Change the default network to a Connecting network, then set the 655 // Change the default network to a Connecting network, then set the
658 // state to Connected. The DefaultNetworkChange notification should only 656 // state to Connected. The DefaultNetworkChange notification should only
659 // fire once when the network is connected. 657 // fire once when the network is connected.
660 test_observer_->reset_change_counts(); 658 test_observer_->reset_change_counts();
661 SetServiceProperty(wifi1, shill::kStateProperty, 659 SetServiceProperty(wifi1, shill::kStateProperty,
662 base::StringValue(shill::kStateIdle)); 660 base::StringValue(shill::kStateIdle));
663 message_loop_.RunUntilIdle(); 661 base::RunLoop().RunUntilIdle();
664 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 662 EXPECT_EQ(1u, test_observer_->default_network_change_count());
665 EXPECT_EQ(std::string(), test_observer_->default_network()); 663 EXPECT_EQ(std::string(), test_observer_->default_network());
666 664
667 const std::string wifi2 = kShillManagerClientStubWifi2; 665 const std::string wifi2 = kShillManagerClientStubWifi2;
668 manager_test_->SetManagerProperty(shill::kDefaultServiceProperty, 666 manager_test_->SetManagerProperty(shill::kDefaultServiceProperty,
669 base::StringValue(wifi2)); 667 base::StringValue(wifi2));
670 message_loop_.RunUntilIdle(); 668 base::RunLoop().RunUntilIdle();
671 EXPECT_EQ(1u, test_observer_->default_network_change_count()); 669 EXPECT_EQ(1u, test_observer_->default_network_change_count());
672 // Change the connection state of the default network, observer should fire. 670 // Change the connection state of the default network, observer should fire.
673 SetServiceProperty(wifi2, shill::kStateProperty, 671 SetServiceProperty(wifi2, shill::kStateProperty,
674 base::StringValue(shill::kStateReady)); 672 base::StringValue(shill::kStateReady));
675 message_loop_.RunUntilIdle(); 673 base::RunLoop().RunUntilIdle();
676 EXPECT_EQ(wifi2, test_observer_->default_network()); 674 EXPECT_EQ(wifi2, test_observer_->default_network());
677 EXPECT_EQ(2u, test_observer_->default_network_change_count()); 675 EXPECT_EQ(2u, test_observer_->default_network_change_count());
678 } 676 }
679 677
680 TEST_F(NetworkStateHandlerTest, RequestUpdate) { 678 TEST_F(NetworkStateHandlerTest, RequestUpdate) {
681 // Request an update for kShillManagerClientStubDefaultWifi. 679 // Request an update for kShillManagerClientStubDefaultWifi.
682 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService( 680 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(
683 kShillManagerClientStubDefaultWifi)); 681 kShillManagerClientStubDefaultWifi));
684 network_state_handler_->RequestUpdateForNetwork( 682 network_state_handler_->RequestUpdateForNetwork(
685 kShillManagerClientStubDefaultWifi); 683 kShillManagerClientStubDefaultWifi);
686 message_loop_.RunUntilIdle(); 684 base::RunLoop().RunUntilIdle();
687 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService( 685 EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(
688 kShillManagerClientStubDefaultWifi)); 686 kShillManagerClientStubDefaultWifi));
689 } 687 }
690 688
691 TEST_F(NetworkStateHandlerTest, NetworkGuidInProfile) { 689 TEST_F(NetworkStateHandlerTest, NetworkGuidInProfile) {
692 const std::string profile = "/profile/profile1"; 690 const std::string profile = "/profile/profile1";
693 const std::string wifi_path = "/service/wifi_with_guid"; 691 const std::string wifi_path = "/service/wifi_with_guid";
694 const std::string wifi_guid = "wifi_guid"; 692 const std::string wifi_guid = "wifi_guid";
695 const std::string wifi_name = "WifiWithGuid"; 693 const std::string wifi_name = "WifiWithGuid";
696 const bool is_service_configured = true; 694 const bool is_service_configured = true;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 kShillManagerClientStubDefaultWifi, shill::kIPConfigProperty, 795 kShillManagerClientStubDefaultWifi, shill::kIPConfigProperty,
798 base::StringValue(kIPConfigPath)); 796 base::StringValue(kIPConfigPath));
799 UpdateManagerProperties(); 797 UpdateManagerProperties();
800 EXPECT_EQ(1, test_observer_->PropertyUpdatesForDevice( 798 EXPECT_EQ(1, test_observer_->PropertyUpdatesForDevice(
801 kShillManagerClientStubWifiDevice)); 799 kShillManagerClientStubWifiDevice));
802 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService( 800 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(
803 kShillManagerClientStubDefaultWifi)); 801 kShillManagerClientStubDefaultWifi));
804 } 802 }
805 803
806 } // namespace chromeos 804 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698