Chromium Code Reviews| Index: components/network_time/network_time_tracker_unittest.cc |
| diff --git a/components/network_time/network_time_tracker_unittest.cc b/components/network_time/network_time_tracker_unittest.cc |
| index d4d5c9391770173420510ea2466125772fe44ac1..e3b2c3b7efe9ce0e425005cf8f8d401d9434a907 100644 |
| --- a/components/network_time/network_time_tracker_unittest.cc |
| +++ b/components/network_time/network_time_tracker_unittest.cc |
| @@ -14,6 +14,7 @@ |
| #include "base/metrics/field_trial.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/stringprintf.h" |
| +#include "base/test/histogram_tester.h" |
| #include "base/test/mock_entropy_provider.h" |
| #include "base/test/simple_test_clock.h" |
| #include "base/test/simple_test_tick_clock.h" |
| @@ -30,6 +31,15 @@ |
| namespace network_time { |
| +namespace { |
| +const char kFetchAttemptHistogram[] = |
| + "NetworkTimeTracker.UpdateTimeFetchAttempted"; |
| +const char kFetchFailedHistogram[] = "NetworkTimeTracker.UpdateTimeFetchFailed"; |
| +const char kFetchSucceededHistogram[] = |
| + "NetworkTimeTracker.UpdateTimeFetchSucceeded"; |
| +const char kFetchValidHistogram[] = "NetworkTimeTracker.UpdateTimeFetchValid"; |
| +} // namespace |
| + |
| class NetworkTimeTrackerTest : public testing::Test { |
| public: |
| ~NetworkTimeTrackerTest() override {} |
| @@ -434,6 +444,12 @@ TEST_F(NetworkTimeTrackerTest, SerializeWithWallClockAdvance) { |
| } |
| TEST_F(NetworkTimeTrackerTest, UpdateFromNetwork) { |
| + base::HistogramTester histograms; |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| + |
| base::Time out_network_time; |
| EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); |
| // First query should happen soon. |
| @@ -454,6 +470,11 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetwork) { |
| // Should see no backoff in the success case. |
| EXPECT_EQ(base::TimeDelta::FromMinutes(60), |
| tracker_->GetTimerDelayForTesting()); |
| + |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 1); |
| } |
| TEST_F(NetworkTimeTrackerTest, NoNetworkQueryWhileSynced) { |
| @@ -494,6 +515,12 @@ TEST_F(NetworkTimeTrackerTest, NoNetworkQueryWhileFeatureDisabled) { |
| } |
| TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadSignature) { |
| + base::HistogramTester histograms; |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| + |
| test_server_->RegisterRequestHandler( |
| base::Bind(&NetworkTimeTrackerTest::BadSignatureResponseHandler)); |
| EXPECT_TRUE(test_server_->Start()); |
| @@ -505,6 +532,11 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadSignature) { |
| EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); |
| EXPECT_EQ(base::TimeDelta::FromMinutes(120), |
| tracker_->GetTimerDelayForTesting()); |
| + |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| } |
| static const uint8_t kDevKeyPubBytes[] = { |
| @@ -518,6 +550,12 @@ static const uint8_t kDevKeyPubBytes[] = { |
| 0x04, 0x16, 0xe2, 0x3d, 0x21, 0x76, 0x2b}; |
| TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadData) { |
| + base::HistogramTester histograms; |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| + |
| test_server_->RegisterRequestHandler( |
| base::Bind(&NetworkTimeTrackerTest::BadDataResponseHandler)); |
| EXPECT_TRUE(test_server_->Start()); |
| @@ -531,9 +569,20 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadData) { |
| EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); |
| EXPECT_EQ(base::TimeDelta::FromMinutes(120), |
| tracker_->GetTimerDelayForTesting()); |
| + |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| } |
| TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkServerError) { |
| + base::HistogramTester histograms; |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| + |
| test_server_->RegisterRequestHandler( |
| base::Bind(&NetworkTimeTrackerTest::ServerErrorResponseHandler)); |
| EXPECT_TRUE(test_server_->Start()); |
| @@ -546,9 +595,21 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkServerError) { |
| // Should see backoff in the error case. |
| EXPECT_EQ(base::TimeDelta::FromMinutes(120), |
| tracker_->GetTimerDelayForTesting()); |
| + |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 1); |
| + histograms.ExpectBucketCount(kFetchFailedHistogram, net::OK, 1); |
|
mab
2016/07/28 06:58:55
Why is this net::OK for an error response?
estark
2016/07/28 18:27:58
net::OK because there was no network error, just a
|
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| } |
| -TEST_F(NetworkTimeTrackerTest, UpdateFromNetworNetworkError) { |
| +TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkNetworkError) { |
| + base::HistogramTester histograms; |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| + |
| test_server_->RegisterRequestHandler( |
| base::Bind(&NetworkTimeTrackerTest::NetworkErrorResponseHandler)); |
| EXPECT_TRUE(test_server_->Start()); |
| @@ -561,9 +622,22 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworNetworkError) { |
| // Should see backoff in the error case. |
| EXPECT_EQ(base::TimeDelta::FromMinutes(120), |
| tracker_->GetTimerDelayForTesting()); |
| + |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 1); |
| + histograms.ExpectBucketCount(kFetchFailedHistogram, -net::ERR_EMPTY_RESPONSE, |
| + 1); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| } |
| TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkLargeResponse) { |
| + base::HistogramTester histograms; |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| + |
| test_server_->RegisterRequestHandler( |
| base::Bind(&NetworkTimeTrackerTest::GoodTimeResponseHandler)); |
| EXPECT_TRUE(test_server_->Start()); |
| @@ -576,10 +650,20 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkLargeResponse) { |
| tracker_->WaitForFetchForTesting(123123123); |
| EXPECT_FALSE(tracker_->GetNetworkTime(&out_network_time, nullptr)); |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 0); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0); |
| + |
| tracker_->SetMaxResponseSizeForTesting(1024); |
| EXPECT_TRUE(tracker_->QueryTimeServiceForTesting()); |
| tracker_->WaitForFetchForTesting(123123123); |
| EXPECT_TRUE(tracker_->GetNetworkTime(&out_network_time, nullptr)); |
| + |
| + histograms.ExpectTotalCount(kFetchAttemptHistogram, 2); |
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchSucceededHistogram, 1); |
| + histograms.ExpectTotalCount(kFetchValidHistogram, 1); |
| } |
| } // namespace network_time |