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 c0e3ab7206f146261ad7a19a6aa3e8343a9d5d1f..294228cca96c0eafb9472d35aceea785e3fd5aa5 100644 |
--- a/chromeos/network/network_state_handler_unittest.cc |
+++ b/chromeos/network/network_state_handler_unittest.cc |
@@ -17,6 +17,7 @@ |
#include "chromeos/dbus/shill_manager_client.h" |
#include "chromeos/dbus/shill_profile_client.h" |
#include "chromeos/dbus/shill_service_client.h" |
+#include "chromeos/network/device_state.h" |
#include "chromeos/network/network_state.h" |
#include "chromeos/network/network_state_handler.h" |
#include "chromeos/network/network_state_handler_observer.h" |
@@ -36,6 +37,7 @@ const std::string kShillManagerClientStubDefaultWifi = "/service/wifi1"; |
const std::string kShillManagerClientStubWifi2 = "/service/wifi2"; |
const std::string kShillManagerClientStubCellular = "/service/cellular1"; |
+using chromeos::DeviceState; |
using chromeos::NetworkState; |
using chromeos::NetworkStateHandler; |
@@ -95,6 +97,11 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver { |
property_updates_[network->path()]++; |
} |
+ virtual void DevicePropertiesUpdated(const DeviceState* device) OVERRIDE { |
+ DCHECK(device); |
+ device_property_updates_[device->path()]++; |
+ } |
+ |
size_t device_list_changed_count() { return device_list_changed_count_; } |
size_t device_count() { return device_count_; } |
size_t network_list_changed_count() { return network_list_changed_count_; } |
@@ -117,6 +124,10 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver { |
return property_updates_[service_path]; |
} |
+ int PropertyUpdatesForDevice(const std::string& device_path) { |
+ return device_property_updates_[device_path]; |
+ } |
+ |
int ConnectionStateChangesForService(const std::string& service_path) { |
return connection_state_changes_[service_path]; |
} |
@@ -136,6 +147,7 @@ class TestObserver : public chromeos::NetworkStateHandlerObserver { |
std::string default_network_; |
std::string default_network_connection_state_; |
std::map<std::string, int> property_updates_; |
+ std::map<std::string, int> device_property_updates_; |
std::map<std::string, int> connection_state_changes_; |
std::map<std::string, std::string> network_connection_state_; |
@@ -703,4 +715,20 @@ TEST_F(NetworkStateHandlerTest, NetworkGuidNotInProfile) { |
EXPECT_EQ(wifi_guid, network->guid()); |
} |
+TEST_F(NetworkStateHandlerTest, DeviceListChanged) { |
+ size_t stub_device_count = test_observer_->device_count(); |
+ // Add an additional device. |
+ const std::string wifi_device = "/service/stub_wifi_device2"; |
+ device_test_->AddDevice(wifi_device, shill::kTypeWifi, "stub_wifi_device2"); |
+ UpdateManagerProperties(); |
+ // Expect a device list update. |
+ EXPECT_EQ(stub_device_count + 1, test_observer_->device_count()); |
+ EXPECT_EQ(0, test_observer_->PropertyUpdatesForDevice(wifi_device)); |
+ // Change a device property. |
+ device_test_->SetDeviceProperty( |
+ wifi_device, shill::kScanningProperty, base::FundamentalValue(true)); |
+ UpdateManagerProperties(); |
+ EXPECT_EQ(1, test_observer_->PropertyUpdatesForDevice(wifi_device)); |
+} |
+ |
} // namespace chromeos |