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

Unified Diff: chrome/browser/chromeos/net/network_portal_detector_unittest.cc

Issue 12260003: Implemented lazy portal detection. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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: 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

Powered by Google App Engine
This is Rietveld 408576698