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

Side by Side Diff: components/precache/core/precache_fetcher_unittest.cc

Issue 2707053005: precache: Fix top_resources_count + experiments. (Closed)
Patch Set: Rebase (again). 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 unified diff | Download patch
« no previous file with comments | « components/precache/core/precache_fetcher.cc ('k') | no next file » | 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/core/precache_fetcher.h" 5 #include "components/precache/core/precache_fetcher.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <cstring> 9 #include <cstring>
10 #include <memory> 10 #include <memory>
(...skipping 1076 matching lines...) Expand 10 before | Expand all | Expand 10 after
1087 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls()); 1087 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
1088 1088
1089 EXPECT_TRUE(precache_delegate_.was_on_done_called()); 1089 EXPECT_TRUE(precache_delegate_.was_on_done_called());
1090 1090
1091 histogram.ExpectUniqueSample("Precache.Fetch.PercentCompleted", 100, 1); 1091 histogram.ExpectUniqueSample("Precache.Fetch.PercentCompleted", 100, 1);
1092 histogram.ExpectUniqueSample("Precache.Fetch.ResponseBytes.Total", 1092 histogram.ExpectUniqueSample("Precache.Fetch.ResponseBytes.Total",
1093 url_callback_.total_response_bytes(), 1); 1093 url_callback_.total_response_bytes(), 1);
1094 histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 1); 1094 histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 1);
1095 } 1095 }
1096 1096
1097 TEST_F(PrecacheFetcherTest, TopResourcesCount_ResourceBitset) {
1098 SetDefaultFlags();
1099
1100 std::unique_ptr<PrecacheUnfinishedWork> unfinished_work(
1101 new PrecacheUnfinishedWork());
1102 unfinished_work->set_start_time(base::Time::UnixEpoch().ToInternalValue());
1103 unfinished_work->add_top_host()->set_hostname("good-manifest.com");
1104
1105 PrecacheConfigurationSettings config;
1106 config.set_top_resources_count(2);
1107
1108 PrecacheManifest good_manifest;
1109 good_manifest.add_resource()->set_url("http://good-manifest.com/retrieved");
1110 good_manifest.add_resource()->set_url("http://good-manifest.com/skipped");
1111 good_manifest.add_resource()->set_url("http://good-manifest.com/retrieved");
1112 good_manifest.add_resource()->set_url("http://good-manifest.com/skipped");
1113 good_manifest.add_resource()->set_url("http://good-manifest.com/retrieved");
1114 (*good_manifest.mutable_experiments()
1115 ->mutable_resources_by_experiment_group())[kExperimentID]
1116 .set_deprecated_bitset(0b10101);
1117
1118 factory_.SetFakeResponse(GURL(kConfigURL), config.SerializeAsString(),
1119 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
1120 factory_.SetFakeResponse(GURL(kGoodManifestURL),
1121 good_manifest.SerializeAsString(), net::HTTP_OK,
1122 net::URLRequestStatus::SUCCESS);
1123 factory_.SetFakeResponse(GURL("http://good-manifest.com/retrieved"), "good",
1124 net::HTTP_OK, net::URLRequestStatus::SUCCESS);
1125
1126 base::HistogramTester histogram;
1127
1128 {
1129 PrecacheFetcher precache_fetcher(
1130 request_context_.get(), GURL(), std::string(),
1131 std::move(unfinished_work), kExperimentID,
1132 precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
1133 precache_fetcher.Start();
1134
1135 base::RunLoop().RunUntilIdle();
1136
1137 // Destroy the PrecacheFetcher after it has finished, to record metrics.
1138 }
1139
1140 std::vector<GURL> expected_requested_urls;
1141 expected_requested_urls.emplace_back(kConfigURL);
1142 expected_requested_urls.emplace_back(kGoodManifestURL);
1143 expected_requested_urls.emplace_back("http://good-manifest.com/retrieved");
1144 expected_requested_urls.emplace_back("http://good-manifest.com/retrieved");
1145
1146 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
1147
1148 EXPECT_TRUE(precache_delegate_.was_on_done_called());
1149
1150 histogram.ExpectUniqueSample("Precache.Fetch.PercentCompleted", 100, 1);
1151 histogram.ExpectUniqueSample("Precache.Fetch.ResponseBytes.Total",
1152 url_callback_.total_response_bytes(), 1);
1153 histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 1);
1154 }
1155
1097 // MaxBytesPerResource is impossible to test with net::FakeURLFetcherFactory: 1156 // MaxBytesPerResource is impossible to test with net::FakeURLFetcherFactory:
1098 // 1157 //
1099 // - The PrecacheFetcher::Fetcher's max_bytes logic only applies to network 1158 // - The PrecacheFetcher::Fetcher's max_bytes logic only applies to network
1100 // requests, and not cached requests. 1159 // requests, and not cached requests.
1101 // - Forcing PrecacheFetcher::Fetcher to do a network request (i.e. a second 1160 // - Forcing PrecacheFetcher::Fetcher to do a network request (i.e. a second
1102 // request for the same URL) requires either setting a custom error of 1161 // request for the same URL) requires either setting a custom error of
1103 // ERR_CACHE_MISS or setting a custom ETag response header, neither of which 1162 // ERR_CACHE_MISS or setting a custom ETag response header, neither of which
1104 // is possible under FakeURLFetcherFactory. 1163 // is possible under FakeURLFetcherFactory.
1105 // 1164 //
1106 // PrecacheFetcherFetcherTest.ResourceTooBig tests the bulk of the code. We'll 1165 // PrecacheFetcherFetcherTest.ResourceTooBig tests the bulk of the code. We'll
(...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after
1961 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls()); 2020 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
1962 2021
1963 EXPECT_TRUE(precache_delegate_.was_on_done_called()); 2022 EXPECT_TRUE(precache_delegate_.was_on_done_called());
1964 2023
1965 histogram.ExpectTotalCount("Precache.Fetch.PercentCompleted", 2); 2024 histogram.ExpectTotalCount("Precache.Fetch.PercentCompleted", 2);
1966 histogram.ExpectTotalCount("Precache.Fetch.ResponseBytes.Total", 2); 2025 histogram.ExpectTotalCount("Precache.Fetch.ResponseBytes.Total", 2);
1967 histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 2); 2026 histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 2);
1968 } 2027 }
1969 2028
1970 } // namespace precache 2029 } // namespace precache
OLDNEW
« 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