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

Unified 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: . Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
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 76ccc49680eae51ece01a5368e41cc7e42034d14..c1e8a209c84f5027bfd21a943b40d113177b7b82 100644
--- a/chromeos/network/network_state_handler_unittest.cc
+++ b/chromeos/network/network_state_handler_unittest.cc
@@ -73,7 +73,9 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
++default_network_change_count_;
default_network_ = network ? network->path() : "";
default_network_connection_state_ =
- network ? network->connection_state() : "";
+ network ? network->connection_state() : "";
+ DVLOG(1) << "DefaultNetworkChanged: " << default_network_
+ << " State: " << default_network_connection_state_;
}
virtual void NetworkConnectionStateChanged(
@@ -92,6 +94,10 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
size_t default_network_change_count() {
return default_network_change_count_;
}
+ void reset_network_change_count() {
+ DVLOG(1) << "ResetNetworkChangeCount";
+ default_network_change_count_ = 0;
+ }
std::string default_network() { return default_network_; }
std::string default_network_connection_state() {
return default_network_connection_state_;
@@ -132,7 +138,8 @@ namespace chromeos {
class NetworkStateHandlerTest : public testing::Test {
public:
- NetworkStateHandlerTest() {}
+ NetworkStateHandlerTest()
+ : device_test_(NULL), manager_test_(NULL), service_test_(NULL) {}
virtual ~NetworkStateHandlerTest() {}
virtual void SetUp() OVERRIDE {
@@ -160,40 +167,58 @@ class NetworkStateHandlerTest : public testing::Test {
protected:
void SetupDefaultShillState() {
message_loop_.RunUntilIdle(); // Process any pending updates
- ShillDeviceClient::TestInterface* device_test =
+ device_test_ =
DBusThreadManager::Get()->GetShillDeviceClient()->GetTestInterface();
- device_test->ClearDevices();
- device_test->AddDevice("/device/stub_wifi_device1",
- shill::kTypeWifi, "stub_wifi_device1");
- device_test->AddDevice("/device/stub_cellular_device1",
- shill::kTypeCellular, "stub_cellular_device1");
-
- ShillServiceClient::TestInterface* service_test =
+ ASSERT_TRUE(device_test_);
+ device_test_->ClearDevices();
+ device_test_->AddDevice(
+ "/device/stub_wifi_device1", shill::kTypeWifi, "stub_wifi_device1");
+ device_test_->AddDevice("/device/stub_cellular_device1",
+ shill::kTypeCellular,
+ "stub_cellular_device1");
+
+ manager_test_ =
+ DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface();
+ ASSERT_TRUE(manager_test_);
+
+ service_test_ =
DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
- service_test->ClearServices();
+ ASSERT_TRUE(service_test_);
+ service_test_->ClearServices();
const bool add_to_visible = true;
const bool add_to_watchlist = true;
- service_test->AddService(kShillManagerClientStubDefaultService,
- kShillManagerClientStubDefaultService,
- shill::kTypeEthernet, shill::kStateOnline,
- add_to_visible, add_to_watchlist);
- service_test->AddService(kShillManagerClientStubDefaultWireless,
- kShillManagerClientStubDefaultWireless,
- shill::kTypeWifi, shill::kStateOnline,
- add_to_visible, add_to_watchlist);
- service_test->AddService(kShillManagerClientStubWireless2,
- kShillManagerClientStubWireless2,
- shill::kTypeWifi, shill::kStateIdle,
- add_to_visible, add_to_watchlist);
- service_test->AddService(kShillManagerClientStubCellular,
- kShillManagerClientStubCellular,
- shill::kTypeCellular, shill::kStateIdle,
- add_to_visible, add_to_watchlist);
+ service_test_->AddService(kShillManagerClientStubDefaultService,
+ kShillManagerClientStubDefaultService,
+ shill::kTypeEthernet,
+ shill::kStateOnline,
+ add_to_visible,
+ add_to_watchlist);
+ service_test_->AddService(kShillManagerClientStubDefaultWireless,
+ kShillManagerClientStubDefaultWireless,
+ shill::kTypeWifi,
+ shill::kStateOnline,
+ add_to_visible,
+ add_to_watchlist);
+ service_test_->AddService(kShillManagerClientStubWireless2,
+ kShillManagerClientStubWireless2,
+ shill::kTypeWifi,
+ shill::kStateIdle,
+ add_to_visible,
+ add_to_watchlist);
+ service_test_->AddService(kShillManagerClientStubCellular,
+ kShillManagerClientStubCellular,
+ shill::kTypeCellular,
+ shill::kStateIdle,
+ add_to_visible,
+ add_to_watchlist);
}
base::MessageLoopForUI message_loop_;
scoped_ptr<NetworkStateHandler> network_state_handler_;
scoped_ptr<TestObserver> test_observer_;
+ ShillDeviceClient::TestInterface* device_test_;
+ ShillManagerClient::TestInterface* manager_test_;
+ ShillServiceClient::TestInterface* service_test_;
private:
DISALLOW_COPY_AND_ASSIGN(NetworkStateHandlerTest);
@@ -259,27 +284,25 @@ TEST_F(NetworkStateHandlerTest, TechnologyChanged) {
}
TEST_F(NetworkStateHandlerTest, TechnologyState) {
- ShillManagerClient::TestInterface* manager_test =
- DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface();
- manager_test->RemoveTechnology(shill::kTypeWimax);
+ manager_test_->RemoveTechnology(shill::kTypeWimax);
message_loop_.RunUntilIdle();
EXPECT_EQ(
NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
- manager_test->AddTechnology(shill::kTypeWimax, false);
+ manager_test_->AddTechnology(shill::kTypeWimax, false);
message_loop_.RunUntilIdle();
EXPECT_EQ(
NetworkStateHandler::TECHNOLOGY_AVAILABLE,
network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
- manager_test->SetTechnologyInitializing(shill::kTypeWimax, true);
+ manager_test_->SetTechnologyInitializing(shill::kTypeWimax, true);
message_loop_.RunUntilIdle();
EXPECT_EQ(
NetworkStateHandler::TECHNOLOGY_UNINITIALIZED,
network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
- manager_test->SetTechnologyInitializing(shill::kTypeWimax, false);
+ manager_test_->SetTechnologyInitializing(shill::kTypeWimax, false);
network_state_handler_->SetTechnologyEnabled(
NetworkTypePattern::Wimax(), true, network_handler::ErrorCallback());
message_loop_.RunUntilIdle();
@@ -287,7 +310,7 @@ TEST_F(NetworkStateHandlerTest, TechnologyState) {
NetworkStateHandler::TECHNOLOGY_ENABLED,
network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
- manager_test->RemoveTechnology(shill::kTypeWimax);
+ manager_test_->RemoveTechnology(shill::kTypeWimax);
message_loop_.RunUntilIdle();
EXPECT_EQ(
NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
@@ -332,11 +355,9 @@ TEST_F(NetworkStateHandlerTest, FavoriteState) {
TEST_F(NetworkStateHandlerTest, NetworkConnectionStateChanged) {
// Change a network state.
- ShillServiceClient::TestInterface* service_test =
- DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
const std::string eth1 = kShillManagerClientStubDefaultService;
base::StringValue connection_state_idle_value(shill::kStateIdle);
- service_test->SetServiceProperty(eth1, shill::kStateProperty,
+ service_test_->SetServiceProperty(eth1, shill::kStateProperty,
connection_state_idle_value);
message_loop_.RunUntilIdle();
EXPECT_EQ(shill::kStateIdle,
@@ -344,51 +365,106 @@ TEST_F(NetworkStateHandlerTest, NetworkConnectionStateChanged) {
EXPECT_EQ(2, test_observer_->ConnectionStateChangesForService(eth1));
// Confirm that changing the connection state to the same value does *not*
// signal the observer.
- service_test->SetServiceProperty(eth1, shill::kStateProperty,
+ service_test_->SetServiceProperty(eth1, shill::kStateProperty,
connection_state_idle_value);
message_loop_.RunUntilIdle();
EXPECT_EQ(2, test_observer_->ConnectionStateChangesForService(eth1));
}
-TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) {
- ShillManagerClient::TestInterface* manager_test =
- DBusThreadManager::Get()->GetShillManagerClient()->GetTestInterface();
- ASSERT_TRUE(manager_test);
- ShillServiceClient::TestInterface* service_test =
- DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
- ASSERT_TRUE(service_test);
-
- // Change the default network by changing the state of eth1 to Idle which
- // should re-sort Manager.Services.
+TEST_F(NetworkStateHandlerTest, DefaultServiceDisconnected) {
const std::string eth1 = kShillManagerClientStubDefaultService;
const std::string wifi1 = kShillManagerClientStubDefaultWireless;
+
+ // Disconnect ethernet.
+ test_observer_->reset_network_change_count();
base::StringValue connection_state_idle_value(shill::kStateIdle);
- service_test->SetServiceProperty(eth1, shill::kStateProperty,
- connection_state_idle_value);
+ service_test_->SetServiceProperty(eth1, shill::kStateProperty,
+ connection_state_idle_value);
message_loop_.RunUntilIdle();
+ // Expect two changes: first when eth1 becomes disconnected, second when
+ // wifi1 becomes the default.
+ EXPECT_EQ(2u, test_observer_->default_network_change_count());
EXPECT_EQ(wifi1, test_observer_->default_network());
- EXPECT_EQ(shill::kStateOnline,
- test_observer_->default_network_connection_state());
- // We should have seen 2 default network updates - for the default
- // service change, and for the state change.
+
+ // Disconnect wifi.
+ test_observer_->reset_network_change_count();
+ service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
+ connection_state_idle_value);
+ message_loop_.RunUntilIdle();
+ // Expect two changes: first when wifi1 becomes disconnected, second when
+ // "" becomes the default.
EXPECT_EQ(2u, test_observer_->default_network_change_count());
+ EXPECT_EQ("", test_observer_->default_network());
+}
+
+TEST_F(NetworkStateHandlerTest, DefaultServiceConnected) {
+ const std::string eth1 = kShillManagerClientStubDefaultService;
+ const std::string wifi1 = kShillManagerClientStubDefaultWireless;
+
+ // Disconnect ethernet and wifi.
+ base::StringValue connection_state_idle_value(shill::kStateIdle);
+ service_test_->SetServiceProperty(eth1, shill::kStateProperty,
+ connection_state_idle_value);
+ service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
+ connection_state_idle_value);
+ message_loop_.RunUntilIdle();
+ EXPECT_EQ(std::string(), test_observer_->default_network());
+
+ // Connect ethernet, should become the default network.
+ test_observer_->reset_network_change_count();
+ base::StringValue connection_state_ready_value(shill::kStateReady);
+ service_test_->SetServiceProperty(eth1, shill::kStateProperty,
+ connection_state_ready_value);
+ message_loop_.RunUntilIdle();
+ EXPECT_EQ(eth1, test_observer_->default_network());
+ EXPECT_EQ(shill::kStateReady,
+ test_observer_->default_network_connection_state());
+ EXPECT_EQ(1u, test_observer_->default_network_change_count());
+}
+
+TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) {
+ const std::string eth1 = kShillManagerClientStubDefaultService;
+ // The default service should be eth1.
+ EXPECT_EQ(eth1, test_observer_->default_network());
+
+ // Change the default network by changing Manager.DefaultService.
+ test_observer_->reset_network_change_count();
+ const std::string wifi1 = kShillManagerClientStubDefaultWireless;
+ base::StringValue wifi1_value(wifi1);
+ manager_test_->SetManagerProperty(
+ shill::kDefaultServiceProperty, wifi1_value);
+ 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_network_change_count();
+ base::StringValue connection_state_ready_value(shill::kStateReady);
+ service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
+ connection_state_ready_value);
+ message_loop_.RunUntilIdle();
+ EXPECT_EQ(shill::kStateReady,
+ test_observer_->default_network_connection_state());
+ EXPECT_EQ(1u, test_observer_->default_network_change_count());
// Updating a property on the default network should trigger
// a default network change.
+ test_observer_->reset_network_change_count();
DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
dbus::ObjectPath(wifi1),
shill::kSecurityProperty, base::StringValue("TestSecurity"),
base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
message_loop_.RunUntilIdle();
- EXPECT_EQ(3u, test_observer_->default_network_change_count());
+ EXPECT_EQ(1u, test_observer_->default_network_change_count());
// No default network updates for signal strength changes.
+ test_observer_->reset_network_change_count();
DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
dbus::ObjectPath(wifi1),
shill::kSignalStrengthProperty, base::FundamentalValue(32),
base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
message_loop_.RunUntilIdle();
- EXPECT_EQ(3u, test_observer_->default_network_change_count());
+ EXPECT_EQ(0u, test_observer_->default_network_change_count());
}
TEST_F(NetworkStateHandlerTest, RequestUpdate) {

Powered by Google App Engine
This is Rietveld 408576698