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..6b345ada058f35a2a7ce2fda6435d77e6c733e14 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 CountFromPrerenderLinkManager() { |
|
mmenke
2013/02/14 16:38:36
This function name is wrong, since it only counts
gavinp
2013/02/14 16:43:51
Done.
|
| + return prerender_link_manager_->CountRunningPrerenders(); |
|
mmenke
2013/02/14 16:38:36
Is this right? What if we create a second prerend
gavinp
2013/02/14 16:43:51
Done.
|
| + } |
| + |
| int last_prerender_id() const { |
| return last_prerender_id_; |
| } |
| @@ -394,6 +398,31 @@ 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()); |
| + DCHECK_EQ(1u, CountFromPrerenderLinkManager()); |
| + |
| + 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. |
| + DCHECK_EQ(1u, CountFromPrerenderLinkManager()); |
| + ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url)); |
| +} |
| + |
| // Ensure that we expire a prerendered page after the max. permitted time. |
| TEST_F(PrerenderTest, ExpireTest) { |
| GURL url("http://www.google.com/"); |