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

Unified Diff: chrome/browser/prerender/prerender_unittest.cc

Issue 2622893002: [NoStatePrefetch] Don't cancel prefetches when there are duplicates (Closed)
Patch Set: add test 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
« no previous file with comments | « chrome/browser/prerender/prerender_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_unittest.cc
diff --git a/chrome/browser/prerender/prerender_unittest.cc b/chrome/browser/prerender/prerender_unittest.cc
index 82b9e9666d8301ff63c6a55b5f6abbe41db6aefb..73ba4f997e7f41058127e6f5fb22089f11bfc48b 100644
--- a/chrome/browser/prerender/prerender_unittest.cc
+++ b/chrome/browser/prerender/prerender_unittest.cc
@@ -642,6 +642,38 @@ TEST_F(PrerenderTest, DuplicateTest) {
ASSERT_EQ(prerender_contents, entry.get());
}
+// Make sure that if queue a request, and a second prerender request for the
mattcary 2017/01/10 15:00:50 Maybe say explicitly that this is the same as the
droger 2017/01/10 15:11:42 Done.
+// same URL comes in, that the second request attaches to the first prerender,
+// and we don't use the second prerender contents.
+TEST_F(PrerenderTest, DuplicateTest_NoStatePrefetch) {
+ RestorePrerenderMode restore_prerender_mode;
+ prerender_manager()->SetMode(
+ PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH);
+
+ SetConcurrency(2);
+ GURL url("http://www.google.com/");
+ DummyPrerenderContents* prerender_contents =
+ prerender_manager()->CreateNextPrerenderContents(
+ url,
+ FINAL_STATUS_USED);
+ EXPECT_TRUE(AddSimplePrerender(url));
+ EXPECT_FALSE(prerender_manager()->next_prerender_contents());
+ EXPECT_TRUE(prerender_contents->prerendering_has_started());
+
+ DummyPrerenderContents* prerender_contents1 =
+ prerender_manager()->CreateNextPrerenderContents(
+ url,
+ FINAL_STATUS_MANAGER_SHUTDOWN);
+ EXPECT_TRUE(AddSimplePrerender(url));
+ EXPECT_EQ(prerender_contents1,
+ prerender_manager()->next_prerender_contents());
+ EXPECT_FALSE(prerender_contents1->prerendering_has_started());
+
+ std::unique_ptr<PrerenderContents> entry =
+ prerender_manager()->FindAndUseEntry(url);
+ ASSERT_EQ(prerender_contents, entry.get());
+}
+
// Ensure that we expire a prerendered page after the max. permitted time.
TEST_F(PrerenderTest, ExpireTest) {
base::SimpleTestTickClock* tick_clock =
« no previous file with comments | « chrome/browser/prerender/prerender_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698