| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ssl/ssl_error_handler.h" | 5 #include "chrome/browser/ssl/ssl_error_handler.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 tick_clock_(new base::SimpleTestTickClock), | 196 tick_clock_(new base::SimpleTestTickClock), |
| 197 test_server_(new net::EmbeddedTestServer) { | 197 test_server_(new net::EmbeddedTestServer) { |
| 198 SetThreadBundleOptions(content::TestBrowserThreadBundle::REAL_IO_THREAD); | 198 SetThreadBundleOptions(content::TestBrowserThreadBundle::REAL_IO_THREAD); |
| 199 network_time::NetworkTimeTracker::RegisterPrefs(pref_service_.registry()); | 199 network_time::NetworkTimeTracker::RegisterPrefs(pref_service_.registry()); |
| 200 } | 200 } |
| 201 | 201 |
| 202 void SetUp() override { | 202 void SetUp() override { |
| 203 ChromeRenderViewHostTestHarness::SetUp(); | 203 ChromeRenderViewHostTestHarness::SetUp(); |
| 204 | 204 |
| 205 field_trial_test()->SetNetworkQueriesWithVariationsService( | 205 field_trial_test()->SetNetworkQueriesWithVariationsService( |
| 206 false, 0.0, network_time::FieldTrialTest::FETCHES_IN_BACKGROUND_ONLY); | 206 false, 0.0, |
| 207 network_time::NetworkTimeTracker::FETCHES_IN_BACKGROUND_ONLY); |
| 207 tracker_.reset(new network_time::NetworkTimeTracker( | 208 tracker_.reset(new network_time::NetworkTimeTracker( |
| 208 std::unique_ptr<base::Clock>(clock_), | 209 std::unique_ptr<base::Clock>(clock_), |
| 209 std::unique_ptr<base::TickClock>(tick_clock_), &pref_service_, | 210 std::unique_ptr<base::TickClock>(tick_clock_), &pref_service_, |
| 210 new net::TestURLRequestContextGetter( | 211 new net::TestURLRequestContextGetter( |
| 211 content::BrowserThread::GetTaskRunnerForThread( | 212 content::BrowserThread::GetTaskRunnerForThread( |
| 212 content::BrowserThread::IO)))); | 213 content::BrowserThread::IO)))); |
| 213 | 214 |
| 214 // Do this to be sure that |is_null| returns false. | 215 // Do this to be sure that |is_null| returns false. |
| 215 clock_->Advance(base::TimeDelta::FromDays(111)); | 216 clock_->Advance(base::TimeDelta::FromDays(111)); |
| 216 tick_clock_->Advance(base::TimeDelta::FromDays(222)); | 217 tick_clock_->Advance(base::TimeDelta::FromDays(222)); |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 444 EXPECT_EQ(network_time::NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT, | 445 EXPECT_EQ(network_time::NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT, |
| 445 tracker()->GetNetworkTime(&network_time, &uncertainty)); | 446 tracker()->GetNetworkTime(&network_time, &uncertainty)); |
| 446 | 447 |
| 447 // Enable network time queries and handle the error. A bad clock interstitial | 448 // Enable network time queries and handle the error. A bad clock interstitial |
| 448 // should be shown. | 449 // should be shown. |
| 449 test_server()->RegisterRequestHandler( | 450 test_server()->RegisterRequestHandler( |
| 450 base::Bind(&network_time::GoodTimeResponseHandler)); | 451 base::Bind(&network_time::GoodTimeResponseHandler)); |
| 451 EXPECT_TRUE(test_server()->Start()); | 452 EXPECT_TRUE(test_server()->Start()); |
| 452 tracker()->SetTimeServerURLForTesting(test_server()->GetURL("/")); | 453 tracker()->SetTimeServerURLForTesting(test_server()->GetURL("/")); |
| 453 field_trial_test()->SetNetworkQueriesWithVariationsService( | 454 field_trial_test()->SetNetworkQueriesWithVariationsService( |
| 454 true, 0.0, network_time::FieldTrialTest::FETCHES_ON_DEMAND_ONLY); | 455 true, 0.0, network_time::NetworkTimeTracker::FETCHES_ON_DEMAND_ONLY); |
| 455 error_handler()->StartHandlingError(); | 456 error_handler()->StartHandlingError(); |
| 456 | 457 |
| 457 EXPECT_TRUE(error_handler()->IsTimerRunning()); | 458 EXPECT_TRUE(error_handler()->IsTimerRunning()); |
| 458 tracker()->WaitForFetchForTesting(123123123); | 459 tracker()->WaitForFetchForTesting(123123123); |
| 459 base::RunLoop().RunUntilIdle(); | 460 base::RunLoop().RunUntilIdle(); |
| 460 | 461 |
| 461 EXPECT_TRUE(error_handler()->bad_clock_interstitial_shown()); | 462 EXPECT_TRUE(error_handler()->bad_clock_interstitial_shown()); |
| 462 EXPECT_FALSE(error_handler()->IsTimerRunning()); | 463 EXPECT_FALSE(error_handler()->IsTimerRunning()); |
| 463 } | 464 } |
| 464 | 465 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 | 500 |
| 500 // Enable network time queries and handle the error. Because the | 501 // Enable network time queries and handle the error. Because the |
| 501 // network time cannot be determined before the timer elapses, an SSL | 502 // network time cannot be determined before the timer elapses, an SSL |
| 502 // interstitial should be shown. | 503 // interstitial should be shown. |
| 503 base::RunLoop wait_for_time_query_loop; | 504 base::RunLoop wait_for_time_query_loop; |
| 504 test_server()->RegisterRequestHandler( | 505 test_server()->RegisterRequestHandler( |
| 505 base::Bind(&WaitForRequest, wait_for_time_query_loop.QuitClosure())); | 506 base::Bind(&WaitForRequest, wait_for_time_query_loop.QuitClosure())); |
| 506 EXPECT_TRUE(test_server()->Start()); | 507 EXPECT_TRUE(test_server()->Start()); |
| 507 tracker()->SetTimeServerURLForTesting(test_server()->GetURL("/")); | 508 tracker()->SetTimeServerURLForTesting(test_server()->GetURL("/")); |
| 508 field_trial_test()->SetNetworkQueriesWithVariationsService( | 509 field_trial_test()->SetNetworkQueriesWithVariationsService( |
| 509 true, 0.0, network_time::FieldTrialTest::FETCHES_ON_DEMAND_ONLY); | 510 true, 0.0, network_time::NetworkTimeTracker::FETCHES_ON_DEMAND_ONLY); |
| 510 error_handler()->StartHandlingError(); | 511 error_handler()->StartHandlingError(); |
| 511 EXPECT_TRUE(error_handler()->IsTimerRunning()); | 512 EXPECT_TRUE(error_handler()->IsTimerRunning()); |
| 512 wait_for_time_query_loop.Run(); | 513 wait_for_time_query_loop.Run(); |
| 513 base::RunLoop().RunUntilIdle(); | 514 base::RunLoop().RunUntilIdle(); |
| 514 | 515 |
| 515 EXPECT_FALSE(error_handler()->bad_clock_interstitial_shown()); | 516 EXPECT_FALSE(error_handler()->bad_clock_interstitial_shown()); |
| 516 EXPECT_TRUE(error_handler()->ssl_interstitial_shown()); | 517 EXPECT_TRUE(error_handler()->ssl_interstitial_shown()); |
| 517 EXPECT_FALSE(error_handler()->IsTimerRunning()); | 518 EXPECT_FALSE(error_handler()->IsTimerRunning()); |
| 518 | 519 |
| 519 // Clear the error handler to test that, when the request completes, | 520 // Clear the error handler to test that, when the request completes, |
| 520 // it doesn't try to call a callback on a deleted SSLErrorHandler. | 521 // it doesn't try to call a callback on a deleted SSLErrorHandler. |
| 521 ClearErrorHandler(); | 522 ClearErrorHandler(); |
| 522 | 523 |
| 523 // Shut down the server to cancel the pending request. | 524 // Shut down the server to cancel the pending request. |
| 524 ASSERT_TRUE(test_server()->ShutdownAndWaitUntilComplete()); | 525 ASSERT_TRUE(test_server()->ShutdownAndWaitUntilComplete()); |
| 525 } | 526 } |
| OLD | NEW |