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

Unified Diff: chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc

Issue 2831233004: predictors: Add resource type to manifest. (Closed)
Patch Set: Use the same resource type ordering. Created 3 years, 8 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: chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc
diff --git a/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc b/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc
index a7c2bf7be22ee97903f4358d5273c7f12f9daa5c..9633aca66e1c69bcfd32d83675c40f298a43fb5d 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc
+++ b/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc
@@ -316,7 +316,8 @@ void ResourcePrefetchPredictorTablesTest::TestUpdateData() {
precache::PrecacheManifest theverge;
InitializePrecacheResource(theverge.add_resource(),
- "https://www.theverge.com/main.js", 0.7);
+ "https://www.theverge.com/main.js", 0.7,
+ precache::PrecacheResource::RESOURCE_TYPE_SCRIPT);
tables_->UpdateManifestData("theverge.com", theverge);
@@ -725,16 +726,20 @@ void ResourcePrefetchPredictorTablesTest::InitializeSampleData() {
{ // Manifest data.
precache::PrecacheManifest wikipedia;
+ InitializePrecacheResource(
+ wikipedia.add_resource(), "https://en.wikipedia.org/script.js", 0.7,
+ precache::PrecacheResource::RESOURCE_TYPE_SCRIPT);
InitializePrecacheResource(wikipedia.add_resource(),
- "https://en.wikipedia.org/script.js", 0.7);
- InitializePrecacheResource(wikipedia.add_resource(),
- "https://en.wikipedia.org/image.png", 0.3);
+ "https://en.wikipedia.org/image.png", 0.3,
+ precache::PrecacheResource::RESOURCE_TYPE_IMAGE);
precache::PrecacheManifest youtube;
InitializePrecacheResource(youtube.add_resource(),
- "https://youtube.com/photo.jpg", 0.5);
- InitializePrecacheResource(youtube.add_resource(),
- "https://youtube.com/base.js", 0.2);
+ "https://youtube.com/photo.jpg", 0.5,
+ precache::PrecacheResource::RESOURCE_TYPE_IMAGE);
+ InitializePrecacheResource(
+ youtube.add_resource(), "https://youtube.com/base.js", 0.2,
+ precache::PrecacheResource::RESOURCE_TYPE_SCRIPT);
test_manifest_data_.clear();
test_manifest_data_.insert(std::make_pair("en.wikipedia.org", wikipedia));
@@ -797,13 +802,10 @@ TEST_F(ResourcePrefetchPredictorTablesTest, ComputeResourceScore) {
EXPECT_GT(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.),
compute_score(net::IDLE, content::RESOURCE_TYPE_SCRIPT, 1.));
- // Scripts and stylesheets are equivalent.
- EXPECT_NEAR(
- compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.),
- compute_score(net::HIGHEST, content::RESOURCE_TYPE_STYLESHEET, 42.),
- 1e-4);
-
- // Scripts are more important than fonts and images, and the rest.
+ // Stylesheets are are more important than scripts, fonts and images, and the
+ // rest.
+ EXPECT_GT(compute_score(net::HIGHEST, content::RESOURCE_TYPE_STYLESHEET, 42.),
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.));
EXPECT_GT(
compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.),
compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.));
@@ -819,6 +821,33 @@ TEST_F(ResourcePrefetchPredictorTablesTest, ComputeResourceScore) {
compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.));
}
+TEST_F(ResourcePrefetchPredictorTablesTest, ComputePrecacheResourceScore) {
+ auto compute_score = [](precache::PrecacheResource::Type resource_type,
+ float weight_ratio) {
+ precache::PrecacheResource resource;
+ InitializePrecacheResource(&resource, "", weight_ratio, resource_type);
+ return ResourcePrefetchPredictorTables::ComputePrecacheResourceScore(
+ resource);
+ };
+
+ // Stylesheets are the most impotant followed by scripts, fonts and images in
+ // this order.
+ EXPECT_GT(
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_STYLESHEET, 0.1),
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_SCRIPT, 0.9));
+ EXPECT_GT(
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_SCRIPT, 0.1),
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_FONT, 0.9));
+ EXPECT_GT(
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_FONT, 0.1),
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_IMAGE, 0.9));
+
+ // If resource types are equal, weight ratio matters.
+ EXPECT_GT(
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_SCRIPT, 0.7),
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_SCRIPT, 0.6));
+}
+
TEST_F(ResourcePrefetchPredictorTablesTest, ComputeOriginScore) {
auto compute_score = [](int hits, int misses, double average_position,
bool always_access_network, bool accessed_network) {

Powered by Google App Engine
This is Rietveld 408576698