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

Unified Diff: chromeos/network/shill_property_handler_unittest.cc

Issue 12634019: NetworkChangeNotifierChromeos: Handle IPConfig property changes on the default network (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more cleanup Created 7 years, 9 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/shill_property_handler_unittest.cc
diff --git a/chromeos/network/shill_property_handler_unittest.cc b/chromeos/network/shill_property_handler_unittest.cc
index e151105fe01b84b03a7fca76e28d52a9fa392cbf..9a9501eea45881966eb23f58b208d8405777b87e 100644
--- a/chromeos/network/shill_property_handler_unittest.cc
+++ b/chromeos/network/shill_property_handler_unittest.cc
@@ -14,6 +14,7 @@
#include "base/values.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/shill_device_client.h"
+#include "chromeos/dbus/shill_ipconfig_client.h"
#include "chromeos/dbus/shill_manager_client.h"
#include "chromeos/dbus/shill_service_client.h"
#include "dbus/object_path.h"
@@ -24,6 +25,9 @@ namespace chromeos {
namespace {
+void DoNothingWithCallStatus(DBusMethodCallStatus call_status) {
+}
+
void ErrorCallbackFunction(const std::string& error_name,
const std::string& error_message) {
LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message;
@@ -64,12 +68,6 @@ class TestListener : public internal::ShillPropertyHandler::Listener {
++manager_updates_;
}
- virtual void UpdateNetworkServiceIPAddress(
- const std::string& service_path,
- const std::string& ip_address) OVERRIDE {
- AddPropertyUpdate(flimflam::kServicesProperty, service_path);
- }
-
virtual void ManagedStateListChanged(
ManagedState::ManagedType type) OVERRIDE {
AddStateListUpdate(GetTypeString(type));
@@ -157,6 +155,8 @@ class ShillPropertyHandlerTest : public testing::Test {
service_test_ =
DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
ASSERT_TRUE(service_test_);
+ SetupShillPropertyHandler();
+ message_loop_.RunUntilIdle();
}
virtual void TearDown() OVERRIDE {
@@ -177,9 +177,11 @@ class ShillPropertyHandlerTest : public testing::Test {
void AddService(const std::string& type,
const std::string& id,
const std::string& state,
+ const std::string& ipconfig_path,
bool add_to_watch_list) {
ASSERT_TRUE(IsValidType(type));
- service_test_->AddService(id, id, type, state, add_to_watch_list);
+ service_test_->AddService(id, id, type, state, ipconfig_path,
+ add_to_watch_list);
}
void RemoveService(const std::string& id) {
@@ -213,13 +215,13 @@ class ShillPropertyHandlerTest : public testing::Test {
service_test_->ClearServices();
const bool add_to_watchlist = true;
AddService(flimflam::kTypeEthernet, "stub_ethernet",
- flimflam::kStateOnline, add_to_watchlist);
+ flimflam::kStateOnline, "", add_to_watchlist);
AddService(flimflam::kTypeWifi, "stub_wifi1",
- flimflam::kStateOnline, add_to_watchlist);
+ flimflam::kStateOnline, "", add_to_watchlist);
AddService(flimflam::kTypeWifi, "stub_wifi2",
- flimflam::kStateIdle, add_to_watchlist);
+ flimflam::kStateIdle, "", add_to_watchlist);
AddService(flimflam::kTypeCellular, "stub_cellular1",
- flimflam::kStateIdle, add_to_watchlist);
+ flimflam::kStateIdle, "", add_to_watchlist);
}
MessageLoopForUI message_loop_;
@@ -234,8 +236,6 @@ class ShillPropertyHandlerTest : public testing::Test {
};
TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerStub) {
- SetupShillPropertyHandler();
- message_loop_.RunUntilIdle();
EXPECT_EQ(1, listener_->manager_updates());
EXPECT_TRUE(shill_property_handler_->TechnologyAvailable(
flimflam::kTypeWifi));
@@ -252,8 +252,6 @@ TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerStub) {
}
TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerTechnologyChanged) {
- SetupShillPropertyHandler();
- message_loop_.RunUntilIdle();
EXPECT_EQ(1, listener_->manager_updates());
// Add a disabled technology.
manager_test_->AddTechnology(flimflam::kTypeWimax, false);
@@ -277,8 +275,6 @@ TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerTechnologyChanged) {
}
TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerDevicePropertyChanged) {
- SetupShillPropertyHandler();
- message_loop_.RunUntilIdle();
EXPECT_EQ(1, listener_->manager_updates());
EXPECT_EQ(1, listener_->list_updates(flimflam::kDevicesProperty));
const size_t kNumShillManagerClientStubImplDevices = 2;
@@ -304,8 +300,6 @@ TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerDevicePropertyChanged) {
}
TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerServicePropertyChanged) {
- SetupShillPropertyHandler();
- message_loop_.RunUntilIdle();
EXPECT_EQ(1, listener_->manager_updates());
EXPECT_EQ(1, listener_->list_updates(flimflam::kServicesProperty));
const size_t kNumShillManagerClientStubImplServices = 4;
@@ -315,7 +309,7 @@ TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerServicePropertyChanged) {
// Add an unwatched service.
const std::string kTestServicePath("test_wifi_service1");
AddService(flimflam::kTypeWifi, kTestServicePath,
- flimflam::kStateIdle, false);
+ flimflam::kStateIdle, "", false);
message_loop_.RunUntilIdle();
EXPECT_EQ(1, listener_->manager_updates()); // No new manager updates.
// Only watched services trigger a service list update.
@@ -336,7 +330,7 @@ TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerServicePropertyChanged) {
// Add the existing service to the watch list.
AddService(flimflam::kTypeWifi, kTestServicePath,
- flimflam::kStateIdle, true);
+ flimflam::kStateIdle, "", true);
message_loop_.RunUntilIdle();
// Service list update should be received when watch list changes.
EXPECT_EQ(2, listener_->list_updates(flimflam::kServicesProperty));
@@ -368,6 +362,50 @@ TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerServicePropertyChanged) {
EXPECT_EQ(0, listener_->errors());
}
-// TODO(stevenjb): Test IP Configs.
+TEST_F(ShillPropertyHandlerTest, ShillPropertyHandlerIPConfigPropertyChanged) {
+ // Set the properties for an IP Config object.
+ const std::string kTestIPConfigPath("test_ip_config_path");
+ base::StringValue ip_address("192.168.1.1");
+ DBusThreadManager::Get()->GetShillIPConfigClient()->SetProperty(
+ dbus::ObjectPath(kTestIPConfigPath),
+ flimflam::kAddressProperty,
+ ip_address,
+ base::Bind(&DoNothingWithCallStatus));
+ base::ListValue dns_servers;
+ dns_servers.Append(base::Value::CreateStringValue("192.168.1.100"));
+ dns_servers.Append(base::Value::CreateStringValue("192.168.1.101"));
+ DBusThreadManager::Get()->GetShillIPConfigClient()->SetProperty(
+ dbus::ObjectPath(kTestIPConfigPath),
+ flimflam::kNameServersProperty,
+ dns_servers,
+ base::Bind(&DoNothingWithCallStatus));
+ message_loop_.RunUntilIdle();
+
+ // Add a service with an empty ipconfig and then update
+ // its ipconfig property.
+ const std::string kTestServicePath("test_wifi_service1");
+ AddService(flimflam::kTypeWifi, kTestServicePath,
+ flimflam::kStateIdle, "", true);
+ message_loop_.RunUntilIdle();
+ DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
+ dbus::ObjectPath(kTestServicePath),
+ shill::kIPConfigProperty,
+ base::StringValue(kTestIPConfigPath),
+ base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
+ message_loop_.RunUntilIdle();
+ // IPConfig updates should trigger 2 property updates for IP Address
+ // and DNS.
+ EXPECT_EQ(3, listener_->
+ property_updates(flimflam::kServicesProperty)[kTestServicePath]);
+ // Now, try adding the service with the IPConfig already set.
+ RemoveService(kTestServicePath);
+ AddService(flimflam::kTypeWifi, kTestServicePath,
+ flimflam::kStateIdle, kTestIPConfigPath, true);
+ message_loop_.RunUntilIdle();
+ // A watched service with the IPConfig property already set must
+ // trigger property updates for IP Address and DNS.
+ EXPECT_EQ(3, listener_->
+ property_updates(flimflam::kServicesProperty)[kTestServicePath]);
+}
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698