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

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: gclient sync 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
« no previous file with comments | « components/precache/content/precache_manager.cc ('k') | components/precache/core/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 unfinished_work->add_top_host()->set_hostname("evil-manifest.com"); 236 unfinished_work->add_top_host()->set_hostname("evil-manifest.com");
237 unfinished_work->set_start_time(base::Time::Now().ToInternalValue()); 237 unfinished_work->set_start_time(base::Time::Now().ToInternalValue());
238 precache_database_->SaveUnfinishedWork(std::move(unfinished_work)); 238 precache_database_->SaveUnfinishedWork(std::move(unfinished_work));
239 239
240 EXPECT_FALSE(precache_manager_->IsPrecaching()); 240 EXPECT_FALSE(precache_manager_->IsPrecaching());
241 241
242 factory_.SetFakeResponse( 242 factory_.SetFakeResponse(
243 GURL(kEvilManifestURL), "", 243 GURL(kEvilManifestURL), "",
244 net::HTTP_OK, net::URLRequestStatus::SUCCESS); 244 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
245 245
246 ASSERT_TRUE(precache_database_->GetLastPrecacheTimestamp().is_null());
247
246 precache_manager_->StartPrecaching(precache_callback_.GetCallback()); 248 precache_manager_->StartPrecaching(precache_callback_.GetCallback());
247 EXPECT_TRUE(precache_manager_->IsPrecaching()); 249 EXPECT_TRUE(precache_manager_->IsPrecaching());
248 250
249 base::RunLoop().RunUntilIdle(); // For PrecacheFetcher. 251 base::RunLoop().RunUntilIdle(); // For PrecacheFetcher.
250 EXPECT_FALSE(precache_manager_->IsPrecaching()); 252 EXPECT_FALSE(precache_manager_->IsPrecaching());
251 EXPECT_TRUE(precache_callback_.was_on_done_called()); 253 EXPECT_TRUE(precache_callback_.was_on_done_called());
252 254
255 // The LastPrecacheTimestamp has been set.
256 EXPECT_FALSE(precache_database_->GetLastPrecacheTimestamp().is_null());
257
253 std::multiset<GURL> expected_requested_urls; 258 std::multiset<GURL> expected_requested_urls;
254 expected_requested_urls.insert(GURL(kConfigURL)); 259 expected_requested_urls.insert(GURL(kConfigURL));
255 expected_requested_urls.insert(GURL(kEvilManifestURL)); 260 expected_requested_urls.insert(GURL(kEvilManifestURL));
256 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls()); 261 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
257 } 262 }
258 263
259 TEST_F(PrecacheManagerTest, 264 TEST_F(PrecacheManagerTest,
260 StartAndCancelPrecachingBeforeUnfinishedWorkRetrieved) { 265 StartAndCancelPrecachingBeforeUnfinishedWorkRetrieved) {
261 EXPECT_FALSE(precache_manager_->IsPrecaching()); 266 EXPECT_FALSE(precache_manager_->IsPrecaching());
262 267
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 503
499 // A fetch for the same URL as the expired precache was served from the cache, 504 // A fetch for the same URL as the expired precache was served from the cache,
500 // but it isn't reported as saved bytes because it had expired in the precache 505 // but it isn't reported as saved bytes because it had expired in the precache
501 // history. 506 // history.
502 precache_manager_->RecordStatsForFetch(GURL("http://old-fetch.com"), GURL(), 507 precache_manager_->RecordStatsForFetch(GURL("http://old-fetch.com"), GURL(),
503 base::TimeDelta(), kCurrentTime, 1000, 508 base::TimeDelta(), kCurrentTime, 1000,
504 true); 509 true);
505 expected_histogram_count_map["Precache.Fetch.TimeToComplete"]++; 510 expected_histogram_count_map["Precache.Fetch.TimeToComplete"]++;
506 expected_histogram_count_map["Precache.Latency.NonPrefetch"]++; 511 expected_histogram_count_map["Precache.Latency.NonPrefetch"]++;
507 expected_histogram_count_map["Precache.Latency.NonPrefetch.NonTopHosts"]++; 512 expected_histogram_count_map["Precache.Latency.NonPrefetch.NonTopHosts"]++;
513 expected_histogram_count_map["Precache.TimeSinceLastPrecache"] += 1;
508 514
509 base::RunLoop().RunUntilIdle(); 515 base::RunLoop().RunUntilIdle();
510 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."), 516 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."),
511 ContainerEq(expected_histogram_count_map)); 517 ContainerEq(expected_histogram_count_map));
512 518
513 // The other precaches should not have expired, so the following fetches from 519 // The other precaches should not have expired, so the following fetches from
514 // the cache should count as saved bytes. 520 // the cache should count as saved bytes.
515 precache_manager_->RecordStatsForFetch(GURL("http://recent-fetch.com"), GURL() , 521 precache_manager_->RecordStatsForFetch(GURL("http://recent-fetch.com"), GURL() ,
516 base::TimeDelta(), kCurrentTime, 1000, 522 base::TimeDelta(), kCurrentTime, 1000,
517 true); 523 true);
518 precache_manager_->RecordStatsForFetch(GURL("http://yesterday-fetch.com"), 524 precache_manager_->RecordStatsForFetch(GURL("http://yesterday-fetch.com"),
519 GURL(), base::TimeDelta(), kCurrentTime, 525 GURL(), base::TimeDelta(), kCurrentTime,
520 1000, true); 526 1000, true);
521 expected_histogram_count_map["Precache.Latency.NonPrefetch"] += 2; 527 expected_histogram_count_map["Precache.Latency.NonPrefetch"] += 2;
522 expected_histogram_count_map["Precache.Latency.NonPrefetch.NonTopHosts"] += 2; 528 expected_histogram_count_map["Precache.Latency.NonPrefetch.NonTopHosts"] += 2;
523 expected_histogram_count_map["Precache.Saved"] += 2; 529 expected_histogram_count_map["Precache.Saved"] += 2;
530 expected_histogram_count_map["Precache.TimeSinceLastPrecache"] += 2;
524 531
525 base::RunLoop().RunUntilIdle(); 532 base::RunLoop().RunUntilIdle();
526 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."), 533 EXPECT_THAT(histograms_.GetTotalCountsForPrefix("Precache."),
527 ContainerEq(expected_histogram_count_map)); 534 ContainerEq(expected_histogram_count_map));
528 } 535 }
529 536
530 } // namespace precache 537 } // namespace precache
OLDNEW
« no previous file with comments | « components/precache/content/precache_manager.cc ('k') | components/precache/core/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698