Index: components/precache/core/precache_database_unittest.cc |
diff --git a/components/precache/core/precache_database_unittest.cc b/components/precache/core/precache_database_unittest.cc |
index 3f9253c744af757c3272e89fc7f0eceeb8b34204..5ee75c48a3435d8f4d52367d0dfc99a2ef600624 100644 |
--- a/components/precache/core/precache_database_unittest.cc |
+++ b/components/precache/core/precache_database_unittest.cc |
@@ -381,6 +381,36 @@ TEST_F(PrecacheDatabaseTest, SampleInteraction) { |
ElementsAre(Bucket(kSize1, 1))); |
} |
+TEST_F(PrecacheDatabaseTest, LastPrecacheTimestamp) { |
+ // So that it starts recording TimeSinceLastPrecache. |
+ const base::Time kStartTime = |
+ base::Time() + base::TimeDelta::FromSeconds(100); |
+ precache_database_->SetLastPrecacheTimestamp(kStartTime); |
+ |
+ RecordPrecacheFromNetwork(kURL, kLatency, kStartTime, kSize); |
+ RecordPrecacheFromNetwork(kURL, kLatency, kStartTime, kSize); |
+ RecordPrecacheFromNetwork(kURL, kLatency, kStartTime, kSize); |
+ RecordPrecacheFromNetwork(kURL, kLatency, kStartTime, kSize); |
+ |
+ EXPECT_THAT(histograms_.GetAllSamples("Precache.TimeSinceLastPrecache"), |
+ ElementsAre()); |
+ |
+ const base::Time kTimeA = kStartTime + base::TimeDelta::FromSeconds(7); |
+ const base::Time kTimeB = kStartTime + base::TimeDelta::FromMinutes(42); |
+ const base::Time kTimeC = kStartTime + base::TimeDelta::FromHours(20); |
+ |
+ RecordFetchFromCacheCellular(kURL, kTimeA, kSize); |
+ RecordFetchFromCacheCellular(kURL, kTimeA, kSize); |
+ RecordFetchFromNetworkCellular(kURL, kLatency, kTimeB, kSize); |
+ RecordFetchFromNetworkCellular(kURL, kLatency, kTimeB, kSize); |
+ RecordFetchFromCacheCellular(kURL, kTimeB, kSize); |
+ RecordFetchFromCacheCellular(kURL, kTimeC, kSize); |
+ |
+ EXPECT_THAT(histograms_.GetAllSamples("Precache.TimeSinceLastPrecache"), |
+ ElementsAre(Bucket(0, 2), Bucket(2447, 3), |
+ Bucket(69148, 1))); |
+} |
+ |
} // namespace |
} // namespace precache |