| 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);
|
|
|