| Index: chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
|
| diff --git a/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc b/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
|
| index dea21971c47772d464f23382fcd52561d89841ac..174c4cbaedb8b9c8fb296d78834fba173ea443d4 100644
|
| --- a/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
|
| +++ b/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
|
| @@ -62,8 +62,7 @@ class ResultHistogramChecker {
|
| public:
|
| explicit ResultHistogramChecker(base::HistogramSamples* base)
|
| : base_(base),
|
| - count_(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_COUNT) {
|
| - }
|
| + count_(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_COUNT) {}
|
| virtual ~ResultHistogramChecker() {}
|
|
|
| ResultHistogramChecker* Expect(
|
| @@ -145,8 +144,8 @@ class NetworkPortalDetectorImplTest
|
| set_time_ticks(base::TimeTicks::Now());
|
|
|
| if (base::HistogramBase* histogram =
|
| - base::StatisticsRecorder::FindHistogram(
|
| - NetworkPortalDetectorImpl::kDetectionResultHistogram)) {
|
| + base::StatisticsRecorder::FindHistogram(
|
| + NetworkPortalDetectorImpl::kDetectionResultHistogram)) {
|
| original_samples_.reset(histogram->SnapshotSamples().release());
|
| }
|
| }
|
| @@ -156,6 +155,8 @@ class NetworkPortalDetectorImplTest
|
| profile_.reset();
|
| NetworkHandler::Shutdown();
|
| DBusThreadManager::Shutdown();
|
| + PortalDetectorStrategy::reset_request_timeout_for_testing();
|
| + PortalDetectorStrategy::reset_min_time_between_attempts_for_testing();
|
| }
|
|
|
| void CheckPortalState(NetworkPortalDetector::CaptivePortalStatus status,
|
| @@ -167,14 +168,14 @@ class NetworkPortalDetectorImplTest
|
| ASSERT_EQ(response_code, state.response_code);
|
| }
|
|
|
| - void CheckRequestTimeoutAndCompleteAttempt(
|
| - int expected_attempt_count,
|
| - int expected_request_timeout_sec,
|
| - int net_error,
|
| - int status_code) {
|
| + void CheckRequestTimeoutAndCompleteAttempt(int expected_attempt_count,
|
| + int expected_request_timeout_sec,
|
| + int net_error,
|
| + int status_code) {
|
| ASSERT_TRUE(is_state_checking_for_portal());
|
| ASSERT_EQ(expected_attempt_count, attempt_count());
|
| - ASSERT_EQ(expected_request_timeout_sec, get_request_timeout_sec());
|
| + ASSERT_EQ(base::TimeDelta::FromSeconds(expected_request_timeout_sec),
|
| + get_request_timeout());
|
| CompleteURLFetch(net_error, status_code, NULL);
|
| }
|
|
|
| @@ -192,25 +193,22 @@ class NetworkPortalDetectorImplTest
|
| return network_portal_detector()->StartDetectionIfIdle();
|
| }
|
|
|
| - void enable_lazy_detection() {
|
| - network_portal_detector()->EnableLazyDetection();
|
| + void enable_error_screen_strategy() {
|
| + network_portal_detector()->EnableErrorScreenStrategy();
|
| }
|
|
|
| - void disable_lazy_detection() {
|
| - network_portal_detector()->DisableLazyDetection();
|
| + void disable_error_screen_strategy() {
|
| + network_portal_detector()->DisableErrorScreenStrategy();
|
| }
|
|
|
| - void cancel_portal_detection() {
|
| - network_portal_detector()->CancelPortalDetection();
|
| - }
|
| + void cancel_detection() { network_portal_detector()->CancelDetection(); }
|
|
|
| - bool detection_timeout_is_cancelled() {
|
| - return
|
| - network_portal_detector()->DetectionTimeoutIsCancelledForTesting();
|
| + bool attempt_timeout_is_cancelled() {
|
| + return network_portal_detector()->AttemptTimeoutIsCancelledForTesting();
|
| }
|
|
|
| - int get_request_timeout_sec() {
|
| - return network_portal_detector()->GetRequestTimeoutSec();
|
| + base::TimeDelta get_request_timeout() {
|
| + return network_portal_detector()->strategy_->GetCurrentAttemptTimeout();
|
| }
|
|
|
| bool is_state_idle() {
|
| @@ -226,7 +224,7 @@ class NetworkPortalDetectorImplTest
|
| }
|
|
|
| void set_request_timeout(const base::TimeDelta& timeout) {
|
| - network_portal_detector()->set_request_timeout_for_testing(timeout);
|
| + PortalDetectorStrategy::set_request_timeout_for_testing(timeout);
|
| }
|
|
|
| const base::TimeDelta& next_attempt_delay() {
|
| @@ -234,19 +232,22 @@ class NetworkPortalDetectorImplTest
|
| }
|
|
|
| int attempt_count() {
|
| - return network_portal_detector()->attempt_count_for_testing();
|
| + return network_portal_detector()
|
| + ->login_screen_strategy_.attempt_count_for_testing();
|
| }
|
|
|
| void set_attempt_count(int ac) {
|
| - return network_portal_detector()->set_attempt_count_for_testing(ac);
|
| + network_portal_detector()
|
| + ->login_screen_strategy_.set_attempt_count_for_testing(ac);
|
| }
|
|
|
| void set_min_time_between_attempts(const base::TimeDelta& delta) {
|
| - network_portal_detector()->set_min_time_between_attempts_for_testing(delta);
|
| + PortalDetectorStrategy::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_error_screen_strategy_check_interval(const base::TimeDelta& delta) {
|
| + network_portal_detector()
|
| + ->error_screen_strategy_.set_delay_between_attempts_for_testing(delta);
|
| }
|
|
|
| void set_time_ticks(const base::TimeTicks& time_ticks) {
|
| @@ -256,8 +257,10 @@ class NetworkPortalDetectorImplTest
|
| void SetBehindPortal(const std::string& service_path) {
|
| DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
|
| dbus::ObjectPath(service_path),
|
| - shill::kStateProperty, base::StringValue(shill::kStatePortal),
|
| - base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
|
| + shill::kStateProperty,
|
| + base::StringValue(shill::kStatePortal),
|
| + base::Bind(&base::DoNothing),
|
| + base::Bind(&ErrorCallbackFunction));
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| @@ -272,14 +275,16 @@ class NetworkPortalDetectorImplTest
|
| void SetConnected(const std::string& service_path) {
|
| DBusThreadManager::Get()->GetShillServiceClient()->Connect(
|
| dbus::ObjectPath(service_path),
|
| - base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
|
| + base::Bind(&base::DoNothing),
|
| + base::Bind(&ErrorCallbackFunction));
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| void SetDisconnected(const std::string& service_path) {
|
| DBusThreadManager::Get()->GetShillServiceClient()->Disconnect(
|
| dbus::ObjectPath(service_path),
|
| - base::Bind(&*base::DoNothing), base::Bind(&ErrorCallbackFunction));
|
| + base::Bind(&*base::DoNothing),
|
| + base::Bind(&ErrorCallbackFunction));
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| @@ -298,20 +303,28 @@ class NetworkPortalDetectorImplTest
|
| const bool add_to_watchlist = true;
|
| service_test->AddService(kStubEthernet,
|
| kStubEthernet,
|
| - shill::kTypeEthernet, shill::kStateIdle,
|
| - add_to_visible, add_to_watchlist);
|
| + shill::kTypeEthernet,
|
| + shill::kStateIdle,
|
| + add_to_visible,
|
| + add_to_watchlist);
|
| service_test->AddService(kStubWireless1,
|
| kStubWireless1,
|
| - shill::kTypeWifi, shill::kStateIdle,
|
| - add_to_visible, add_to_watchlist);
|
| + shill::kTypeWifi,
|
| + shill::kStateIdle,
|
| + add_to_visible,
|
| + add_to_watchlist);
|
| service_test->AddService(kStubWireless2,
|
| kStubWireless2,
|
| - shill::kTypeWifi, shill::kStateIdle,
|
| - add_to_visible, add_to_watchlist);
|
| + shill::kTypeWifi,
|
| + shill::kStateIdle,
|
| + add_to_visible,
|
| + add_to_watchlist);
|
| service_test->AddService(kStubCellular,
|
| kStubCellular,
|
| - shill::kTypeCellular, shill::kStateIdle,
|
| - add_to_visible, add_to_watchlist);
|
| + shill::kTypeCellular,
|
| + shill::kStateIdle,
|
| + add_to_visible,
|
| + add_to_watchlist);
|
| }
|
|
|
| void SetupNetworkHandler() {
|
| @@ -331,17 +344,18 @@ TEST_F(NetworkPortalDetectorImplTest, NoPortal) {
|
| SetConnected(kStubWireless1);
|
|
|
| ASSERT_TRUE(is_state_checking_for_portal());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1, kStubWireless1);
|
|
|
| CompleteURLFetch(net::OK, 204, NULL);
|
|
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubWireless1);
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Check());
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubWireless1);
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, Portal) {
|
| @@ -354,8 +368,8 @@ TEST_F(NetworkPortalDetectorImplTest, Portal) {
|
| CompleteURLFetch(net::OK, 200, NULL);
|
|
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200, kStubWireless1);
|
|
|
| // Check HTTP 301 response code.
|
| SetConnected(kStubWireless2);
|
| @@ -364,8 +378,8 @@ TEST_F(NetworkPortalDetectorImplTest, Portal) {
|
| CompleteURLFetch(net::OK, 301, NULL);
|
|
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 301,
|
| - kStubWireless2);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 301, kStubWireless2);
|
|
|
| // Check HTTP 302 response code.
|
| SetConnected(kStubEthernet);
|
| @@ -374,12 +388,13 @@ TEST_F(NetworkPortalDetectorImplTest, Portal) {
|
| CompleteURLFetch(net::OK, 302, NULL);
|
|
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 302,
|
| - kStubEthernet);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 302, kStubEthernet);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 3)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 3)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, Online2Offline) {
|
| @@ -420,9 +435,10 @@ TEST_F(NetworkPortalDetectorImplTest, Online2Offline) {
|
|
|
| network_portal_detector()->RemoveObserver(&observer);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, TwoNetworks) {
|
| @@ -441,15 +457,16 @@ TEST_F(NetworkPortalDetectorImplTest, TwoNetworks) {
|
| // ethernet is in online state.
|
| CompleteURLFetch(net::OK, 204, NULL);
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubEthernet);
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubEthernet);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200, kStubWireless1);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, NetworkChanged) {
|
| @@ -471,17 +488,18 @@ TEST_F(NetworkPortalDetectorImplTest, NetworkChanged) {
|
| // ethernet is in online state.
|
| CompleteURLFetch(net::OK, 204, NULL);
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubEthernet);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubEthernet);
|
|
|
| // As active network was changed during portal detection for wifi
|
| // network, it's state must be unknown.
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1, kStubWireless1);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, NetworkStateNotChanged) {
|
| @@ -493,15 +511,16 @@ TEST_F(NetworkPortalDetectorImplTest, NetworkStateNotChanged) {
|
| CompleteURLFetch(net::OK, 204, NULL);
|
|
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubWireless1);
|
|
|
| SetConnected(kStubWireless1);
|
| ASSERT_TRUE(is_state_idle());
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, NetworkStateChanged) {
|
| @@ -514,8 +533,8 @@ TEST_F(NetworkPortalDetectorImplTest, NetworkStateChanged) {
|
| CompleteURLFetch(net::OK, 200, NULL);
|
|
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200, kStubWireless1);
|
|
|
| SetConnected(kStubWireless1);
|
| ASSERT_TRUE(is_state_checking_for_portal());
|
| @@ -523,8 +542,8 @@ TEST_F(NetworkPortalDetectorImplTest, NetworkStateChanged) {
|
| CompleteURLFetch(net::OK, 204, NULL);
|
|
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubWireless1);
|
|
|
| SetBehindPortal(kStubWireless1);
|
| ASSERT_TRUE(is_state_checking_for_portal());
|
| @@ -532,13 +551,14 @@ TEST_F(NetworkPortalDetectorImplTest, NetworkStateChanged) {
|
| CompleteURLFetch(net::OK, 200, NULL);
|
|
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200, kStubWireless1);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 2)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 2)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, PortalDetectionTimeout) {
|
| @@ -571,6 +591,7 @@ TEST_F(NetworkPortalDetectorImplTest, PortalDetectionRetryAfter) {
|
| ASSERT_EQ(0, attempt_count());
|
|
|
| SetConnected(kStubWireless1);
|
| + ASSERT_TRUE(is_state_checking_for_portal());
|
| CompleteURLFetch(net::OK, 503, retry_after);
|
|
|
| // First portal detection completed, next portal detection is
|
| @@ -625,12 +646,13 @@ TEST_F(NetworkPortalDetectorImplTest, FirstAttemptFailed) {
|
| CompleteURLFetch(net::OK, 204, NULL);
|
| ASSERT_TRUE(is_state_idle());
|
| ASSERT_EQ(2, attempt_count());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubWireless1);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, AllAttemptsFailed) {
|
| @@ -663,12 +685,14 @@ TEST_F(NetworkPortalDetectorImplTest, AllAttemptsFailed) {
|
| CompleteURLFetch(net::OK, 503, retry_after);
|
| ASSERT_TRUE(is_state_idle());
|
| ASSERT_EQ(3, attempt_count());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE, 503,
|
| + CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE,
|
| + 503,
|
| kStubWireless1);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, ProxyAuthRequired) {
|
| @@ -680,14 +704,15 @@ TEST_F(NetworkPortalDetectorImplTest, ProxyAuthRequired) {
|
| ASSERT_EQ(1, attempt_count());
|
| ASSERT_TRUE(is_state_idle());
|
| CheckPortalState(
|
| - NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED, 407,
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED,
|
| + 407,
|
| kStubWireless1);
|
|
|
| - ASSERT_TRUE(
|
| - MakeResultHistogramChecker()
|
| - ->Expect(
|
| - NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::
|
| + CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED,
|
| + 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, NoResponseButBehindPortal) {
|
| @@ -697,27 +722,24 @@ TEST_F(NetworkPortalDetectorImplTest, NoResponseButBehindPortal) {
|
| SetBehindPortal(kStubWireless1);
|
| ASSERT_TRUE(is_state_checking_for_portal());
|
|
|
| - CompleteURLFetch(net::ERR_CONNECTION_CLOSED,
|
| - net::URLFetcher::RESPONSE_CODE_INVALID,
|
| - NULL);
|
| + CompleteURLFetch(
|
| + net::ERR_CONNECTION_CLOSED, net::URLFetcher::RESPONSE_CODE_INVALID, NULL);
|
| ASSERT_EQ(1, attempt_count());
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
|
|
| // To run CaptivePortalDetector::DetectCaptivePortal().
|
| base::RunLoop().RunUntilIdle();
|
|
|
| - CompleteURLFetch(net::ERR_CONNECTION_CLOSED,
|
| - net::URLFetcher::RESPONSE_CODE_INVALID,
|
| - NULL);
|
| + CompleteURLFetch(
|
| + net::ERR_CONNECTION_CLOSED, net::URLFetcher::RESPONSE_CODE_INVALID, NULL);
|
| ASSERT_EQ(2, attempt_count());
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
|
|
| // To run CaptivePortalDetector::DetectCaptivePortal().
|
| base::RunLoop().RunUntilIdle();
|
|
|
| - CompleteURLFetch(net::ERR_CONNECTION_CLOSED,
|
| - net::URLFetcher::RESPONSE_CODE_INVALID,
|
| - NULL);
|
| + CompleteURLFetch(
|
| + net::ERR_CONNECTION_CLOSED, net::URLFetcher::RESPONSE_CODE_INVALID, NULL);
|
| ASSERT_EQ(3, attempt_count());
|
| ASSERT_TRUE(is_state_idle());
|
|
|
| @@ -725,17 +747,19 @@ TEST_F(NetworkPortalDetectorImplTest, NoResponseButBehindPortal) {
|
| net::URLFetcher::RESPONSE_CODE_INVALID,
|
| kStubWireless1);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 1)
|
| + ->Check());
|
| }
|
|
|
| -TEST_F(NetworkPortalDetectorImplTest, DisableLazyDetectionWhilePendingRequest) {
|
| +TEST_F(NetworkPortalDetectorImplTest,
|
| + DisableErrorScreenStrategyWhilePendingRequest) {
|
| ASSERT_TRUE(is_state_idle());
|
| set_attempt_count(3);
|
| - enable_lazy_detection();
|
| + enable_error_screen_strategy();
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| - disable_lazy_detection();
|
| + disable_error_screen_strategy();
|
|
|
| // To run CaptivePortalDetector::DetectCaptivePortal().
|
| base::MessageLoop::current()->RunUntilIdle();
|
| @@ -743,103 +767,90 @@ TEST_F(NetworkPortalDetectorImplTest, DisableLazyDetectionWhilePendingRequest) {
|
| ASSERT_TRUE(MakeResultHistogramChecker()->Check());
|
| }
|
|
|
| -TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForOnlineNetwork) {
|
| +TEST_F(NetworkPortalDetectorImplTest, ErrorScreenStrategyForOnlineNetwork) {
|
| ASSERT_TRUE(is_state_idle());
|
| set_min_time_between_attempts(base::TimeDelta());
|
| - set_lazy_check_interval(base::TimeDelta());
|
| + set_error_screen_strategy_check_interval(base::TimeDelta());
|
|
|
| SetConnected(kStubWireless1);
|
| - enable_lazy_detection();
|
| + enable_error_screen_strategy();
|
| CompleteURLFetch(net::OK, 204, NULL);
|
|
|
| - ASSERT_EQ(1, attempt_count());
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| CheckPortalState(
|
| - NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubWireless1);
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubWireless1);
|
|
|
| // To run CaptivePortalDetector::DetectCaptivePortal().
|
| base::RunLoop().RunUntilIdle();
|
|
|
| CompleteURLFetch(net::OK, 204, NULL);
|
|
|
| - ASSERT_EQ(2, attempt_count());
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| CheckPortalState(
|
| - NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubWireless1);
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubWireless1);
|
|
|
| // To run CaptivePortalDetector::DetectCaptivePortal().
|
| base::RunLoop().RunUntilIdle();
|
|
|
| - disable_lazy_detection();
|
| + disable_error_screen_strategy();
|
|
|
| - // One more detection result, because DizableLazyDetection() doesn't
|
| - // cancel last detection request.
|
| - CompleteURLFetch(net::OK, 204, NULL);
|
| - ASSERT_EQ(3, attempt_count());
|
| ASSERT_TRUE(is_state_idle());
|
| CheckPortalState(
|
| - NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubWireless1);
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubWireless1);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Check());
|
| }
|
|
|
| -TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForPortalNetwork) {
|
| +TEST_F(NetworkPortalDetectorImplTest, ErrorScreenStrategyForPortalNetwork) {
|
| ASSERT_TRUE(is_state_idle());
|
| set_min_time_between_attempts(base::TimeDelta());
|
| - set_lazy_check_interval(base::TimeDelta());
|
| + set_error_screen_strategy_check_interval(base::TimeDelta());
|
|
|
| + enable_error_screen_strategy();
|
| SetConnected(kStubWireless1);
|
| - enable_lazy_detection();
|
|
|
| - CompleteURLFetch(net::ERR_CONNECTION_CLOSED,
|
| - net::URLFetcher::RESPONSE_CODE_INVALID,
|
| - NULL);
|
| - ASSERT_EQ(1, attempt_count());
|
| + CompleteURLFetch(
|
| + net::ERR_CONNECTION_CLOSED, net::URLFetcher::RESPONSE_CODE_INVALID, NULL);
|
| + ASSERT_EQ(0, attempt_count());
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1, kStubWireless1);
|
|
|
| // To run CaptivePortalDetector::DetectCaptivePortal().
|
| base::RunLoop().RunUntilIdle();
|
|
|
| - CompleteURLFetch(net::ERR_CONNECTION_CLOSED,
|
| - net::URLFetcher::RESPONSE_CODE_INVALID,
|
| - NULL);
|
| - ASSERT_EQ(2, attempt_count());
|
| + CompleteURLFetch(
|
| + net::ERR_CONNECTION_CLOSED, net::URLFetcher::RESPONSE_CODE_INVALID, NULL);
|
| + ASSERT_EQ(0, attempt_count());
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1, kStubWireless1);
|
|
|
| // To run CaptivePortalDetector::DetectCaptivePortal().
|
| base::RunLoop().RunUntilIdle();
|
|
|
| CompleteURLFetch(net::OK, 200, NULL);
|
| - ASSERT_EQ(3, attempt_count());
|
| + ASSERT_EQ(0, attempt_count());
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200, kStubWireless1);
|
|
|
| // To run CaptivePortalDetector::DetectCaptivePortal().
|
| base::RunLoop().RunUntilIdle();
|
|
|
| - disable_lazy_detection();
|
| + disable_error_screen_strategy();
|
|
|
| - // One more detection result, because DizableLazyDetection() doesn't
|
| - // cancel last detection request.
|
| - CompleteURLFetch(net::OK, 200, NULL);
|
| - ASSERT_EQ(3, attempt_count());
|
| ASSERT_TRUE(is_state_idle());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200, kStubWireless1);
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, DetectionTimeoutIsCancelled) {
|
| @@ -848,15 +859,15 @@ TEST_F(NetworkPortalDetectorImplTest, DetectionTimeoutIsCancelled) {
|
|
|
| SetConnected(kStubWireless1);
|
| ASSERT_TRUE(is_state_checking_for_portal());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1, kStubWireless1);
|
|
|
| - cancel_portal_detection();
|
| + cancel_detection();
|
|
|
| ASSERT_TRUE(is_state_idle());
|
| - ASSERT_TRUE(detection_timeout_is_cancelled());
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
|
| - kStubWireless1);
|
| + ASSERT_TRUE(attempt_timeout_is_cancelled());
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1, kStubWireless1);
|
|
|
| ASSERT_TRUE(MakeResultHistogramChecker()->Check());
|
| }
|
| @@ -872,8 +883,8 @@ TEST_F(NetworkPortalDetectorImplTest, TestDetectionRestart) {
|
|
|
| CompleteURLFetch(net::OK, 204, NULL);
|
|
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204, kStubWireless1);
|
| ASSERT_TRUE(is_state_idle());
|
|
|
| // First portal detection attempts determines PORTAL state.
|
| @@ -885,57 +896,64 @@ TEST_F(NetworkPortalDetectorImplTest, TestDetectionRestart) {
|
| ASSERT_TRUE(is_state_checking_for_portal());
|
| CompleteURLFetch(net::OK, 200, NULL);
|
|
|
| - CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
|
| - kStubWireless1);
|
| + CheckPortalState(
|
| + NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200, kStubWireless1);
|
| ASSERT_TRUE(is_state_idle());
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()->
|
| - Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)->
|
| - Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 1)->
|
| - Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, RequestTimeouts) {
|
| ASSERT_TRUE(is_state_idle());
|
| set_min_time_between_attempts(base::TimeDelta());
|
| - set_lazy_check_interval(base::TimeDelta());
|
| + set_error_screen_strategy_check_interval(base::TimeDelta());
|
|
|
| SetNetworkDeviceEnabled(shill::kTypeWifi, false);
|
| SetConnected(kStubCellular);
|
|
|
| // First portal detection attempt for cellular1 uses 5sec timeout.
|
| - CheckRequestTimeoutAndCompleteAttempt(1, 5, net::ERR_CONNECTION_CLOSED,
|
| - net::URLFetcher::RESPONSE_CODE_INVALID);
|
| + CheckRequestTimeoutAndCompleteAttempt(
|
| + 1, 5, net::ERR_CONNECTION_CLOSED, net::URLFetcher::RESPONSE_CODE_INVALID);
|
|
|
| // Second portal detection attempt for cellular1 uses 10sec timeout.
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| base::RunLoop().RunUntilIdle();
|
| - CheckRequestTimeoutAndCompleteAttempt(2, 10, net::ERR_CONNECTION_CLOSED,
|
| + CheckRequestTimeoutAndCompleteAttempt(2,
|
| + 10,
|
| + net::ERR_CONNECTION_CLOSED,
|
| net::URLFetcher::RESPONSE_CODE_INVALID);
|
|
|
| // Third portal detection attempt for cellular1 uses 15sec timeout.
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| base::RunLoop().RunUntilIdle();
|
| - CheckRequestTimeoutAndCompleteAttempt(3, 15, net::ERR_CONNECTION_CLOSED,
|
| + CheckRequestTimeoutAndCompleteAttempt(3,
|
| + 15,
|
| + net::ERR_CONNECTION_CLOSED,
|
| net::URLFetcher::RESPONSE_CODE_INVALID);
|
|
|
| ASSERT_TRUE(is_state_idle());
|
|
|
| // Check that in lazy detection for cellular1 15sec timeout is used.
|
| - enable_lazy_detection();
|
| + enable_error_screen_strategy();
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| base::RunLoop().RunUntilIdle();
|
| - disable_lazy_detection();
|
| - CheckRequestTimeoutAndCompleteAttempt(3, 15, net::ERR_CONNECTION_CLOSED,
|
| + CheckRequestTimeoutAndCompleteAttempt(3,
|
| + 15,
|
| + net::ERR_CONNECTION_CLOSED,
|
| net::URLFetcher::RESPONSE_CODE_INVALID);
|
| + disable_error_screen_strategy();
|
| ASSERT_TRUE(is_state_idle());
|
|
|
| SetNetworkDeviceEnabled(shill::kTypeWifi, true);
|
| SetConnected(kStubWireless1);
|
|
|
| // First portal detection attempt for wifi1 uses 5sec timeout.
|
| - CheckRequestTimeoutAndCompleteAttempt(1, 5, net::ERR_CONNECTION_CLOSED,
|
| - net::URLFetcher::RESPONSE_CODE_INVALID);
|
| + CheckRequestTimeoutAndCompleteAttempt(
|
| + 1, 5, net::ERR_CONNECTION_CLOSED, net::URLFetcher::RESPONSE_CODE_INVALID);
|
|
|
| // Second portal detection attempt for wifi1 also uses 5sec timeout.
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| @@ -943,18 +961,21 @@ TEST_F(NetworkPortalDetectorImplTest, RequestTimeouts) {
|
| CheckRequestTimeoutAndCompleteAttempt(2, 10, net::OK, 204);
|
| ASSERT_TRUE(is_state_idle());
|
|
|
| - // Check that in lazy detection for wifi1 5sec timeout is used.
|
| - enable_lazy_detection();
|
| + // Check that in error screen strategy detection for wifi1 15sec
|
| + // timeout is used.
|
| + enable_error_screen_strategy();
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| base::RunLoop().RunUntilIdle();
|
| - disable_lazy_detection();
|
| - CheckRequestTimeoutAndCompleteAttempt(3, 15, net::OK, 204);
|
| + CheckRequestTimeoutAndCompleteAttempt(2, 15, net::OK, 204);
|
| + disable_error_screen_strategy();
|
| ASSERT_TRUE(is_state_idle());
|
| + return;
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE, 1)
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE, 1)
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Check());
|
| }
|
|
|
| TEST_F(NetworkPortalDetectorImplTest, StartDetectionIfIdle) {
|
| @@ -963,19 +984,23 @@ TEST_F(NetworkPortalDetectorImplTest, StartDetectionIfIdle) {
|
| SetConnected(kStubWireless1);
|
|
|
| // First portal detection attempt for wifi1 uses 5sec timeout.
|
| - CheckRequestTimeoutAndCompleteAttempt(1, 5, net::ERR_CONNECTION_CLOSED,
|
| - net::URLFetcher::RESPONSE_CODE_INVALID);
|
| + CheckRequestTimeoutAndCompleteAttempt(
|
| + 1, 5, net::ERR_CONNECTION_CLOSED, net::URLFetcher::RESPONSE_CODE_INVALID);
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| base::RunLoop().RunUntilIdle();
|
|
|
| // Second portal detection attempt for wifi1 uses 10sec timeout.
|
| - CheckRequestTimeoutAndCompleteAttempt(2, 10, net::ERR_CONNECTION_CLOSED,
|
| + CheckRequestTimeoutAndCompleteAttempt(2,
|
| + 10,
|
| + net::ERR_CONNECTION_CLOSED,
|
| net::URLFetcher::RESPONSE_CODE_INVALID);
|
| ASSERT_TRUE(is_state_portal_detection_pending());
|
| base::RunLoop().RunUntilIdle();
|
|
|
| // Second portal detection attempt for wifi1 uses 15sec timeout.
|
| - CheckRequestTimeoutAndCompleteAttempt(3, 15, net::ERR_CONNECTION_CLOSED,
|
| + CheckRequestTimeoutAndCompleteAttempt(3,
|
| + 15,
|
| + net::ERR_CONNECTION_CLOSED,
|
| net::URLFetcher::RESPONSE_CODE_INVALID);
|
| ASSERT_TRUE(is_state_idle());
|
| start_detection_if_idle();
|
| @@ -987,10 +1012,11 @@ TEST_F(NetworkPortalDetectorImplTest, StartDetectionIfIdle) {
|
| CheckRequestTimeoutAndCompleteAttempt(1, 5, net::OK, 204);
|
| ASSERT_TRUE(is_state_idle());
|
|
|
| - ASSERT_TRUE(MakeResultHistogramChecker()
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE, 1)
|
| - ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| - ->Check());
|
| + ASSERT_TRUE(
|
| + MakeResultHistogramChecker()
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE, 1)
|
| + ->Expect(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 1)
|
| + ->Check());
|
| }
|
|
|
| } // namespace chromeos
|
|
|