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

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

Issue 2710673004: precache: Allow experiment bitsets of any size. (Closed)
Patch Set: Update comments, make test bitset asymmetric, and make proto field deprecation more obvious. Created 3 years, 10 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
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 f42c6c39ba1a525dba24316bbbf010103281b0c9..374e0b092cb334ed4896c1e572c9ec9d2f741e35 100644
--- a/components/precache/core/precache_fetcher_unittest.cc
+++ b/components/precache/core/precache_fetcher_unittest.cc
@@ -576,7 +576,28 @@ TEST_F(PrecacheFetcherTest, FullPrecache) {
histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 1);
}
-TEST_F(PrecacheFetcherTest, PrecacheResourceSelection) {
+class PrecacheFetcherResourceSelectionTest
+ : public PrecacheFetcherTest,
+ public testing::WithParamInterface<PrecacheResourceSelection> {
+ public:
+ // These bitsets are asymmetric and multibyte, in order to test the orderings.
+
+ // Set bits for kGoodResourceURL, kGoodResourceURLC and kGoodResourceURLD.
+ static PrecacheResourceSelection DeprecatedBitset() {
+ PrecacheResourceSelection ret;
+ ret.set_deprecated_bitset(0b110000000001);
+ return ret;
+ }
+
+ // Set bits for kGoodResourceURL, kGoodResourceURLC and kGoodResourceURLD.
+ static PrecacheResourceSelection Bitset() {
+ PrecacheResourceSelection ret;
+ ret.set_bitset("\x01\x0c");
+ return ret;
+ }
+};
+
+TEST_P(PrecacheFetcherResourceSelectionTest, Basic) {
SetDefaultFlags();
std::unique_ptr<PrecacheUnfinishedWork> unfinished_work(
@@ -590,15 +611,13 @@ TEST_F(PrecacheFetcherTest, PrecacheResourceSelection) {
PrecacheResourceSelection resource_selection;
good_manifest.add_resource()->set_url(kGoodResourceURL);
good_manifest.add_resource()->set_url(kGoodResourceURLA);
- good_manifest.add_resource()->set_url(kGoodResourceURLB);
+ for (int i = 0; i < 8; ++i)
+ good_manifest.add_resource()->set_url(kGoodResourceURLB);
good_manifest.add_resource()->set_url(kGoodResourceURLC);
good_manifest.add_resource()->set_url(kGoodResourceURLD);
- // Set bits for kGoodResourceURL, kGoodResourceURLB and kGoodResourceURLD.
- resource_selection.set_bitset(0b10101);
(*good_manifest.mutable_experiments()
- ->mutable_resources_by_experiment_group())[kExperimentID] =
- resource_selection;
+ ->mutable_resources_by_experiment_group())[kExperimentID] = GetParam();
factory_.SetFakeResponse(GURL(kConfigURL), config.SerializeAsString(),
net::HTTP_OK, net::URLRequestStatus::SUCCESS);
@@ -607,7 +626,7 @@ TEST_F(PrecacheFetcherTest, PrecacheResourceSelection) {
net::URLRequestStatus::SUCCESS);
factory_.SetFakeResponse(GURL(kGoodResourceURL), "good", net::HTTP_OK,
net::URLRequestStatus::SUCCESS);
- factory_.SetFakeResponse(GURL(kGoodResourceURLB), "good URL B", net::HTTP_OK,
+ factory_.SetFakeResponse(GURL(kGoodResourceURLC), "good URL B", net::HTTP_OK,
net::URLRequestStatus::SUCCESS);
factory_.SetFakeResponse(GURL(kGoodResourceURLD), "good URL D", net::HTTP_OK,
net::URLRequestStatus::SUCCESS);
@@ -630,7 +649,7 @@ TEST_F(PrecacheFetcherTest, PrecacheResourceSelection) {
expected_requested_urls.emplace_back(kConfigURL);
expected_requested_urls.emplace_back(kGoodManifestURL);
expected_requested_urls.emplace_back(kGoodResourceURL);
- expected_requested_urls.emplace_back(kGoodResourceURLB);
+ expected_requested_urls.emplace_back(kGoodResourceURLC);
expected_requested_urls.emplace_back(kGoodResourceURLD);
EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
@@ -643,7 +662,7 @@ TEST_F(PrecacheFetcherTest, PrecacheResourceSelection) {
histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 1);
}
-TEST_F(PrecacheFetcherTest, PrecacheResourceSelectionMissingBitset) {
+TEST_P(PrecacheFetcherResourceSelectionTest, MissingBitset) {
SetDefaultFlags();
std::unique_ptr<PrecacheUnfinishedWork> unfinished_work(
@@ -662,10 +681,9 @@ TEST_F(PrecacheFetcherTest, PrecacheResourceSelectionMissingBitset) {
good_manifest.add_resource()->set_url(kGoodResourceURLD);
// Set bits for a different experiment group.
- resource_selection.set_bitset(0b1);
(*good_manifest.mutable_experiments()
->mutable_resources_by_experiment_group())[kExperimentID + 1] =
- resource_selection;
+ GetParam();
// Resource selection bitset for the experiment group will be missing and all
// resources will be fetched.
@@ -718,6 +736,12 @@ TEST_F(PrecacheFetcherTest, PrecacheResourceSelectionMissingBitset) {
histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 1);
}
+INSTANTIATE_TEST_CASE_P(
+ PrecacheFetcherResourceSelectionTest,
+ PrecacheFetcherResourceSelectionTest,
+ testing::Values(PrecacheFetcherResourceSelectionTest::DeprecatedBitset(),
+ PrecacheFetcherResourceSelectionTest::Bitset()));
+
TEST_F(PrecacheFetcherTest, PrecachePauseResume) {
SetDefaultFlags();

Powered by Google App Engine
This is Rietveld 408576698