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

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

Issue 2887133003: predictors: Refactor resource_prefetch_predictor triggering. (Closed)
Patch Set: . Created 3 years, 7 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_unittest.cc
diff --git a/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc b/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc
index 00383dad0e318c99a55a26c055a5582306c268af..e67236a7527507f5f54f1ade746eb8fcf6d51c46 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc
+++ b/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc
@@ -14,8 +14,10 @@
#include "base/test/histogram_tester.h"
#include "base/time/time.h"
#include "chrome/browser/history/history_service_factory.h"
+#include "chrome/browser/predictors/loading_predictor.h"
#include "chrome/browser/predictors/resource_prefetch_predictor_tables.h"
#include "chrome/browser/predictors/resource_prefetch_predictor_test_util.h"
+#include "chrome/browser/predictors/resource_prefetcher_manager.h"
#include "chrome/test/base/testing_profile.h"
#include "components/history/core/browser/history_service.h"
#include "components/history/core/browser/history_types.h"
@@ -259,7 +261,7 @@ class ResourcePrefetchPredictorTest : public testing::Test {
}
void InitializePredictor() {
- predictor_->StartInitialization();
+ loading_predictor_->StartInitialization();
base::RunLoop loop;
loop.RunUntilIdle(); // Runs the DB lookup.
profile_->BlockUntilHistoryProcessesPendingRequests();
@@ -267,20 +269,10 @@ class ResourcePrefetchPredictorTest : public testing::Test {
void ResetPredictor(bool small_db = true) {
LoadingPredictorConfig config;
- if (small_db) {
- config.max_urls_to_track = 3;
- config.max_hosts_to_track = 2;
- config.max_resources_per_entry = 4;
- config.max_consecutive_misses = 2;
- config.max_redirect_consecutive_misses = 2;
- config.min_resource_confidence_to_trigger_prefetch = 0.5;
- }
- config.is_url_learning_enabled = true;
- config.is_manifests_enabled = true;
- config.is_origin_learning_enabled = true;
-
- config.mode |= LoadingPredictorConfig::LEARNING;
- predictor_.reset(new ResourcePrefetchPredictor(config, profile_.get()));
+ PopulateTestConfig(&config, small_db);
+ loading_predictor_ =
+ base::MakeUnique<LoadingPredictor>(config, profile_.get());
+ predictor_ = loading_predictor_->resource_prefetch_predictor();
predictor_->set_mock_tables(mock_tables_);
}
@@ -296,7 +288,8 @@ class ResourcePrefetchPredictorTest : public testing::Test {
std::unique_ptr<TestingProfile> profile_;
net::TestURLRequestContext url_request_context_;
- std::unique_ptr<ResourcePrefetchPredictor> predictor_;
+ std::unique_ptr<LoadingPredictor> loading_predictor_;
+ ResourcePrefetchPredictor* predictor_;
scoped_refptr<StrictMock<MockResourcePrefetchPredictorTables>> mock_tables_;
PrefetchDataMap test_url_data_;
@@ -355,7 +348,8 @@ void ResourcePrefetchPredictorTest::TearDown() {
mock_tables_->manifest_table_.data_);
EXPECT_EQ(*predictor_->origin_data_->data_cache_,
mock_tables_->origin_table_.data_);
- predictor_.reset(NULL);
+ loading_predictor_ = nullptr;
+ predictor_ = nullptr;
profile_->DestroyHistoryService();
}
@@ -624,8 +618,7 @@ TEST_F(ResourcePrefetchPredictorTest, NavigationLowHistoryCount) {
content::RESOURCE_TYPE_SCRIPT, net::MEDIUM, "text/javascript", false);
predictor_->RecordURLResponse(resource3);
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(
- predictor_.get());
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_);
EXPECT_CALL(
mock_observer,
OnNavigationLearned(kVisitCount,
@@ -724,8 +717,7 @@ TEST_F(ResourcePrefetchPredictorTest, NavigationUrlNotInDB) {
predictor_->RecordURLResponse(redirected);
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(
- predictor_.get());
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_);
EXPECT_CALL(mock_observer,
OnNavigationLearned(
kVisitCount, CreatePageRequestSummary("http://www.google.com",
@@ -839,8 +831,7 @@ TEST_F(ResourcePrefetchPredictorTest, NavigationUrlInDB) {
no_store.is_no_store = true;
predictor_->RecordURLResponse(no_store);
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(
- predictor_.get());
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_);
EXPECT_CALL(mock_observer,
OnNavigationLearned(
kVisitCount, CreatePageRequestSummary("http://www.google.com",
@@ -942,8 +933,7 @@ TEST_F(ResourcePrefetchPredictorTest, NavigationUrlNotInDBAndDBFull) {
content::RESOURCE_TYPE_IMAGE, net::MEDIUM, "image/png", false);
predictor_->RecordURLResponse(resource2);
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(
- predictor_.get());
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_);
EXPECT_CALL(mock_observer,
OnNavigationLearned(
kVisitCount, CreatePageRequestSummary(
@@ -1013,8 +1003,7 @@ TEST_F(ResourcePrefetchPredictorTest, RedirectUrlNotInDB) {
predictor_->RecordURLRedirect(fb3);
NavigationID fb_end = CreateNavigationID(1, "https://facebook.com/google");
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(
- predictor_.get());
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_);
EXPECT_CALL(
mock_observer,
OnNavigationLearned(kVisitCount, CreatePageRequestSummary(
@@ -1064,8 +1053,7 @@ TEST_F(ResourcePrefetchPredictorTest, RedirectUrlInDB) {
predictor_->RecordURLRedirect(fb3);
NavigationID fb_end = CreateNavigationID(1, "https://facebook.com/google");
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(
- predictor_.get());
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_);
EXPECT_CALL(
mock_observer,
OnNavigationLearned(kVisitCount, CreatePageRequestSummary(
@@ -2069,28 +2057,6 @@ TEST_F(ResourcePrefetchPredictorTest,
ResourcePrefetchPredictor::RedirectStatus::REDIRECT_CORRECTLY_PREDICTED);
}
-TEST_F(ResourcePrefetchPredictorTest, TestPrefetchingDurationHistogram) {
- // Prefetching duration for an url without resources in the database
- // shouldn't be recorded.
- const std::string main_frame_url = "http://google.com/?query=cats";
- predictor_->StartPrefetching(GURL(main_frame_url), HintOrigin::EXTERNAL);
- predictor_->StopPrefetching(GURL(main_frame_url));
- histogram_tester_->ExpectTotalCount(
- internal::kResourcePrefetchPredictorPrefetchingDurationHistogram, 0);
-
- // Fill the database to record a duration.
- PrefetchData google = CreatePrefetchData("google.com", 1);
- InitializeResourceData(
- google.add_resources(), "https://cdn.google.com/script.js",
- content::RESOURCE_TYPE_SCRIPT, 10, 0, 1, 2.1, net::MEDIUM, false, false);
- predictor_->host_resource_data_->UpdateData(google.primary_key(), google);
-
- predictor_->StartPrefetching(GURL(main_frame_url), HintOrigin::EXTERNAL);
- predictor_->StopPrefetching(GURL(main_frame_url));
- histogram_tester_->ExpectTotalCount(
- internal::kResourcePrefetchPredictorPrefetchingDurationHistogram, 1);
-}
-
TEST_F(ResourcePrefetchPredictorTest, TestRecordFirstContentfulPaint) {
auto res1_time = base::TimeTicks::FromInternalValue(1);
auto res2_time = base::TimeTicks::FromInternalValue(2);

Powered by Google App Engine
This is Rietveld 408576698