Chromium Code Reviews| Index: chrome/browser/prerender/prerender_unittest.cc |
| diff --git a/chrome/browser/prerender/prerender_unittest.cc b/chrome/browser/prerender/prerender_unittest.cc |
| index a8f56cbeb7d3f9ffdd6f683a96fd59874a2adcf9..3ff1a7854560b6cd998524b28174c91e933dfc74 100644 |
| --- a/chrome/browser/prerender/prerender_unittest.cc |
| +++ b/chrome/browser/prerender/prerender_unittest.cc |
| @@ -316,6 +316,10 @@ class PrerenderTest : public testing::Test { |
| return prerender_link_manager_->IsEmpty(); |
| } |
| + size_t CountAllLinkPrerenders() { |
|
mmenke
2013/02/14 16:48:12
nit: const?
|
| + return prerender_link_manager_->prerenders_.size(); |
| + } |
| + |
| int last_prerender_id() const { |
| return last_prerender_id_; |
| } |
| @@ -394,6 +398,32 @@ TEST_F(PrerenderTest, DuplicateTest) { |
| ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| } |
| +// Makes sure that we do not create two running prerender entries for the same |
| +// launcher and prerender id. |
| +TEST_F(PrerenderTest, DoubleAddTest) { |
| + SetConcurrency(2); |
| + |
| + GURL url("http://www.google.com/"); |
| + DummyPrerenderContents* prerender_contents = |
| + prerender_manager()->CreateNextPrerenderContents( |
| + url, |
| + FINAL_STATUS_USED); |
| + EXPECT_TRUE(AddSimplePrerender(url)); |
| + EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
| + EXPECT_EQ(1u, CountAllLinkPrerenders()); |
| + |
| + GURL url2("http://www.notgoogle.com/"); |
| + prerender_link_manager()->OnAddPrerender(kDefaultChildId, |
| + last_prerender_id(), |
| + url, content::Referrer(), |
| + kSize, kDefaultRenderViewRouteId); |
| + // The second add had the same launcher and prerender_id as a running |
| + // prerender, so it should have done nothing. |
| + EXPECT_EQ(1u, CountAllLinkPrerenders()); |
| + ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| + EXPECT_TRUE(IsEmptyPrerenderLinkManager()); |
| +} |
| + |
| // Ensure that we expire a prerendered page after the max. permitted time. |
| TEST_F(PrerenderTest, ExpireTest) { |
| GURL url("http://www.google.com/"); |