| Index: chrome/browser/chromeos/net/network_portal_detector_unittest.cc
|
| diff --git a/chrome/browser/chromeos/net/network_portal_detector_unittest.cc b/chrome/browser/chromeos/net/network_portal_detector_unittest.cc
|
| index 25af6dfd67d327a587351cc4aa35be6edbccdc41..4d5c84e377f02d3bd87fe03f0712a5e0e989cf0b 100644
|
| --- a/chrome/browser/chromeos/net/network_portal_detector_unittest.cc
|
| +++ b/chrome/browser/chromeos/net/network_portal_detector_unittest.cc
|
| @@ -80,6 +80,14 @@ class NetworkPortalDetectorTest
|
| return network_portal_detector()->state();
|
| }
|
|
|
| + void enable_lazy_detection() {
|
| + network_portal_detector()->EnableLazyDetection();
|
| + }
|
| +
|
| + void disable_lazy_detection() {
|
| + network_portal_detector()->DisableLazyDetection();
|
| + }
|
| +
|
| bool is_state_idle() {
|
| return (NetworkPortalDetector::STATE_IDLE == state());
|
| }
|
| @@ -108,6 +116,10 @@ class NetworkPortalDetectorTest
|
| network_portal_detector()->set_min_time_between_attempts_for_testing(delta);
|
| }
|
|
|
| + void set_lazy_check_interval(const base::TimeDelta& delta) {
|
| + network_portal_detector()->set_lazy_check_interval_for_testing(delta);
|
| + }
|
| +
|
| void set_time_ticks(const base::TimeTicks& time_ticks) {
|
| network_portal_detector()->set_time_ticks_for_testing(time_ticks);
|
| }
|
| @@ -458,4 +470,85 @@ TEST_F(NetworkPortalDetectorTest, NoResponseButBehindPortal) {
|
| wifi1_network());
|
| }
|
|
|
| +TEST_F(NetworkPortalDetectorTest, LazyDetectionForOnlineNetwork) {
|
| + ASSERT_TRUE(is_state_idle());
|
| + set_min_time_between_attempts(base::TimeDelta());
|
| + set_lazy_check_interval(base::TimeDelta());
|
| +
|
| + SetConnected(wifi1_network());
|
| + enable_lazy_detection();
|
| + CompleteURLFetch(net::OK, 204, NULL);
|
| +
|
| + ASSERT_EQ(3, attempt_count());
|
| + ASSERT_TRUE(is_state_portal_detection_pending());
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| + wifi1_network());
|
| +
|
| + // To run CaptivePortalDetector::DetectCaptivePortal().
|
| + MessageLoop::current()->RunUntilIdle();
|
| +
|
| + CompleteURLFetch(net::OK, 204, NULL);
|
| +
|
| + ASSERT_EQ(3, attempt_count());
|
| + ASSERT_TRUE(is_state_portal_detection_pending());
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| + wifi1_network());
|
| +
|
| + // To run CaptivePortalDetector::DetectCaptivePortal().
|
| + MessageLoop::current()->RunUntilIdle();
|
| +
|
| + disable_lazy_detection();
|
| + ASSERT_TRUE(is_state_idle());
|
| +}
|
| +
|
| +TEST_F(NetworkPortalDetectorTest, LazyDetectionForPortalNetwork) {
|
| + ASSERT_TRUE(is_state_idle());
|
| + set_min_time_between_attempts(base::TimeDelta());
|
| + set_lazy_check_interval(base::TimeDelta());
|
| +
|
| + SetConnected(wifi1_network());
|
| + enable_lazy_detection();
|
| +
|
| + CompleteURLFetch(net::ERR_CONNECTION_CLOSED,
|
| + net::URLFetcher::RESPONSE_CODE_INVALID,
|
| + NULL);
|
| + ASSERT_EQ(1, attempt_count());
|
| + ASSERT_TRUE(is_state_portal_detection_pending());
|
| + CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
|
| + wifi1_network());
|
| +
|
| + // To run CaptivePortalDetector::DetectCaptivePortal().
|
| + MessageLoop::current()->RunUntilIdle();
|
| +
|
| + CompleteURLFetch(net::ERR_CONNECTION_CLOSED,
|
| + net::URLFetcher::RESPONSE_CODE_INVALID,
|
| + NULL);
|
| + ASSERT_EQ(2, attempt_count());
|
| + ASSERT_TRUE(is_state_portal_detection_pending());
|
| + CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
|
| + wifi1_network());
|
| +
|
| + // To run CaptivePortalDetector::DetectCaptivePortal().
|
| + MessageLoop::current()->RunUntilIdle();
|
| +
|
| + CompleteURLFetch(net::OK, 200, NULL);
|
| + ASSERT_EQ(3, attempt_count());
|
| + ASSERT_TRUE(is_state_portal_detection_pending());
|
| + CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
|
| + wifi1_network());
|
| +
|
| + // To run CaptivePortalDetector::DetectCaptivePortal().
|
| + MessageLoop::current()->RunUntilIdle();
|
| + CompleteURLFetch(net::OK, 200, NULL);
|
| + ASSERT_EQ(3, attempt_count());
|
| + ASSERT_TRUE(is_state_portal_detection_pending());
|
| + CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
|
| + wifi1_network());
|
| +
|
| + disable_lazy_detection();
|
| + ASSERT_TRUE(is_state_idle());
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|