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

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

Issue 2365613002: predictors: Refactor the prefetcher in resource_prefetch_predictor. (Closed)
Patch Set: . Created 4 years, 3 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_prefetcher_unittest.cc
diff --git a/chrome/browser/predictors/resource_prefetcher_unittest.cc b/chrome/browser/predictors/resource_prefetcher_unittest.cc
index c2b804b0a1d65a4ab133fff36bf80f9d47707ad9..b67f1de917b742076c6ece88e437ca4ced05fc8d 100644
--- a/chrome/browser/predictors/resource_prefetcher_unittest.cc
+++ b/chrome/browser/predictors/resource_prefetcher_unittest.cc
@@ -35,12 +35,8 @@ class TestResourcePrefetcher : public ResourcePrefetcher {
const ResourcePrefetchPredictorConfig& config,
const NavigationID& navigation_id,
PrefetchKeyType key_type,
- std::unique_ptr<RequestVector> requests)
- : ResourcePrefetcher(delegate,
- config,
- navigation_id,
- key_type,
- std::move(requests)) {}
+ const std::vector<GURL>& urls)
+ : ResourcePrefetcher(delegate, config, navigation_id, key_type, urls) {}
~TestResourcePrefetcher() override {}
@@ -48,7 +44,7 @@ class TestResourcePrefetcher : public ResourcePrefetcher {
void ReadFullResponse(net::URLRequest* request) override {
EXPECT_TRUE(request->load_flags() & net::LOAD_PREFETCH);
- FinishRequest(request, Request::PREFETCH_STATUS_FROM_CACHE);
+ FinishRequest(request);
}
private:
@@ -68,9 +64,8 @@ class TestResourcePrefetcherDelegate : public ResourcePrefetcher::Delegate {
return request_context_getter_->GetURLRequestContext();
}
- MOCK_METHOD2(ResourcePrefetcherFinished,
- void(ResourcePrefetcher* prefetcher,
- ResourcePrefetcher::RequestVector* requests));
+ MOCK_METHOD1(ResourcePrefetcherFinished,
+ void(ResourcePrefetcher* prefetcher));
private:
scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
@@ -89,8 +84,6 @@ class ResourcePrefetcherTest : public testing::Test {
~ResourcePrefetcherTest() override;
protected:
- typedef ResourcePrefetcher::Request Request;
-
void AddStartUrlRequestExpectation(const std::string& url) {
EXPECT_CALL(*prefetcher_,
StartURLRequest(Property(&net::URLRequest::original_url,
@@ -106,8 +99,8 @@ class ResourcePrefetcherTest : public testing::Test {
net::URLRequest* GetInFlightRequest(const std::string& url_str) {
GURL url(url_str);
- for (auto* request : prefetcher_->request_queue_) {
- EXPECT_NE(request->resource_url, url);
+ for (const auto& queued_url : prefetcher_->request_queue_) {
+ EXPECT_NE(queued_url, url);
}
for (const auto& key_value : prefetcher_->inflight_requests_) {
if (key_value.first->original_url() == url)
@@ -158,41 +151,24 @@ ResourcePrefetcherTest::~ResourcePrefetcherTest() {
}
TEST_F(ResourcePrefetcherTest, TestPrefetcherFinishes) {
- std::unique_ptr<ResourcePrefetcher::RequestVector> requests(
- new ResourcePrefetcher::RequestVector);
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://www.google.com/resource1.html")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://www.google.com/resource2.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://yahoo.com/resource1.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://yahoo.com/resource2.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://yahoo.com/resource3.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://m.google.com/resource1.jpg")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://www.google.com/resource3.html")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://m.google.com/resource2.html")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://m.google.com/resource3.css")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://m.google.com/resource4.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://yahoo.com/resource4.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://yahoo.com/resource5.png")));
+ std::vector<GURL> urls = {GURL("http://www.google.com/resource1.html"),
+ GURL("http://www.google.com/resource2.png"),
+ GURL("http://yahoo.com/resource1.png"),
+ GURL("http://yahoo.com/resource2.png"),
+ GURL("http://yahoo.com/resource3.png"),
+ GURL("http://m.google.com/resource1.jpg"),
+ GURL("http://www.google.com/resource3.html"),
+ GURL("http://m.google.com/resource2.html"),
+ GURL("http://m.google.com/resource3.css"),
+ GURL("http://m.google.com/resource4.png"),
+ GURL("http://yahoo.com/resource4.png"),
+ GURL("http://yahoo.com/resource5.png")};
NavigationID navigation_id(1, 2, GURL("http://www.google.com"));
- // Needed later for comparison.
- ResourcePrefetcher::RequestVector* requests_ptr = requests.get();
-
- prefetcher_.reset(
- new TestResourcePrefetcher(&prefetcher_delegate_, config_, navigation_id,
- PREFETCH_KEY_TYPE_URL, std::move(requests)));
+ prefetcher_.reset(new TestResourcePrefetcher(&prefetcher_delegate_, config_,
+ navigation_id,
+ PREFETCH_KEY_TYPE_URL, urls));
// Starting the prefetcher maxes out the number of possible requests.
AddStartUrlRequestExpectation("http://www.google.com/resource1.html");
@@ -246,71 +222,25 @@ TEST_F(ResourcePrefetcherTest, TestPrefetcherFinishes) {
// Expect the final call.
EXPECT_CALL(prefetcher_delegate_,
- ResourcePrefetcherFinished(Eq(prefetcher_.get()),
- Eq(requests_ptr)));
+ ResourcePrefetcherFinished(Eq(prefetcher_.get())));
OnResponse("http://yahoo.com/resource3.png");
CheckPrefetcherState(0, 0, 0);
-
- // Check the prefetch status.
- EXPECT_EQ(Request::PREFETCH_STATUS_CERT_ERROR,
- (*requests_ptr)[0]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_FROM_CACHE,
- (*requests_ptr)[1]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_FROM_CACHE,
- (*requests_ptr)[2]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_REDIRECTED,
- (*requests_ptr)[3]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_FROM_CACHE,
- (*requests_ptr)[4]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_FROM_CACHE,
- (*requests_ptr)[5]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_REDIRECTED,
- (*requests_ptr)[6]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_FROM_CACHE,
- (*requests_ptr)[7]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_AUTH_REQUIRED,
- (*requests_ptr)[8]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_CERT_REQUIRED,
- (*requests_ptr)[9]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_FROM_CACHE,
- (*requests_ptr)[10]->prefetch_status);
- EXPECT_EQ(Request::PREFETCH_STATUS_FROM_CACHE,
- (*requests_ptr)[11]->prefetch_status);
-
- // We need to delete requests_ptr here, though it looks to be managed by the
- // scoped_ptr requests. The scoped_ptr requests releases itself and the raw
- // pointer requests_ptr is passed to ResourcePrefetcherFinished(). In the
- // test, ResourcePrefetcherFinished() is a mock function and does not handle
- // the raw pointer properly. In the real code, requests_ptr will eventually be
- // passed to and managed by ResourcePrefetchPredictor::Result::Result.
- delete requests_ptr;
}
TEST_F(ResourcePrefetcherTest, TestPrefetcherStopped) {
- std::unique_ptr<ResourcePrefetcher::RequestVector> requests(
- new ResourcePrefetcher::RequestVector);
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://www.google.com/resource1.html")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://www.google.com/resource2.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://yahoo.com/resource1.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://yahoo.com/resource2.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://yahoo.com/resource3.png")));
- requests->push_back(new ResourcePrefetcher::Request(GURL(
- "http://m.google.com/resource1.jpg")));
+ std::vector<GURL> urls = {GURL("http://www.google.com/resource1.html"),
+ GURL("http://www.google.com/resource2.png"),
+ GURL("http://yahoo.com/resource1.png"),
+ GURL("http://yahoo.com/resource2.png"),
+ GURL("http://yahoo.com/resource3.png"),
+ GURL("http://m.google.com/resource1.jpg")};
NavigationID navigation_id(1, 2, GURL("http://www.google.com"));
- // Needed later for comparison.
- ResourcePrefetcher::RequestVector* requests_ptr = requests.get();
-
- prefetcher_.reset(
- new TestResourcePrefetcher(&prefetcher_delegate_, config_, navigation_id,
- PREFETCH_KEY_TYPE_HOST, std::move(requests)));
+ prefetcher_.reset(new TestResourcePrefetcher(&prefetcher_delegate_, config_,
+ navigation_id,
+ PREFETCH_KEY_TYPE_HOST, urls));
// Starting the prefetcher maxes out the number of possible requests.
AddStartUrlRequestExpectation("http://www.google.com/resource1.html");
@@ -338,19 +268,10 @@ TEST_F(ResourcePrefetcherTest, TestPrefetcherStopped) {
// Expect the final call.
EXPECT_CALL(prefetcher_delegate_,
- ResourcePrefetcherFinished(Eq(prefetcher_.get()),
- Eq(requests_ptr)));
+ ResourcePrefetcherFinished(Eq(prefetcher_.get())));
OnResponse("http://m.google.com/resource1.jpg");
CheckPrefetcherState(0, 1, 0);
-
- // We need to delete requests_ptr here, though it looks to be managed by the
- // scoped_ptr requests. The scoped_ptr requests releases itself and the raw
- // pointer requests_ptr is passed to ResourcePrefetcherFinished(). In the
- // test, ResourcePrefetcherFinished() is a mock function and does not handle
- // the raw pointer properly. In the real code, requests_ptr will eventually be
- // passed to and managed by ResourcePrefetchPredictor::Result::Result.
- delete requests_ptr;
}
} // namespace predictors

Powered by Google App Engine
This is Rietveld 408576698