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