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

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

Issue 2623553003: precache: Add geometric resource weight function. (Closed)
Patch Set: Add comments and tests. Created 3 years, 11 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 930cd4df128fb1b01920ae7477e9ca7d08db2df1..65d565ca1266413aead8631c4291ad9dbe2d0f38 100644
--- a/components/precache/core/precache_fetcher_unittest.cc
+++ b/components/precache/core/precache_fetcher_unittest.cc
@@ -1353,7 +1353,32 @@ TEST_F(PrecacheFetcherTest, SendUsedDownloadedResourceHash) {
}
}
-TEST_F(PrecacheFetcherTest, GloballyRankResources) {
+TEST(PrecacheFetcherResourceWeightTest, Naive) {
+ ASSERT_EQ(
+ 0, ResourceWeight(PrecacheConfigurationSettings::FUNCTION_NAIVE, 0, 100));
+ ASSERT_EQ(
+ 4, ResourceWeight(PrecacheConfigurationSettings::FUNCTION_NAIVE, 1, 4));
+ ASSERT_EQ(8, ResourceWeight(PrecacheConfigurationSettings::FUNCTION_NAIVE,
+ 0.5, 16));
+}
+
+TEST(PrecacheFetcherResourceWeightTest, Geometric) {
+ ASSERT_EQ(0, ResourceWeight(PrecacheConfigurationSettings::FUNCTION_GEOMETRIC,
+ 0, 100));
+ ASSERT_EQ(1, ResourceWeight(PrecacheConfigurationSettings::FUNCTION_GEOMETRIC,
+ 1, 4));
+ ASSERT_NEAR(0.9999847,
+ ResourceWeight(PrecacheConfigurationSettings::FUNCTION_GEOMETRIC,
+ 0.5, 16),
+ 0.0000001);
+}
+
+class PrecacheFetcherGlobalRankingTest
+ : public PrecacheFetcherTest,
+ public testing::WithParamInterface<
+ PrecacheConfigurationSettings::ResourceWeightFunction> {};
+
+TEST_P(PrecacheFetcherGlobalRankingTest, GloballyRankResources) {
SetDefaultFlags();
const size_t kNumTopHosts = 5;
@@ -1364,6 +1389,7 @@ TEST_F(PrecacheFetcherTest, GloballyRankResources) {
PrecacheConfigurationSettings config;
config.set_top_sites_count(kNumTopHosts);
config.set_global_ranking(true);
+ config.set_resource_weight_function(GetParam());
factory_.SetFakeResponse(GURL(kConfigURL), config.SerializeAsString(),
net::HTTP_OK, net::URLRequestStatus::SUCCESS);
expected_requested_urls.emplace_back(kConfigURL);
@@ -1397,8 +1423,8 @@ TEST_F(PrecacheFetcherTest, GloballyRankResources) {
resource->set_weight_ratio(weight);
factory_.SetFakeResponse(GURL(resource_url), "good", net::HTTP_OK,
net::URLRequestStatus::SUCCESS);
- resources.emplace_back(resource_url,
- top_host->visits() * resource->weight_ratio());
+ resources.emplace_back(
+ resource_url, ResourceWeight(GetParam(), weight, top_host->visits()));
}
factory_.SetFakeResponse(GURL(kManifestURLPrefix + top_host_url),
manifest.SerializeAsString(), net::HTTP_OK,
@@ -1426,6 +1452,12 @@ TEST_F(PrecacheFetcherTest, GloballyRankResources) {
EXPECT_TRUE(precache_delegate_.was_on_done_called());
}
+INSTANTIATE_TEST_CASE_P(
+ PrecacheFetcherGlobalRankingTest,
+ PrecacheFetcherGlobalRankingTest,
+ testing::Values(PrecacheConfigurationSettings::FUNCTION_NAIVE,
+ PrecacheConfigurationSettings::FUNCTION_GEOMETRIC));
+
TEST_F(PrecacheFetcherTest, GloballyRankResourcesAfterPauseResume) {
SetDefaultFlags();

Powered by Google App Engine
This is Rietveld 408576698