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

Unified 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: Rebase 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 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 669af30176b1089cfe667ef96c3cc5b83bf1b100..3f95116dfabe2b254e7db3de2d4559f57f31eb54 100644
--- a/chromeos/network/network_state_handler_unittest.cc
+++ b/chromeos/network/network_state_handler_unittest.cc
@@ -31,10 +31,10 @@ void ErrorCallbackFunction(const std::string& error_name,
LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message;
}
-const std::string kShillManagerClientStubDefaultService = "eth1";
-const std::string kShillManagerClientStubDefaultWifi = "wifi1";
-const std::string kShillManagerClientStubWifi2 = "wifi2";
-const std::string kShillManagerClientStubCellular = "cellular1";
+const std::string kShillManagerClientStubDefaultService = "/service/eth1";
+const std::string kShillManagerClientStubDefaultWifi = "/service/wifi1";
+const std::string kShillManagerClientStubWifi2 = "/service/wifi2";
+const std::string kShillManagerClientStubCellular = "/service/cellular1";
using chromeos::NetworkState;
using chromeos::NetworkStateHandler;
@@ -44,6 +44,7 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
explicit TestObserver(NetworkStateHandler* handler)
: handler_(handler),
device_list_changed_count_(0),
+ device_count_(0),
network_count_(0),
default_network_change_count_(0),
favorite_count_(0) {
@@ -53,6 +54,9 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
}
virtual void DeviceListChanged() OVERRIDE {
+ NetworkStateHandler::DeviceStateList devices;
+ handler_->GetDeviceList(&devices);
+ device_count_ = devices.size();
++device_list_changed_count_;
}
@@ -90,13 +94,15 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
}
size_t device_list_changed_count() { return device_list_changed_count_; }
+ size_t device_count() { return device_count_; }
size_t network_count() { return network_count_; }
size_t default_network_change_count() {
return default_network_change_count_;
}
- void reset_network_change_count() {
- DVLOG(1) << "ResetNetworkChangeCount";
+ void reset_change_counts() {
+ DVLOG(1) << "=== RESET CHANGE COUNTS ===";
default_network_change_count_ = 0;
+ device_list_changed_count_ = 0;
}
std::string default_network() { return default_network_; }
std::string default_network_connection_state() {
@@ -120,6 +126,7 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver {
private:
NetworkStateHandler* handler_;
size_t device_list_changed_count_;
+ size_t device_count_;
size_t network_count_;
size_t default_network_change_count_;
std::string default_network_;
@@ -148,8 +155,13 @@ class NetworkStateHandlerTest : public testing::Test {
virtual void SetUp() OVERRIDE {
// Initialize DBusThreadManager with a stub implementation.
DBusThreadManager::InitializeWithStub();
- SetupNetworkStateHandler();
+ SetupDefaultShillState();
+ network_state_handler_.reset(new NetworkStateHandler);
+ test_observer_.reset(new TestObserver(network_state_handler_.get()));
+ network_state_handler_->AddObserver(test_observer_.get(), FROM_HERE);
+ network_state_handler_->InitShillPropertyHandler();
message_loop_.RunUntilIdle();
+ test_observer_->reset_change_counts();
}
virtual void TearDown() OVERRIDE {
@@ -159,22 +171,13 @@ class NetworkStateHandlerTest : public testing::Test {
DBusThreadManager::Shutdown();
}
- void SetupNetworkStateHandler() {
- SetupDefaultShillState();
- network_state_handler_.reset(new NetworkStateHandler);
- test_observer_.reset(new TestObserver(network_state_handler_.get()));
- network_state_handler_->AddObserver(test_observer_.get(), FROM_HERE);
- network_state_handler_->InitShillPropertyHandler();
- }
-
protected:
void AddService(const std::string& service_path,
const std::string& name,
const std::string& type,
const std::string& state) {
service_test_->AddService(service_path, name, type, state,
- true /* add_to_visible */,
- true /* add_to_watchlist */);
+ true /* add_to_visible */);
}
void SetupDefaultShillState() {
@@ -203,19 +206,19 @@ class NetworkStateHandlerTest : public testing::Test {
ASSERT_TRUE(service_test_);
service_test_->ClearServices();
AddService(kShillManagerClientStubDefaultService,
- kShillManagerClientStubDefaultService,
+ "eth1",
shill::kTypeEthernet,
shill::kStateOnline);
AddService(kShillManagerClientStubDefaultWifi,
- kShillManagerClientStubDefaultWifi,
+ "wifi1",
shill::kTypeWifi,
shill::kStateOnline);
AddService(kShillManagerClientStubWifi2,
- kShillManagerClientStubWifi2,
+ "wifi2",
shill::kTypeWifi,
shill::kStateIdle);
AddService(kShillManagerClientStubCellular,
- kShillManagerClientStubCellular,
+ "cellular1",
shill::kTypeCellular,
shill::kStateIdle);
}
@@ -239,16 +242,19 @@ class NetworkStateHandlerTest : public testing::Test {
};
TEST_F(NetworkStateHandlerTest, NetworkStateHandlerStub) {
- // Ensure that the network list is the expected size.
+ // Ensure that the device and network list are the expected size.
+ const size_t kNumShillManagerClientStubImplDevices = 2;
+ EXPECT_EQ(kNumShillManagerClientStubImplDevices,
+ test_observer_->device_count());
const size_t kNumShillManagerClientStubImplServices = 4;
EXPECT_EQ(kNumShillManagerClientStubImplServices,
test_observer_->network_count());
// Ensure that the first stub network is the default network.
EXPECT_EQ(kShillManagerClientStubDefaultService,
test_observer_->default_network());
+ ASSERT_TRUE(network_state_handler_->DefaultNetwork());
EXPECT_EQ(kShillManagerClientStubDefaultService,
- network_state_handler_->ConnectedNetworkByType(
- NetworkTypePattern::Default())->path());
+ network_state_handler_->DefaultNetwork()->path());
EXPECT_EQ(kShillManagerClientStubDefaultService,
network_state_handler_->ConnectedNetworkByType(
NetworkTypePattern::Ethernet())->path());
@@ -267,34 +273,41 @@ TEST_F(NetworkStateHandlerTest, NetworkStateHandlerStub) {
}
TEST_F(NetworkStateHandlerTest, TechnologyChanged) {
- // There may be several manager changes during initialization.
- size_t initial_changed_count = test_observer_->device_list_changed_count();
- // Disable a technology.
+ // Disable a technology. Will immediately set the state to AVAILABLE and
+ // notify observers.
network_state_handler_->SetTechnologyEnabled(
- NetworkTypePattern::Wimax(), false, network_handler::ErrorCallback());
- EXPECT_NE(
- NetworkStateHandler::TECHNOLOGY_ENABLED,
- network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
- EXPECT_EQ(initial_changed_count + 1,
- test_observer_->device_list_changed_count());
- // Enable a technology.
+ NetworkTypePattern::WiFi(), false, network_handler::ErrorCallback());
+ EXPECT_EQ(1u, test_observer_->device_list_changed_count());
+ EXPECT_EQ(
+ NetworkStateHandler::TECHNOLOGY_AVAILABLE,
+ network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
+
+ // Run the message loop. An additional notification will be received when
+ // Shill updates the enabled technologies. The state should remain AVAILABLE.
+ test_observer_->reset_change_counts();
+ message_loop_.RunUntilIdle();
+ EXPECT_EQ(1u, test_observer_->device_list_changed_count());
+ EXPECT_EQ(
+ NetworkStateHandler::TECHNOLOGY_AVAILABLE,
+ network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
+
+ // Enable a technology. Will immediately set the state to ENABLING and
+ // notify observers.
+ test_observer_->reset_change_counts();
network_state_handler_->SetTechnologyEnabled(
- NetworkTypePattern::Wimax(), true, network_handler::ErrorCallback());
- // The technology state should immediately change to ENABLING and we should
- // receive a manager changed callback.
- EXPECT_EQ(initial_changed_count + 2,
- test_observer_->device_list_changed_count());
+ NetworkTypePattern::WiFi(), true, network_handler::ErrorCallback());
+ EXPECT_EQ(1u, test_observer_->device_list_changed_count());
EXPECT_EQ(
NetworkStateHandler::TECHNOLOGY_ENABLING,
- network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
+ network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
+
+ // Run the message loop. State should change to ENABLED.
+ test_observer_->reset_change_counts();
message_loop_.RunUntilIdle();
- // Ensure we receive 2 manager changed callbacks when the technology becomes
- // avalable and enabled.
- EXPECT_EQ(initial_changed_count + 4,
- test_observer_->device_list_changed_count());
+ EXPECT_EQ(1u, test_observer_->device_list_changed_count());
EXPECT_EQ(
NetworkStateHandler::TECHNOLOGY_ENABLED,
- network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
+ network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi()));
}
TEST_F(NetworkStateHandlerTest, TechnologyState) {
@@ -414,7 +427,6 @@ TEST_F(NetworkStateHandlerTest, DefaultServiceDisconnected) {
const std::string wifi1 = kShillManagerClientStubDefaultWifi;
// 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);
@@ -425,7 +437,7 @@ TEST_F(NetworkStateHandlerTest, DefaultServiceDisconnected) {
EXPECT_EQ(wifi1, test_observer_->default_network());
// Disconnect wifi.
- test_observer_->reset_network_change_count();
+ test_observer_->reset_change_counts();
service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
connection_state_idle_value);
message_loop_.RunUntilIdle();
@@ -447,7 +459,7 @@ TEST_F(NetworkStateHandlerTest, DefaultServiceConnected) {
EXPECT_EQ(std::string(), test_observer_->default_network());
// Connect ethernet, should become the default network.
- test_observer_->reset_network_change_count();
+ test_observer_->reset_change_counts();
base::StringValue connection_state_ready_value(shill::kStateReady);
service_test_->SetServiceProperty(eth1, shill::kStateProperty,
connection_state_ready_value);
@@ -464,7 +476,6 @@ TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) {
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 = kShillManagerClientStubDefaultWifi;
base::StringValue wifi1_value(wifi1);
manager_test_->SetManagerProperty(
@@ -474,7 +485,7 @@ TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) {
EXPECT_EQ(1u, test_observer_->default_network_change_count());
// Change the state of the default network.
- test_observer_->reset_network_change_count();
+ test_observer_->reset_change_counts();
base::StringValue connection_state_ready_value(shill::kStateReady);
service_test_->SetServiceProperty(wifi1, shill::kStateProperty,
connection_state_ready_value);
@@ -485,7 +496,7 @@ TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) {
// Updating a property on the default network should trigger
// a default network change.
- test_observer_->reset_network_change_count();
+ test_observer_->reset_change_counts();
DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
dbus::ObjectPath(wifi1),
shill::kSecurityProperty, base::StringValue("TestSecurity"),
@@ -494,7 +505,7 @@ TEST_F(NetworkStateHandlerTest, DefaultServiceChanged) {
EXPECT_EQ(1u, test_observer_->default_network_change_count());
// No default network updates for signal strength changes.
- test_observer_->reset_network_change_count();
+ test_observer_->reset_change_counts();
DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
dbus::ObjectPath(wifi1),
shill::kSignalStrengthProperty, base::FundamentalValue(32),
@@ -516,7 +527,7 @@ TEST_F(NetworkStateHandlerTest, RequestUpdate) {
TEST_F(NetworkStateHandlerTest, NetworkGuidInProfile) {
const std::string profile = "/profile/profile1";
- const std::string wifi_path = "wifi_with_guid";
+ const std::string wifi_path = "/service/wifi_with_guid";
const std::string wifi_guid = "WIFI_GUID";
const bool is_service_configured = true;
@@ -528,8 +539,7 @@ TEST_F(NetworkStateHandlerTest, NetworkGuidInProfile) {
shill::kTypeWifi,
shill::kStateOnline,
"" /* ipconfig_path */,
- true /* add_to_visible */,
- true /* add_to_watchlist */);
+ true /* add_to_visible */);
profile_test_->AddProfile(profile, "" /* userhash */);
EXPECT_TRUE(profile_test_->AddService(profile, wifi_path));
UpdateManagerProperties();
@@ -568,7 +578,7 @@ TEST_F(NetworkStateHandlerTest, NetworkGuidInProfile) {
}
TEST_F(NetworkStateHandlerTest, NetworkGuidNotInProfile) {
- const std::string wifi_path = "wifi_with_guid";
+ const std::string wifi_path = "/service/wifi_with_guid";
const bool is_service_configured = false;
// Add a network without adding it to a profile.

Powered by Google App Engine
This is Rietveld 408576698