Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(591)

Side by Side Diff: components/precache/content/precache_manager_unittest.cc

Issue 2123813002: Report Precache.TimeSinceLastPrecache (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: UMA_HISTOGRAM_CUSTOM_COUNTS for seconds since first minute Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/precache/content/precache_manager.h" 5 #include "components/precache/content/precache_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <memory> 10 #include <memory>
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 unfinished_work->add_top_host()->set_hostname("evil-manifest.com"); 234 unfinished_work->add_top_host()->set_hostname("evil-manifest.com");
235 unfinished_work->set_start_time(base::Time::Now().ToInternalValue()); 235 unfinished_work->set_start_time(base::Time::Now().ToInternalValue());
236 precache_database_->SaveUnfinishedWork(std::move(unfinished_work)); 236 precache_database_->SaveUnfinishedWork(std::move(unfinished_work));
237 237
238 EXPECT_FALSE(precache_manager_->IsPrecaching()); 238 EXPECT_FALSE(precache_manager_->IsPrecaching());
239 239
240 factory_.SetFakeResponse( 240 factory_.SetFakeResponse(
241 GURL(kEvilManifestURL), "", 241 GURL(kEvilManifestURL), "",
242 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 242 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
243 243
244 ASSERT_TRUE(precache_database_->GetLastPrecacheTimestamp().is_null());
245
244 precache_manager_->StartPrecaching(precache_callback_.GetCallback()); 246 precache_manager_->StartPrecaching(precache_callback_.GetCallback());
245 EXPECT_TRUE(precache_manager_->IsPrecaching()); 247 EXPECT_TRUE(precache_manager_->IsPrecaching());
246 248
247 base::RunLoop().RunUntilIdle(); // For PrecacheFetcher. 249 base::RunLoop().RunUntilIdle(); // For PrecacheFetcher.
248 EXPECT_FALSE(precache_manager_->IsPrecaching()); 250 EXPECT_FALSE(precache_manager_->IsPrecaching());
249 EXPECT_TRUE(precache_callback_.was_on_done_called()); 251 EXPECT_TRUE(precache_callback_.was_on_done_called());
250 252
253 // The LastPrecacheTimestamp has been set.
254 EXPECT_FALSE(precache_database_->GetLastPrecacheTimestamp().is_null());
255
251 std::multiset<GURL> expected_requested_urls; 256 std::multiset<GURL> expected_requested_urls;
252 expected_requested_urls.insert(GURL(kConfigURL)); 257 expected_requested_urls.insert(GURL(kConfigURL));
253 expected_requested_urls.insert(GURL(kEvilManifestURL)); 258 expected_requested_urls.insert(GURL(kEvilManifestURL));
254 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls()); 259 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
255 } 260 }
256 261
257 TEST_F(PrecacheManagerTest, 262 TEST_F(PrecacheManagerTest,
258 StartAndCancelPrecachingBeforeUnfinishedWorkRetrieved) { 263 StartAndCancelPrecachingBeforeUnfinishedWorkRetrieved) {
259 EXPECT_FALSE(precache_manager_->IsPrecaching()); 264 EXPECT_FALSE(precache_manager_->IsPrecaching());
260 265
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 499
495 // A fetch for the same URL as the expired precache was served from the cache, 500 // A fetch for the same URL as the expired precache was served from the cache,
496 // but it isn't reported as saved bytes because it had expired in the precache 501 // but it isn't reported as saved bytes because it had expired in the precache
497 // history. 502 // history.
498 precache_manager_->RecordStatsForFetch(GURL("http://old-fetch.com"), GURL(), 503 precache_manager_->RecordStatsForFetch(GURL("http://old-fetch.com"), GURL(),
499 base::TimeDelta(), kCurrentTime, 1000, 504 base::TimeDelta(), kCurrentTime, 1000,
500 true); 505 true);
501 expected_histogram_count_map["Precache.Fetch.TimeToComplete"]++; 506 expected_histogram_count_map["Precache.Fetch.TimeToComplete"]++;
502 expected_histogram_count_map["Precache.Latency.NonPrefetch"]++; 507 expected_histogram_count_map["Precache.Latency.NonPrefetch"]++;
503 expected_histogram_count_map["Precache.Latency.NonPrefetch.NonTopHosts"]++; 508 expected_histogram_count_map["Precache.Latency.NonPrefetch.NonTopHosts"]++;
509 expected_histogram_count_map["Precache.TimeSinceLastPrecache"] += 1;
504 510
505 base::RunLoop().RunUntilIdle(); 511 base::RunLoop().RunUntilIdle();
506 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."), 512 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."),
507 ContainerEq(expected_histogram_count_map)); 513 ContainerEq(expected_histogram_count_map));
508 514
509 // The other precaches should not have expired, so the following fetches from 515 // The other precaches should not have expired, so the following fetches from
510 // the cache should count as saved bytes. 516 // the cache should count as saved bytes.
511 precache_manager_->RecordStatsForFetch(GURL("http://recent-fetch.com"), GURL() , 517 precache_manager_->RecordStatsForFetch(GURL("http://recent-fetch.com"), GURL() ,
512 base::TimeDelta(), kCurrentTime, 1000, 518 base::TimeDelta(), kCurrentTime, 1000,
513 true); 519 true);
514 precache_manager_->RecordStatsForFetch(GURL("http://yesterday-fetch.com"), 520 precache_manager_->RecordStatsForFetch(GURL("http://yesterday-fetch.com"),
515 GURL(), base::TimeDelta(), kCurrentTime, 521 GURL(), base::TimeDelta(), kCurrentTime,
516 1000, true); 522 1000, true);
517 expected_histogram_count_map["Precache.Latency.NonPrefetch"] += 2; 523 expected_histogram_count_map["Precache.Latency.NonPrefetch"] += 2;
518 expected_histogram_count_map["Precache.Latency.NonPrefetch.NonTopHosts"] += 2; 524 expected_histogram_count_map["Precache.Latency.NonPrefetch.NonTopHosts"] += 2;
519 expected_histogram_count_map["Precache.Saved"] += 2; 525 expected_histogram_count_map["Precache.Saved"] += 2;
526 expected_histogram_count_map["Precache.TimeSinceLastPrecache"] += 2;
520 527
521 base::RunLoop().RunUntilIdle(); 528 base::RunLoop().RunUntilIdle();
522 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."), 529 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."),
523 ContainerEq(expected_histogram_count_map)); 530 ContainerEq(expected_histogram_count_map));
524 } 531 }
525 532
526 } // namespace 533 } // namespace
527 534
528 } // namespace precache 535 } // namespace precache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698