| Index: chromeos/network/network_state_unittest.cc
|
| diff --git a/chromeos/network/network_state_unittest.cc b/chromeos/network/network_state_unittest.cc
|
| index 37a3763ef0c4f032040c85c0bc3f765b77e206bd..aa636d7b613bec4f2bde70837e9f0076c18cac3a 100644
|
| --- a/chromeos/network/network_state_unittest.cc
|
| +++ b/chromeos/network/network_state_unittest.cc
|
| @@ -171,4 +171,46 @@ TEST_F(NetworkStateTest, SsidHexMultipleUpdates) {
|
| EXPECT_TRUE(SetStringProperty(shill::kWifiHexSsid, wifi_hex));
|
| }
|
|
|
| +TEST_F(NetworkStateTest, CaptivePortalState) {
|
| + std::string network_name = "test";
|
| + EXPECT_TRUE(SetStringProperty(shill::kTypeProperty, shill::kTypeWifi));
|
| + EXPECT_TRUE(SetStringProperty(shill::kNameProperty, network_name));
|
| + std::string hex_ssid =
|
| + base::HexEncode(network_name.c_str(), network_name.length());
|
| + EXPECT_TRUE(SetStringProperty(shill::kWifiHexSsid, hex_ssid));
|
| +
|
| + // State != portal -> is_captive_portal == false
|
| + EXPECT_TRUE(SetStringProperty(shill::kStateProperty, shill::kStateReady));
|
| + SignalInitialPropertiesReceived();
|
| + EXPECT_FALSE(network_state_.is_captive_portal());
|
| +
|
| + // State == portal, kPortalDetection* not set -> is_captive_portal = true
|
| + EXPECT_TRUE(SetStringProperty(shill::kStateProperty, shill::kStatePortal));
|
| + SignalInitialPropertiesReceived();
|
| + EXPECT_TRUE(network_state_.is_captive_portal());
|
| +
|
| + // Set kPortalDetectionFailed* properties to states that should not trigger
|
| + // is_captive_portal.
|
| + SetStringProperty(shill::kPortalDetectionFailedPhaseProperty,
|
| + shill::kPortalDetectionPhaseUnknown);
|
| + SetStringProperty(shill::kPortalDetectionFailedStatusProperty,
|
| + shill::kPortalDetectionStatusTimeout);
|
| + SignalInitialPropertiesReceived();
|
| + EXPECT_FALSE(network_state_.is_captive_portal());
|
| +
|
| + // Set just the phase property to the expected captive portal state.
|
| + // is_captive_portal should still be false.
|
| + SetStringProperty(shill::kPortalDetectionFailedPhaseProperty,
|
| + shill::kPortalDetectionPhaseContent);
|
| + SignalInitialPropertiesReceived();
|
| + EXPECT_FALSE(network_state_.is_captive_portal());
|
| +
|
| + // Set the status property to the expected captive portal state property.
|
| + // is_captive_portal should now be true.
|
| + SetStringProperty(shill::kPortalDetectionFailedStatusProperty,
|
| + shill::kPortalDetectionStatusFailure);
|
| + SignalInitialPropertiesReceived();
|
| + EXPECT_TRUE(network_state_.is_captive_portal());
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|