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

Unified Diff: components/precache/core/precache_fetcher_unittest.cc

Issue 2762673002: predictors: Pass manifests from Bork to store in ResourcePrefetchPredictor. (Closed)
Patch Set: Add delegate tests for PrecacheFetcher. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/precache/core/precache_fetcher.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/precache/core/precache_fetcher_unittest.cc
diff --git a/components/precache/core/precache_fetcher_unittest.cc b/components/precache/core/precache_fetcher_unittest.cc
index 4dda6bfa9fa10f309d91540f6ba59382e62be8bc..82cb8024e0783f56452eb448702c2ff080a28de2 100644
--- a/components/precache/core/precache_fetcher_unittest.cc
+++ b/components/precache/core/precache_fetcher_unittest.cc
@@ -117,12 +117,22 @@ class TestPrecacheDelegate : public PrecacheFetcher::PrecacheDelegate {
on_done_was_called_ = true;
}
+ void OnManifestFetched(const std::string& host,
+ const PrecacheManifest& manifest) override {
+ hosts.push_back(host);
+ }
+
bool was_on_done_called() const {
return on_done_was_called_;
}
+ void clear_manifest_hosts() { hosts.clear(); }
+
+ std::vector<std::string> get_manifest_hosts() const { return hosts; }
+
private:
bool on_done_was_called_;
+ std::vector<std::string> hosts;
};
class MockURLFetcherFactory : public net::URLFetcherFactory {
@@ -568,6 +578,9 @@ TEST_F(PrecacheFetcherTest, FullPrecache) {
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ std::vector<std::string> expected_manifest_hosts = {
+ "good-manifest.com", "forced-starting-url.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
histogram.ExpectUniqueSample("Precache.Fetch.PercentCompleted", 100, 1);
@@ -654,6 +667,8 @@ TEST_P(PrecacheFetcherResourceSelectionTest, Basic) {
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ std::vector<std::string> expected_manifest_hosts = {"good-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
histogram.ExpectUniqueSample("Precache.Fetch.PercentCompleted", 100, 1);
@@ -728,6 +743,8 @@ TEST_P(PrecacheFetcherResourceSelectionTest, MissingBitset) {
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ std::vector<std::string> expected_manifest_hosts = {"good-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
histogram.ExpectUniqueSample("Precache.Fetch.PercentCompleted", 100, 1);
@@ -794,6 +811,8 @@ TEST_F(PrecacheFetcherTest, PrecachePauseResume) {
expected_requested_urls.emplace_back(
"http://manifest-url-prefix.com/manifest2.com");
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+
+ EXPECT_TRUE(precache_delegate_.get_manifest_hosts().empty());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -827,6 +846,9 @@ TEST_F(PrecacheFetcherTest, ResumeWithConfigOnly) {
expected_requested_urls.emplace_back(kGoodResourceURL);
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+
+ std::vector<std::string> expected_manifest_hosts = {"good-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -866,6 +888,8 @@ TEST_F(PrecacheFetcherTest, CustomURLs) {
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ std::vector<std::string> expected_manifest_hosts = {"good-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -895,6 +919,8 @@ TEST_F(PrecacheFetcherTest, ConfigFetchFailure) {
expected_requested_urls.emplace_back(kGoodManifestURL);
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ std::vector<std::string> expected_manifest_hosts = {"good-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -923,6 +949,8 @@ TEST_F(PrecacheFetcherTest, BadConfig) {
expected_requested_urls.emplace_back(kGoodManifestURL);
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ std::vector<std::string> expected_manifest_hosts = {"good-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -959,6 +987,7 @@ TEST_F(PrecacheFetcherTest, Cancel) {
expected_requested_urls.emplace_back(kConfigURL);
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ EXPECT_TRUE(precache_delegate_.get_manifest_hosts().empty());
EXPECT_FALSE(precache_delegate_.was_on_done_called());
histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 0);
@@ -992,6 +1021,7 @@ TEST_F(PrecacheFetcherTest, PrecacheUsingDefaultConfigSettingsURL) {
expected_requested_urls.emplace_back(PRECACHE_CONFIG_SETTINGS_URL);
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ EXPECT_TRUE(precache_delegate_.get_manifest_hosts().empty());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -1032,6 +1062,8 @@ TEST_F(PrecacheFetcherTest, PrecacheUsingDefaultManifestURLPrefix) {
expected_requested_urls.push_back(manifest_url);
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ std::vector<std::string> expected_manifest_hosts = {"starting-url.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -1086,6 +1118,8 @@ TEST_F(PrecacheFetcherTest, TopResourcesCount) {
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ std::vector<std::string> expected_manifest_hosts = {"good-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
histogram.ExpectUniqueSample("Precache.Fetch.PercentCompleted", 100, 1);
@@ -1145,6 +1179,8 @@ TEST_F(PrecacheFetcherTest, TopResourcesCount_ResourceBitset) {
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ std::vector<std::string> expected_manifest_hosts = {"good-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
histogram.ExpectUniqueSample("Precache.Fetch.PercentCompleted", 100, 1);
@@ -1230,6 +1266,8 @@ TEST_F(PrecacheFetcherTest, MaxBytesTotal) {
// reason, we are seeing it fetch all but 4 resources. Meh, close enough.
EXPECT_EQ(1 + 1 + kNumResources - 4, url_callback_.requested_urls().size());
+ std::vector<std::string> expected_manifest_hosts = {"good-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
histogram.ExpectTotalCount("Precache.Fetch.PercentCompleted", 1);
@@ -1252,6 +1290,7 @@ TEST_F(PrecacheFetcherTest, FetcherPoolMaxLimitReached) {
PrecacheConfigurationSettings config;
std::vector<GURL> expected_requested_urls;
+ std::vector<std::string> expected_manifest_hosts;
config.set_top_sites_count(kNumTopHosts);
factory_.SetFakeResponse(GURL(kConfigURL), config.SerializeAsString(),
@@ -1265,6 +1304,7 @@ TEST_F(PrecacheFetcherTest, FetcherPoolMaxLimitReached) {
for (size_t i = 0; i < kNumTopHosts; ++i) {
const std::string top_host_url = base::StringPrintf("top-host-%zu.com", i);
expected_requested_urls.emplace_back(kManifestURLPrefix + top_host_url);
+ expected_manifest_hosts.push_back(top_host_url);
}
for (size_t i = 0; i < kNumTopHosts; ++i) {
@@ -1306,6 +1346,7 @@ TEST_F(PrecacheFetcherTest, FetcherPoolMaxLimitReached) {
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
histogram.ExpectUniqueSample("Precache.Fetch.PercentCompleted", 100, 1);
@@ -1342,6 +1383,7 @@ TEST_F(PrecacheFetcherTest, FilterInvalidManifestUrls) {
// The config is fetched, but not the invalid manifest URL.
EXPECT_EQ(1UL, url_callback_.requested_urls().size());
+ EXPECT_TRUE(precache_delegate_.get_manifest_hosts().empty());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
// manifest.com will have been failed to complete, in this case.
@@ -1382,6 +1424,8 @@ TEST_F(PrecacheFetcherTest, FilterInvalidResourceUrls) {
// The config and manifest are fetched, but not the invalid resource URL.
EXPECT_EQ(2UL, url_callback_.requested_urls().size());
+ std::vector<std::string> expected_manifest_hosts = {"bad-manifest.com"};
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
// bad-manifest.com will have been completed.
@@ -1546,6 +1590,7 @@ TEST_P(PrecacheFetcherGlobalRankingTest, GloballyRankResources) {
const size_t kNumResources = 5;
std::vector<GURL> expected_requested_urls;
+ std::vector<std::string> expected_manifest_hosts;
PrecacheConfigurationSettings config;
config.set_top_sites_count(kNumTopHosts);
@@ -1562,6 +1607,7 @@ TEST_P(PrecacheFetcherGlobalRankingTest, GloballyRankResources) {
for (size_t i = 0; i < kNumTopHosts; ++i) {
const std::string top_host_url = base::StringPrintf("top-host-%zu.com", i);
expected_requested_urls.emplace_back(kManifestURLPrefix + top_host_url);
+ expected_manifest_hosts.push_back(top_host_url);
}
// Visit counts and weights are chosen in such a way that resource requests
@@ -1610,6 +1656,7 @@ TEST_P(PrecacheFetcherGlobalRankingTest, GloballyRankResources) {
}
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -1626,6 +1673,7 @@ TEST_F(PrecacheFetcherTest, GloballyRankResourcesAfterPauseResume) {
const size_t kNumResources = 5;
std::vector<GURL> expected_requested_urls;
+ std::vector<std::string> expected_manifest_hosts;
PrecacheConfigurationSettings config;
config.set_top_sites_count(kNumTopHosts);
@@ -1642,6 +1690,7 @@ TEST_F(PrecacheFetcherTest, GloballyRankResourcesAfterPauseResume) {
std::vector<std::pair<std::string, float>> resources;
for (size_t i = 0; i < kNumTopHosts; ++i) {
const std::string top_host_url = base::StringPrintf("top-host-%zu.com", i);
+ expected_manifest_hosts.push_back(top_host_url);
TopHost* top_host = unfinished_work->add_top_host();
top_host->set_hostname(top_host_url);
top_host->set_visits(kNumTopHosts - i);
@@ -1704,9 +1753,11 @@ TEST_F(PrecacheFetcherTest, GloballyRankResourcesAfterPauseResume) {
EXPECT_TRUE(cancelled_work->top_host().empty());
EXPECT_EQ(kNumTopHosts * kNumResources,
static_cast<size_t>(cancelled_work->resource().size()));
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_FALSE(precache_delegate_.was_on_done_called());
url_callback_.clear_requested_urls();
+ precache_delegate_.clear_manifest_hosts();
// Continuing with the precache should fetch all resources, as the previous
// run was cancelled before any finished. They should be fetched in global
@@ -1724,6 +1775,7 @@ TEST_F(PrecacheFetcherTest, GloballyRankResourcesAfterPauseResume) {
base::RunLoop().RunUntilIdle();
}
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ EXPECT_TRUE(precache_delegate_.get_manifest_hosts().empty());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
histogram.ExpectBucketCount("Precache.Fetch.MinWeight",
@@ -1736,6 +1788,7 @@ TEST_F(PrecacheFetcherTest, MaxTotalResources) {
const size_t kNumResources = 5;
std::vector<GURL> expected_requested_urls;
+ std::vector<std::string> expected_manifest_hosts;
PrecacheConfigurationSettings config;
config.set_total_resources_count(2);
@@ -1754,6 +1807,7 @@ TEST_F(PrecacheFetcherTest, MaxTotalResources) {
expected_requested_urls.emplace_back(kManifestURLPrefix +
top_host->hostname());
+ expected_manifest_hosts.push_back(top_host->hostname());
PrecacheManifest manifest;
for (size_t i = 0; i < kNumResources; ++i) {
@@ -1785,6 +1839,7 @@ TEST_F(PrecacheFetcherTest, MaxTotalResources) {
}
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
const float expected_min_weight =
@@ -1799,6 +1854,7 @@ TEST_F(PrecacheFetcherTest, MinWeight) {
const size_t kNumResources = 5;
std::vector<GURL> expected_requested_urls;
+ std::vector<std::string> expected_manifest_hosts;
PrecacheConfigurationSettings config;
config.set_min_weight(3);
@@ -1817,6 +1873,7 @@ TEST_F(PrecacheFetcherTest, MinWeight) {
expected_requested_urls.emplace_back(kManifestURLPrefix +
top_host->hostname());
+ expected_manifest_hosts.push_back(top_host->hostname());
PrecacheManifest manifest;
for (size_t i = 0; i < kNumResources; ++i) {
@@ -1847,6 +1904,7 @@ TEST_F(PrecacheFetcherTest, MinWeight) {
}
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -1860,6 +1918,7 @@ TEST_F(PrecacheFetcherTest, CancelPrecachingAfterAllManifestFetch) {
PrecacheConfigurationSettings config;
std::vector<GURL> expected_requested_urls;
+ std::vector<std::string> expected_manifest_hosts;
std::unique_ptr<PrecacheUnfinishedWork> cancelled_work;
config.set_top_sites_count(kNumTopHosts);
@@ -1874,6 +1933,7 @@ TEST_F(PrecacheFetcherTest, CancelPrecachingAfterAllManifestFetch) {
for (size_t i = 0; i < kNumTopHosts; ++i) {
const std::string top_host_url = base::StringPrintf("top-host-%zu.com", i);
expected_requested_urls.emplace_back(kManifestURLPrefix + top_host_url);
+ expected_manifest_hosts.push_back(top_host_url);
}
int num_resources = 0;
@@ -1932,13 +1992,14 @@ TEST_F(PrecacheFetcherTest, CancelPrecachingAfterAllManifestFetch) {
static_cast<size_t>(cancelled_work->resource().size()));
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
-
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_FALSE(precache_delegate_.was_on_done_called());
// Continuing with the precache should fetch all resources, as the previous
// run was cancelled before any finished.
expected_requested_urls.clear();
url_callback_.clear_requested_urls();
+ precache_delegate_.clear_manifest_hosts();
for (size_t i = 0; i < kNumTopHosts; ++i) {
for (size_t j = 0; j < kNumResources; ++j) {
expected_requested_urls.emplace_back(
@@ -1955,6 +2016,7 @@ TEST_F(PrecacheFetcherTest, CancelPrecachingAfterAllManifestFetch) {
base::RunLoop().RunUntilIdle();
}
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
+ EXPECT_TRUE(precache_delegate_.get_manifest_hosts().empty());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
@@ -1973,12 +2035,14 @@ TEST_F(PrecacheFetcherTest, DailyQuota) {
factory_.SetFakeResponse(GURL(kConfigURL), config.SerializeAsString(),
net::HTTP_OK, net::URLRequestStatus::SUCCESS);
std::vector<GURL> expected_requested_urls;
+ std::vector<std::string> expected_manifest_hosts;
expected_requested_urls.emplace_back(kConfigURL);
for (size_t i = 0; i < kNumTopHosts; ++i) {
const std::string top_host_url = base::StringPrintf("top-host-%zu.com", i);
expected_requested_urls.emplace_back(std::string(kManifestURLPrefix) +
top_host_url);
+ expected_manifest_hosts.push_back(top_host_url);
}
for (size_t i = 0; i < kNumTopHosts; ++i) {
@@ -2016,7 +2080,7 @@ TEST_F(PrecacheFetcherTest, DailyQuota) {
}
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
-
+ EXPECT_EQ(expected_manifest_hosts, precache_delegate_.get_manifest_hosts());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
EXPECT_EQ(0, unfinished_work->top_host_size());
@@ -2030,6 +2094,7 @@ TEST_F(PrecacheFetcherTest, DailyQuota) {
// any resources.
expected_requested_urls.clear();
url_callback_.clear_requested_urls();
+ precache_delegate_.clear_manifest_hosts();
{
PrecacheFetcher precache_fetcher(
request_context_.get(), GURL(), std::string(),
@@ -2041,7 +2106,7 @@ TEST_F(PrecacheFetcherTest, DailyQuota) {
EXPECT_EQ(0U, precache_fetcher.quota_.remaining());
}
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
-
+ EXPECT_TRUE(precache_delegate_.get_manifest_hosts().empty());
EXPECT_TRUE(precache_delegate_.was_on_done_called());
histogram.ExpectTotalCount("Precache.Fetch.PercentCompleted", 2);
« no previous file with comments | « components/precache/core/precache_fetcher.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698