Index: chromeos/components/tether/wifi_hotspot_connector_unittest.cc |
diff --git a/chromeos/components/tether/wifi_hotspot_connector_unittest.cc b/chromeos/components/tether/wifi_hotspot_connector_unittest.cc |
index 9fe074a744ca43ebded6a9ed43f055c5d60588fa..12dc00404eb33064918589d6602b331f921c7e1f 100644 |
--- a/chromeos/components/tether/wifi_hotspot_connector_unittest.cc |
+++ b/chromeos/components/tether/wifi_hotspot_connector_unittest.cc |
@@ -13,6 +13,7 @@ |
#include "base/test/scoped_task_environment.h" |
#include "base/timer/mock_timer.h" |
#include "base/values.h" |
+#include "chromeos/components/tether/fake_active_host.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/shill_device_client.h" |
#include "chromeos/dbus/shill_service_client.h" |
@@ -36,6 +37,8 @@ const char kPassword[] = "password"; |
const char kOtherWifiServiceGuid[] = "otherWifiServiceGuid"; |
+const char kDeviceId[] = "deviceId"; |
+ |
std::string CreateConfigurationJsonString(const std::string& guid) { |
std::stringstream ss; |
ss << "{" |
@@ -120,9 +123,15 @@ class WifiHotspotConnectorTest : public NetworkStateTest { |
SetUpShillState(); |
test_network_connect_ = base::WrapUnique(new TestNetworkConnect(this)); |
+ fake_active_host_ = base::WrapUnique(new FakeActiveHost()); |
Kyle Horimoto
2017/04/17 19:50:04
nit: Use base::MakeUnique<FakeActiveHost>().
lesliewatkins
2017/04/27 00:33:53
Done.
|
+ |
+ network_state_handler()->AddTetherNetworkState(kDeviceId, ""); |
Kyle Horimoto
2017/04/17 19:50:04
You should be passing a tether network GUID, not a
lesliewatkins
2017/04/27 00:33:54
Done.
|
+ |
+ fake_active_host_->SetActiveHostConnecting(kDeviceId, kDeviceId); |
Kyle Horimoto
2017/04/17 19:50:04
Also pass the GUID here as well. Don't use the sam
lesliewatkins
2017/04/27 00:33:54
Done.
|
wifi_hotspot_connector_ = base::WrapUnique(new WifiHotspotConnector( |
- network_state_handler(), test_network_connect_.get())); |
+ network_state_handler(), test_network_connect_.get(), |
+ fake_active_host_.get())); |
mock_timer_ = new base::MockTimer(true /* retain_user_task */, |
false /* is_repeating */); |
@@ -202,6 +211,34 @@ class WifiHotspotConnectorTest : public NetworkStateTest { |
return wifi_guid; |
} |
+ void VerifyTetherAndWifiNetworkAssociation(const std::string& wifi_guid) { |
+ const NetworkState* wifi_network_state = |
+ network_state_handler()->GetNetworkStateFromGuid(wifi_guid); |
+ EXPECT_TRUE(wifi_network_state); |
+ EXPECT_EQ(fake_active_host_->GetTetherNetworkGuid(), |
+ wifi_network_state->tether_guid()); |
+ |
+ const NetworkState* tether_network_state = |
+ network_state_handler()->GetNetworkStateFromGuid( |
+ fake_active_host_->GetTetherNetworkGuid()); |
+ EXPECT_TRUE(tether_network_state); |
+ EXPECT_EQ(wifi_guid, tether_network_state->tether_guid()); |
+ } |
+ |
+ void VerifyTetherAndWifiNetworkDisassociation(const std::string& wifi_guid) { |
Kyle Horimoto
2017/04/17 19:50:04
nit: Rename this to VerifyTetherAndWifiNetworkNotA
lesliewatkins
2017/04/27 00:33:53
Done.
|
+ const NetworkState* wifi_network_state = |
+ network_state_handler()->GetNetworkStateFromGuid(wifi_guid); |
+ EXPECT_TRUE(wifi_network_state); |
+ EXPECT_NE(fake_active_host_->GetTetherNetworkGuid(), |
Kyle Horimoto
2017/04/17 19:50:04
Here, the tether GUID should be "". Assert that th
lesliewatkins
2017/04/27 00:33:53
Done.
lesliewatkins
2017/04/27 00:33:53
Done.
|
+ wifi_network_state->tether_guid()); |
+ |
+ const NetworkState* tether_network_state = |
+ network_state_handler()->GetNetworkStateFromGuid( |
+ fake_active_host_->GetTetherNetworkGuid()); |
+ EXPECT_TRUE(tether_network_state); |
+ EXPECT_NE(wifi_guid, tether_network_state->tether_guid()); |
+ } |
+ |
void WifiConnectionCallback(const std::string& wifi_guid) { |
connection_callback_responses_.push_back(wifi_guid); |
} |
@@ -217,6 +254,8 @@ class WifiHotspotConnectorTest : public NetworkStateTest { |
std::unique_ptr<WifiHotspotConnector> wifi_hotspot_connector_; |
private: |
+ std::unique_ptr<FakeActiveHost> fake_active_host_; |
Kyle Horimoto
2017/04/17 19:50:04
Move this up to the protected section underneath t
lesliewatkins
2017/04/27 00:33:53
Done.
|
+ |
DISALLOW_COPY_AND_ASSIGN(WifiHotspotConnectorTest); |
}; |
@@ -253,6 +292,7 @@ TEST_F(WifiHotspotConnectorTest, TestConnect_AnotherNetworkBecomesConnectable) { |
// Another network becomes connectable. This should not cause the connection |
// to start. |
NotifyConnectable(other_wifi_service_path_); |
+ VerifyTetherAndWifiNetworkDisassociation(wifi_guid); |
EXPECT_EQ("", test_network_connect_->network_id_to_connect()); |
// Timeout timer fires. |
@@ -274,6 +314,7 @@ TEST_F(WifiHotspotConnectorTest, TestConnect_CannotConnectToNetwork) { |
// Network becomes connectable. |
NotifyConnectable(test_network_connect_->last_service_path_created()); |
+ VerifyTetherAndWifiNetworkAssociation(wifi_guid); |
EXPECT_EQ(wifi_guid, test_network_connect_->network_id_to_connect()); |
// Network connection does not occur. |
@@ -297,6 +338,7 @@ TEST_F(WifiHotspotConnectorTest, TestConnect_Success) { |
// Network becomes connectable. |
NotifyConnectable(test_network_connect_->last_service_path_created()); |
+ VerifyTetherAndWifiNetworkAssociation(wifi_guid); |
EXPECT_EQ(wifi_guid, test_network_connect_->network_id_to_connect()); |
EXPECT_EQ(0u, connection_callback_responses_.size()); |
@@ -318,6 +360,7 @@ TEST_F(WifiHotspotConnectorTest, TestConnect_Success_EmptyPassword) { |
// Network becomes connectable. |
NotifyConnectable(test_network_connect_->last_service_path_created()); |
+ VerifyTetherAndWifiNetworkAssociation(wifi_guid); |
EXPECT_EQ(wifi_guid, test_network_connect_->network_id_to_connect()); |
EXPECT_EQ(0u, connection_callback_responses_.size()); |
@@ -362,6 +405,7 @@ TEST_F(WifiHotspotConnectorTest, |
// First network becomes connectable. |
NotifyConnectable(service_path1); |
+ VerifyTetherAndWifiNetworkDisassociation(wifi_guid1); |
// A connection should not have started to that GUID. |
EXPECT_EQ("", test_network_connect_->network_id_to_connect()); |
@@ -369,6 +413,7 @@ TEST_F(WifiHotspotConnectorTest, |
// Second network becomes connectable. |
NotifyConnectable(service_path2); |
+ VerifyTetherAndWifiNetworkAssociation(wifi_guid2); |
EXPECT_EQ(wifi_guid2, test_network_connect_->network_id_to_connect()); |
EXPECT_EQ(1u, connection_callback_responses_.size()); |