OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/ssl_errors/error_classification.h" | 5 #include "components/ssl_errors/error_classification.h" |
6 | 6 |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/strings/string_split.h" | 10 #include "base/strings/string_split.h" |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 | 331 |
332 // Tests that all possible NetworkClockState histogram values are recorded | 332 // Tests that all possible NetworkClockState histogram values are recorded |
333 // appropriately. | 333 // appropriately. |
334 TEST_F(SSLErrorClassificationTest, NetworkClockStateHistogram) { | 334 TEST_F(SSLErrorClassificationTest, NetworkClockStateHistogram) { |
335 base::Thread io_thread("IO thread"); | 335 base::Thread io_thread("IO thread"); |
336 base::Thread::Options thread_options; | 336 base::Thread::Options thread_options; |
337 thread_options.message_loop_type = base::MessageLoop::TYPE_IO; | 337 thread_options.message_loop_type = base::MessageLoop::TYPE_IO; |
338 EXPECT_TRUE(io_thread.StartWithOptions(thread_options)); | 338 EXPECT_TRUE(io_thread.StartWithOptions(thread_options)); |
339 | 339 |
340 net::EmbeddedTestServer test_server; | 340 net::EmbeddedTestServer test_server; |
341 ASSERT_TRUE(test_server.Start()); | 341 ASSERT_TRUE(test_server.InitializeAndListen()); |
342 | 342 |
343 base::HistogramTester histograms; | 343 base::HistogramTester histograms; |
344 histograms.ExpectTotalCount(kNetworkTimeHistogram, 0); | 344 histograms.ExpectTotalCount(kNetworkTimeHistogram, 0); |
345 TestingPrefServiceSimple pref_service; | 345 TestingPrefServiceSimple pref_service; |
346 network_time::NetworkTimeTracker::RegisterPrefs(pref_service.registry()); | 346 network_time::NetworkTimeTracker::RegisterPrefs(pref_service.registry()); |
347 base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock; | 347 base::SimpleTestTickClock* tick_clock = new base::SimpleTestTickClock; |
348 base::SimpleTestClock* clock = new base::SimpleTestClock; | 348 base::SimpleTestClock* clock = new base::SimpleTestClock; |
349 // Do this to be sure that |is_null| returns false. | 349 // Do this to be sure that |is_null| returns false. |
350 clock->Advance(base::TimeDelta::FromDays(111)); | 350 clock->Advance(base::TimeDelta::FromDays(111)); |
351 tick_clock->Advance(base::TimeDelta::FromDays(222)); | 351 tick_clock->Advance(base::TimeDelta::FromDays(222)); |
(...skipping 12 matching lines...) Expand all Loading... |
364 EXPECT_EQ( | 364 EXPECT_EQ( |
365 ssl_errors::ClockState::CLOCK_STATE_UNKNOWN, | 365 ssl_errors::ClockState::CLOCK_STATE_UNKNOWN, |
366 ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker)); | 366 ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker)); |
367 histograms.ExpectTotalCount(kNetworkTimeHistogram, 1); | 367 histograms.ExpectTotalCount(kNetworkTimeHistogram, 1); |
368 histograms.ExpectBucketCount( | 368 histograms.ExpectBucketCount( |
369 kNetworkTimeHistogram, | 369 kNetworkTimeHistogram, |
370 ssl_errors::NETWORK_CLOCK_STATE_UNKNOWN_NO_SYNC_ATTEMPT, 1); | 370 ssl_errors::NETWORK_CLOCK_STATE_UNKNOWN_NO_SYNC_ATTEMPT, 1); |
371 | 371 |
372 // First sync attempt is pending. | 372 // First sync attempt is pending. |
373 test_server.RegisterRequestHandler(base::Bind(&NetworkErrorResponseHandler)); | 373 test_server.RegisterRequestHandler(base::Bind(&NetworkErrorResponseHandler)); |
| 374 test_server.StartAcceptingConnections(); |
374 EXPECT_TRUE(network_time_tracker.QueryTimeServiceForTesting()); | 375 EXPECT_TRUE(network_time_tracker.QueryTimeServiceForTesting()); |
375 EXPECT_EQ( | 376 EXPECT_EQ( |
376 ssl_errors::ClockState::CLOCK_STATE_UNKNOWN, | 377 ssl_errors::ClockState::CLOCK_STATE_UNKNOWN, |
377 ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker)); | 378 ssl_errors::GetClockState(base::Time::Now(), &network_time_tracker)); |
378 histograms.ExpectTotalCount(kNetworkTimeHistogram, 2); | 379 histograms.ExpectTotalCount(kNetworkTimeHistogram, 2); |
379 histograms.ExpectBucketCount( | 380 histograms.ExpectBucketCount( |
380 kNetworkTimeHistogram, | 381 kNetworkTimeHistogram, |
381 ssl_errors::NETWORK_CLOCK_STATE_UNKNOWN_FIRST_SYNC_PENDING, 1); | 382 ssl_errors::NETWORK_CLOCK_STATE_UNKNOWN_FIRST_SYNC_PENDING, 1); |
382 network_time_tracker.WaitForFetchForTesting(123123123); | 383 network_time_tracker.WaitForFetchForTesting(123123123); |
383 | 384 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 clock->Advance(base::TimeDelta::FromDays(1)); | 444 clock->Advance(base::TimeDelta::FromDays(1)); |
444 // GetClockState() will fall back to the build time heuristic. | 445 // GetClockState() will fall back to the build time heuristic. |
445 ssl_errors::GetClockState(clock->Now(), &network_time_tracker); | 446 ssl_errors::GetClockState(clock->Now(), &network_time_tracker); |
446 histograms.ExpectTotalCount(kNetworkTimeHistogram, 8); | 447 histograms.ExpectTotalCount(kNetworkTimeHistogram, 8); |
447 histograms.ExpectBucketCount( | 448 histograms.ExpectBucketCount( |
448 kNetworkTimeHistogram, ssl_errors::NETWORK_CLOCK_STATE_UNKNOWN_SYNC_LOST, | 449 kNetworkTimeHistogram, ssl_errors::NETWORK_CLOCK_STATE_UNKNOWN_SYNC_LOST, |
449 1); | 450 1); |
450 | 451 |
451 io_thread.Stop(); | 452 io_thread.Stop(); |
452 } | 453 } |
OLD | NEW |