Index: chrome/browser/prerender/prerender_unittest.cc |
diff --git a/chrome/browser/prerender/prerender_unittest.cc b/chrome/browser/prerender/prerender_unittest.cc |
index 185aeb4049f00e66958724b56300b9bd65e1ec36..83998bc51e1335ff46150cc0b1c708373d8ef882 100644 |
--- a/chrome/browser/prerender/prerender_unittest.cc |
+++ b/chrome/browser/prerender/prerender_unittest.cc |
@@ -78,6 +78,8 @@ class DummyPrerenderContents : public PrerenderContents { |
class TestPrerenderManager : public PrerenderManager { |
public: |
+ using PrerenderManager::FindPrerender; |
+ |
explicit TestPrerenderManager(PrerenderTracker* prerender_tracker) |
: PrerenderManager(&profile_, prerender_tracker), |
time_(base::Time::Now()), |
@@ -92,6 +94,7 @@ class TestPrerenderManager : public PrerenderManager { |
next_prerender_contents_.release()->Destroy( |
FINAL_STATUS_MANAGER_SHUTDOWN); |
} |
+#if 0 |
// Set the final status for all PrerenderContents with an expected final |
// status of FINAL_STATUS_USED. These values are normally set when the |
// prerendered RVH is swapped into a tab, which doesn't happen in these |
@@ -101,6 +104,7 @@ class TestPrerenderManager : public PrerenderManager { |
it != used_prerender_contents_.end(); ++it) { |
(*it)->set_final_status(FINAL_STATUS_USED); |
} |
+#endif |
DoShutdown(); |
} |
@@ -159,6 +163,15 @@ class TestPrerenderManager : public PrerenderManager { |
return next_prerender_contents_.get(); |
} |
+ PrerenderContents* GetEntry(const GURL& url) { |
+ // We don't need a valid web_contents, but we do need it to be distinct |
+ // from the NULL value it was created with. |
+ static int an_integer; |
+ content::WebContents* not_really_web_contents = |
+ reinterpret_cast<content::WebContents*>(&an_integer); |
+ return ClaimPrerender(not_really_web_contents, url, NULL); |
+ } |
+ |
private: |
void SetNextPrerenderContents(DummyPrerenderContents* prerender_contents) { |
DCHECK(!next_prerender_contents_.get()); |
@@ -247,7 +260,7 @@ class PrerenderTest : public testing::Test { |
return ++last_prerender_id_; |
} |
- // Shorthand to add a simple preload with a reasonable source. |
+ // Shorthand to add a simple prerender with a reasonable source. |
bool AddSimplePrerender(const GURL& url) { |
return prerender_link_manager()->OnAddPrerender( |
kDefaultChildId, GetNextPrerenderID(), |
@@ -268,12 +281,6 @@ class PrerenderTest : public testing::Test { |
int last_prerender_id_; |
}; |
-TEST_F(PrerenderTest, EmptyTest) { |
- EXPECT_FALSE(prerender_manager()->MaybeUsePrerenderedPage( |
- NULL, |
- GURL("http://www.google.com/"))); |
-} |
- |
TEST_F(PrerenderTest, FoundTest) { |
GURL url("http://www.google.com/"); |
DummyPrerenderContents* prerender_contents = |
@@ -282,7 +289,7 @@ TEST_F(PrerenderTest, FoundTest) { |
FINAL_STATUS_USED); |
EXPECT_TRUE(AddSimplePrerender(url)); |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
} |
// Make sure that if queue a request, and a second prerender request for the |
@@ -489,12 +496,14 @@ TEST_F(PrerenderTest, PendingPrerenderTest) { |
GURL pending_url("http://news.google.com/"); |
- EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender( |
- child_id, route_id, |
- pending_url, Referrer(url, WebKit::WebReferrerPolicyDefault), |
- gfx::Size())); |
+ PrerenderHandle prerender = |
+ prerender_manager()->AddPrerenderFromLinkRelPrerender( |
+ child_id, route_id, |
+ pending_url, Referrer(url, WebKit::WebReferrerPolicyDefault), |
+ gfx::Size()); |
+ EXPECT_TRUE(prerender); |
- EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url)); |
+ EXPECT_TRUE(prerender->IsPending()); |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); |
} |
@@ -654,7 +663,7 @@ TEST_F(PrerenderTest, ClearTest) { |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS); |
DummyPrerenderContents* null = NULL; |
- EXPECT_EQ(null, prerender_manager()->FindEntry(url)); |
+ EXPECT_EQ(null, prerender_manager()->GetEntry(url)); |
} |
// Make sure canceling works as expected. |
@@ -667,33 +676,7 @@ TEST_F(PrerenderTest, CancelAllTest) { |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
prerender_manager()->CancelAllPrerenders(); |
const DummyPrerenderContents* null = NULL; |
- EXPECT_EQ(null, prerender_manager()->FindEntry(url)); |
-} |
- |
-// Make sure canceling for omnibox works as expected. |
-TEST_F(PrerenderTest, CancelOmniboxRemovesOmniboxTest) { |
- // Check canceling removes the Omnibox url. |
- GURL url("http://www.google.com/"); |
- DummyPrerenderContents* prerender_contents = |
- prerender_manager()->CreateNextPrerenderContents( |
- url, ORIGIN_OMNIBOX, FINAL_STATUS_CANCELLED); |
- EXPECT_TRUE(prerender_manager()->AddPrerenderFromOmnibox(url, NULL)); |
- EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
- prerender_manager()->CancelOmniboxPrerenders(); |
- const DummyPrerenderContents* null = NULL; |
- EXPECT_EQ(null, prerender_manager()->FindEntry(url)); |
-} |
- |
-TEST_F(PrerenderTest, CancelOmniboxDoesNotRemoveLinkTest) { |
- GURL url("http://www.google.com/"); |
- DummyPrerenderContents* prerender_contents = |
- prerender_manager()->CreateNextPrerenderContents( |
- url, ORIGIN_LINK_REL_PRERENDER, FINAL_STATUS_MANAGER_SHUTDOWN); |
- EXPECT_TRUE(AddSimplePrerender(url)); |
- EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
- prerender_manager()->CancelOmniboxPrerenders(); |
- const DummyPrerenderContents* null = NULL; |
- EXPECT_NE(null, prerender_manager()->FindEntry(url)); |
+ EXPECT_EQ(null, prerender_manager()->GetEntry(url)); |
} |
TEST_F(PrerenderTest, OmniboxNotAllowedWhenDisabled) { |
@@ -719,7 +702,7 @@ TEST_F(PrerenderTest, LinkManagerCancel) { |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
EXPECT_FALSE(IsEmptyPrerenderLinkManager()); |
prerender_link_manager()->OnCancelPrerender(kDefaultChildId, |
last_prerender_id()); |
@@ -741,7 +724,7 @@ TEST_F(PrerenderTest, LinkManagerCancelThenAbandon) { |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
EXPECT_FALSE(IsEmptyPrerenderLinkManager()); |
prerender_link_manager()->OnCancelPrerender(kDefaultChildId, |
last_prerender_id()); |
@@ -770,7 +753,7 @@ TEST_F(PrerenderTest, LinkManagerAbandon) { |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
EXPECT_FALSE(IsEmptyPrerenderLinkManager()); |
prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, |
last_prerender_id()); |
@@ -790,7 +773,7 @@ TEST_F(PrerenderTest, LinkManagerCancelTwice) { |
EXPECT_TRUE(AddSimplePrerender(url)); |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_link_manager()->OnCancelPrerender(kDefaultChildId, |
last_prerender_id()); |
@@ -814,18 +797,18 @@ TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwice) { |
const int first_prerender_id = last_prerender_id(); |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
EXPECT_TRUE(AddSimplePrerender(url)); |
const int second_prerender_id = last_prerender_id(); |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_link_manager()->OnCancelPrerender(kDefaultChildId, |
first_prerender_id); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_link_manager()->OnCancelPrerender(kDefaultChildId, |
second_prerender_id); |
@@ -847,18 +830,18 @@ TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwiceThenAbandonTwice) { |
const int first_prerender_id = last_prerender_id(); |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
EXPECT_TRUE(AddSimplePrerender(url)); |
const int second_prerender_id = last_prerender_id(); |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_link_manager()->OnCancelPrerender(kDefaultChildId, |
first_prerender_id); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_link_manager()->OnCancelPrerender(kDefaultChildId, |
second_prerender_id); |
@@ -892,18 +875,18 @@ TEST_F(PrerenderTest, LinkManagerAddTwiceAbandonTwice) { |
const int first_prerender_id = last_prerender_id(); |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
EXPECT_TRUE(AddSimplePrerender(url)); |
const int second_prerender_id = last_prerender_id(); |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, |
first_prerender_id); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, |
second_prerender_id); |
@@ -927,7 +910,7 @@ TEST_F(PrerenderTest, LinkManagerExpireThenCancel) { |
EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() + |
base::TimeDelta::FromSeconds(1)); |
@@ -950,7 +933,7 @@ TEST_F(PrerenderTest, LinkManagerExpireThenAddAgain) { |
EXPECT_TRUE(AddSimplePrerender(url)); |
EXPECT_TRUE(first_prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(first_prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(first_prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() + |
base::TimeDelta::FromSeconds(1)); |
DummyPrerenderContents* null = NULL; |
@@ -975,7 +958,7 @@ TEST_F(PrerenderTest, LinkManagerCancelThenAddAgain) { |
EXPECT_TRUE(AddSimplePrerender(url)); |
EXPECT_TRUE(first_prerender_contents->prerendering_has_started()); |
EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled()); |
- ASSERT_EQ(first_prerender_contents, prerender_manager()->FindEntry(url)); |
+ ASSERT_EQ(first_prerender_contents, prerender_manager()->FindPrerender(url)); |
prerender_link_manager()->OnCancelPrerender(kDefaultChildId, |
last_prerender_id()); |
EXPECT_TRUE(IsEmptyPrerenderLinkManager()); |