| 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..b79a2603688a47d0e03c3f6e184c8e5dd646841e 100644
|
| --- a/chrome/browser/prerender/prerender_unittest.cc
|
| +++ b/chrome/browser/prerender/prerender_unittest.cc
|
| @@ -642,6 +642,36 @@ TEST_F(PrerenderTest, DuplicateTest) {
|
| ASSERT_EQ(prerender_contents, entry.get());
|
| }
|
|
|
| +// Make sure that if queue a request, and a second prerender request for the
|
| +// same URL comes in, that the second request attaches to the first prerender,
|
| +// and we don't use the second prerender contents.
|
| +// This test is the same as the "DuplicateTest" above, but for NoStatePrefetch.
|
| +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 =
|
| @@ -794,10 +824,12 @@ TEST_F(PrerenderTest, NoStatePrefetchDuplicate) {
|
| OverridePrerenderManagerTimeTicks(prerender_manager());
|
|
|
| // Prefetch the url once.
|
| - prerender_manager()->CreateNextPrerenderContents(
|
| - kUrl, ORIGIN_OMNIBOX, FINAL_STATUS_MANAGER_SHUTDOWN);
|
| + prerender_manager()->CreateNextPrerenderContents(kUrl, ORIGIN_OMNIBOX,
|
| + FINAL_STATUS_CANCELLED);
|
| EXPECT_TRUE(
|
| prerender_manager()->AddPrerenderFromOmnibox(kUrl, nullptr, gfx::Size()));
|
| + // Cancel the prerender so that it is not reused.
|
| + prerender_manager()->CancelAllPrerenders();
|
|
|
| prerender_manager()->CreateNextPrerenderContents(
|
| kUrl, ORIGIN_OMNIBOX, FINAL_STATUS_MANAGER_SHUTDOWN);
|
|
|