Chromium Code Reviews| Index: chromeos/network/network_state_handler_unittest.cc |
| diff --git a/chromeos/network/network_state_handler_unittest.cc b/chromeos/network/network_state_handler_unittest.cc |
| index ae3f5b20ed9c8a4f288922ee26b232d9b3be0518..f41a901c1f787e22fc22b0ec48cd1e028ca0fbf6 100644 |
| --- a/chromeos/network/network_state_handler_unittest.cc |
| +++ b/chromeos/network/network_state_handler_unittest.cc |
| @@ -82,6 +82,7 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver { |
| } |
| void DefaultNetworkChanged(const NetworkState* network) override { |
| + EXPECT_TRUE(!network || network->IsConnectedState()); |
| ++default_network_change_count_; |
| default_network_ = network ? network->path() : ""; |
| default_network_connection_state_ = |
| @@ -169,10 +170,10 @@ namespace chromeos { |
| class NetworkStateHandlerTest : public testing::Test { |
| public: |
| NetworkStateHandlerTest() |
| - : device_test_(NULL), |
| - manager_test_(NULL), |
| - profile_test_(NULL), |
| - service_test_(NULL) {} |
| + : device_test_(nullptr), |
|
pneubeck (no reviews)
2015/03/12 19:40:09
nit: you could put all of these also to the declar
stevenjb
2015/03/12 19:57:07
I'd rather do that consistently throughout these c
|
| + manager_test_(nullptr), |
| + profile_test_(nullptr), |
| + service_test_(nullptr) {} |
| ~NetworkStateHandlerTest() override {} |
| void SetUp() override { |
| @@ -254,6 +255,14 @@ class NetworkStateHandlerTest : public testing::Test { |
| message_loop_.RunUntilIdle(); |
| } |
| + void SetServiceProperty(const std::string& service_path, |
| + const std::string& key, |
| + const base::Value& value) { |
| + DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( |
| + dbus::ObjectPath(service_path), key, value, |
| + base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); |
| + } |
| + |
| base::MessageLoopForUI message_loop_; |
| scoped_ptr<NetworkStateHandler> network_state_handler_; |
| scoped_ptr<TestObserver> test_observer_; |
| @@ -405,10 +414,8 @@ TEST_F(NetworkStateHandlerTest, GetVisibleNetworks) { |
| EXPECT_EQ(kNumShillManagerClientStubImplServices, networks.size()); |
| // Change the visible state of a network. |
| - DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( |
| - dbus::ObjectPath(kShillManagerClientStubWifi2), |
| - shill::kVisibleProperty, base::FundamentalValue(false), |
| - base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); |
| + SetServiceProperty(kShillManagerClientStubWifi2, shill::kVisibleProperty, |
| + base::FundamentalValue(false)); |
| message_loop_.RunUntilIdle(); |
| network_state_handler_->GetVisibleNetworkList(&networks); |
| EXPECT_EQ(kNumShillManagerClientStubImplServices - 1, networks.size()); |
| @@ -494,20 +501,14 @@ TEST_F(NetworkStateHandlerTest, ServicePropertyChanged) { |
| EXPECT_EQ("", ethernet->security_class()); |
| EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(eth1)); |
| base::StringValue security_class_value("TestSecurityClass"); |
| - DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( |
| - dbus::ObjectPath(eth1), |
| - shill::kSecurityClassProperty, security_class_value, |
| - base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); |
| + SetServiceProperty(eth1, shill::kSecurityClassProperty, security_class_value); |
| message_loop_.RunUntilIdle(); |
| ethernet = network_state_handler_->GetNetworkState(eth1); |
| EXPECT_EQ("TestSecurityClass", ethernet->security_class()); |
| EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(eth1)); |
| // Changing a service to the existing value should not trigger an update. |
| - DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( |
| - dbus::ObjectPath(eth1), |
| - shill::kSecurityClassProperty, security_class_value, |
| - base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); |
| + SetServiceProperty(eth1, shill::kSecurityClassProperty, security_class_value); |
| message_loop_.RunUntilIdle(); |
| EXPECT_EQ(2, test_observer_->PropertyUpdatesForService(eth1)); |
| } |
| @@ -615,18 +616,18 @@ TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) { |
| // Change the default network by changing Manager.DefaultService. |
| const std::string wifi1 = kShillManagerClientStubDefaultWifi; |
| - base::StringValue wifi1_value(wifi1); |
| - manager_test_->SetManagerProperty( |
| - shill::kDefaultServiceProperty, wifi1_value); |
| + SetServiceProperty(eth1, shill::kStateProperty, |
| + base::StringValue(shill::kStateIdle)); |
|
pneubeck (no reviews)
2015/03/12 19:40:09
since both of these calls send a notification to N
stevenjb
2015/03/12 19:57:07
Done.
|
| + manager_test_->SetManagerProperty(shill::kDefaultServiceProperty, |
| + base::StringValue(wifi1)); |
| message_loop_.RunUntilIdle(); |
| EXPECT_EQ(wifi1, test_observer_->default_network()); |
| EXPECT_EQ(1u, test_observer_->default_network_change_count()); |
| // Change the state of the default network. |
| test_observer_->reset_change_counts(); |
| - base::StringValue connection_state_ready_value(shill::kStateReady); |
| service_test_->SetServiceProperty(wifi1, shill::kStateProperty, |
| - connection_state_ready_value); |
| + base::StringValue(shill::kStateReady)); |
| message_loop_.RunUntilIdle(); |
| EXPECT_EQ(shill::kStateReady, |
| test_observer_->default_network_connection_state()); |
| @@ -635,21 +636,39 @@ TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) { |
| // Updating a property on the default network should trigger |
| // a default network change. |
| test_observer_->reset_change_counts(); |
| - DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( |
| - dbus::ObjectPath(wifi1), |
| - shill::kSecurityClassProperty, base::StringValue("TestSecurityClass"), |
| - base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); |
| + SetServiceProperty(wifi1, shill::kSecurityClassProperty, |
| + base::StringValue("TestSecurityClass")); |
| message_loop_.RunUntilIdle(); |
| EXPECT_EQ(1u, test_observer_->default_network_change_count()); |
| // No default network updates for signal strength changes. |
| test_observer_->reset_change_counts(); |
| - DBusThreadManager::Get()->GetShillServiceClient()->SetProperty( |
| - dbus::ObjectPath(wifi1), |
| - shill::kSignalStrengthProperty, base::FundamentalValue(32), |
| - base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction)); |
| + SetServiceProperty(wifi1, shill::kSignalStrengthProperty, |
| + base::FundamentalValue(32)); |
| message_loop_.RunUntilIdle(); |
| EXPECT_EQ(0u, test_observer_->default_network_change_count()); |
| + |
| + // Change the default network to a Connecting network, then set the |
| + // state to Connected. The DefaultNetworkChange dnotification should not |
|
pneubeck (no reviews)
2015/03/12 19:40:09
dnotification -> notification
|
| + // fire until the network is connected. |
| + test_observer_->reset_change_counts(); |
| + SetServiceProperty(wifi1, shill::kStateProperty, |
| + base::StringValue(shill::kStateIdle)); |
| + message_loop_.RunUntilIdle(); |
| + EXPECT_EQ(1u, test_observer_->default_network_change_count()); |
| + EXPECT_EQ(std::string(), test_observer_->default_network()); |
| + |
| + const std::string wifi2 = kShillManagerClientStubWifi2; |
| + manager_test_->SetManagerProperty(shill::kDefaultServiceProperty, |
| + base::StringValue(wifi2)); |
| + message_loop_.RunUntilIdle(); |
| + EXPECT_EQ(1u, test_observer_->default_network_change_count()); |
| + // Change the connection state of the default network, observer should fire. |
| + SetServiceProperty(wifi2, shill::kStateProperty, |
| + base::StringValue(shill::kStateReady)); |
| + message_loop_.RunUntilIdle(); |
| + EXPECT_EQ(wifi2, test_observer_->default_network()); |
| + EXPECT_EQ(2u, test_observer_->default_network_change_count()); |
| } |
| TEST_F(NetworkStateHandlerTest, RequestUpdate) { |