| 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 401839a06f94c1d103b9e8481fc28b78d2ce3306..312b4cd083e2b20f0e1e3e59275fef63227c8d7b 100644
|
| --- a/components/network_time/network_time_tracker_unittest.cc
|
| +++ b/components/network_time/network_time_tracker_unittest.cc
|
| @@ -241,7 +241,7 @@ class NetworkTimeTrackerTest : public testing::Test {
|
| TEST_F(NetworkTimeTrackerTest, Uninitialized) {
|
| base::Time network_time;
|
| base::TimeDelta uncertainty;
|
| - EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC,
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
|
| tracker_->GetNetworkTime(&network_time, &uncertainty));
|
| }
|
|
|
| @@ -472,7 +472,7 @@ TEST_F(NetworkTimeTrackerTest, DeserializeOldFormat) {
|
| prefs.SetDouble("network", network);
|
| pref_service_.Set(prefs::kNetworkTimeMapping, prefs);
|
| Reset();
|
| - EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC,
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
|
| tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| }
|
|
|
| @@ -487,7 +487,7 @@ TEST_F(NetworkTimeTrackerTest, SerializeWithLongDelay) {
|
| tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| AdvanceBoth(base::TimeDelta::FromDays(8));
|
| Reset();
|
| - EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC,
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
|
| tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| }
|
|
|
| @@ -528,7 +528,7 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetwork) {
|
| histograms.ExpectTotalCount(kFetchValidHistogram, 0);
|
|
|
| base::Time out_network_time;
|
| - EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC,
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC_ATTEMPT,
|
| tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| // First query should happen soon.
|
| EXPECT_EQ(base::TimeDelta::FromMinutes(0),
|
| @@ -605,7 +605,7 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadSignature) {
|
| tracker_->WaitForFetchForTesting(123123123);
|
|
|
| base::Time out_network_time;
|
| - EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC,
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
|
| tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| EXPECT_EQ(base::TimeDelta::FromMinutes(120),
|
| tracker_->GetTimerDelayForTesting());
|
| @@ -640,7 +640,7 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkBadData) {
|
| EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
|
| tracker_->WaitForFetchForTesting(123123123);
|
| base::Time out_network_time;
|
| - EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC,
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
|
| tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| EXPECT_EQ(base::TimeDelta::FromMinutes(120),
|
| tracker_->GetTimerDelayForTesting());
|
| @@ -663,7 +663,7 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkServerError) {
|
| tracker_->WaitForFetchForTesting(123123123);
|
|
|
| base::Time out_network_time;
|
| - EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC,
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
|
| tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| // Should see backoff in the error case.
|
| EXPECT_EQ(base::TimeDelta::FromMinutes(120),
|
| @@ -690,7 +690,7 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkNetworkError) {
|
| tracker_->WaitForFetchForTesting(123123123);
|
|
|
| base::Time out_network_time;
|
| - EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC,
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
|
| tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| // Should see backoff in the error case.
|
| EXPECT_EQ(base::TimeDelta::FromMinutes(120),
|
| @@ -717,7 +717,7 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkLargeResponse) {
|
| tracker_->SetMaxResponseSizeForTesting(3);
|
| EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
|
| tracker_->WaitForFetchForTesting(123123123);
|
| - EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SYNC,
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
|
| tracker_->GetNetworkTime(&out_network_time, nullptr));
|
|
|
| histograms.ExpectTotalCount(kFetchFailedHistogram, 1);
|
| @@ -734,4 +734,60 @@ TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkLargeResponse) {
|
| histograms.ExpectBucketCount(kFetchValidHistogram, true, 1);
|
| }
|
|
|
| +TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkFirstSyncPending) {
|
| + base::HistogramTester histograms;
|
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
|
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0);
|
| +
|
| + test_server_->RegisterRequestHandler(
|
| + base::Bind(&NetworkTimeTrackerTest::BadDataResponseHandler));
|
| + EXPECT_TRUE(test_server_->Start());
|
| + base::StringPiece key = {reinterpret_cast<const char*>(kDevKeyPubBytes),
|
| + sizeof(kDevKeyPubBytes)};
|
| + tracker_->SetPublicKeyForTesting(key);
|
| + tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
|
| + EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
|
| +
|
| + // Do not wait for the fetch to complete; ask for the network time
|
| + // immediately while the request is still pending.
|
| + base::Time out_network_time;
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_FIRST_SYNC_PENDING,
|
| + tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
|
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0);
|
| +
|
| + tracker_->WaitForFetchForTesting(123123123);
|
| +}
|
| +
|
| +TEST_F(NetworkTimeTrackerTest, UpdateFromNetworkSubseqeuntSyncPending) {
|
| + base::HistogramTester histograms;
|
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
|
| + histograms.ExpectTotalCount(kFetchValidHistogram, 0);
|
| +
|
| + test_server_->RegisterRequestHandler(
|
| + base::Bind(&NetworkTimeTrackerTest::BadDataResponseHandler));
|
| + EXPECT_TRUE(test_server_->Start());
|
| + base::StringPiece key = {reinterpret_cast<const char*>(kDevKeyPubBytes),
|
| + sizeof(kDevKeyPubBytes)};
|
| + tracker_->SetPublicKeyForTesting(key);
|
| + tracker_->SetTimeServerURLForTesting(test_server_->GetURL("/"));
|
| + EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
|
| + tracker_->WaitForFetchForTesting(123123123);
|
| +
|
| + base::Time out_network_time;
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_NO_SUCCESSFUL_SYNC,
|
| + tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| +
|
| + // After one sync attempt failed, kick off another one, and ask for
|
| + // the network time while it is still pending.
|
| + EXPECT_TRUE(tracker_->QueryTimeServiceForTesting());
|
| + EXPECT_EQ(NetworkTimeTracker::NETWORK_TIME_SUBSEQUENT_SYNC_PENDING,
|
| + tracker_->GetNetworkTime(&out_network_time, nullptr));
|
| + histograms.ExpectTotalCount(kFetchFailedHistogram, 0);
|
| + histograms.ExpectTotalCount(kFetchValidHistogram, 1);
|
| + histograms.ExpectBucketCount(kFetchValidHistogram, false, 1);
|
| +
|
| + tracker_->WaitForFetchForTesting(123123123);
|
| +}
|
| +
|
| } // namespace network_time
|
|
|