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

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

Issue 11316311: Make PrerenderHandle an observer of PrerenderContents. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: signal stop on match complete Created 8 years 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
Index: chrome/browser/prerender/prerender_unittest.cc
diff --git a/chrome/browser/prerender/prerender_unittest.cc b/chrome/browser/prerender/prerender_unittest.cc
index 27fa12a775ce55fbba447f53e8fd171c6718922c..47c05a561a351bf09fc4c45e3004914c73fd3555 100644
--- a/chrome/browser/prerender/prerender_unittest.cc
+++ b/chrome/browser/prerender/prerender_unittest.cc
@@ -135,7 +135,7 @@ class UnitTestPrerenderManager : public PrerenderManager {
active_prerenders_.erase(to_erase);
prerender_contents->SetFinalStatus(FINAL_STATUS_USED);
- prerender_contents->StartPendingPrerenders();
+ prerender_contents->PrepareForUse();
return prerender_contents;
}
@@ -362,12 +362,10 @@ TEST_F(PrerenderTest, DuplicateTest) {
kDefaultChildId, kDefaultRenderViewRouteId, url,
Referrer(url, WebKit::WebReferrerPolicyDefault), kSize));
- EXPECT_TRUE(duplicate_prerender_handle->IsValid());
EXPECT_TRUE(duplicate_prerender_handle->IsPrerendering());
ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
- EXPECT_FALSE(duplicate_prerender_handle->IsValid());
EXPECT_FALSE(duplicate_prerender_handle->IsPrerendering());
}
@@ -649,13 +647,12 @@ TEST_F(PrerenderTest, PendingPrerenderTest) {
child_id, route_id, pending_url,
Referrer(url, WebKit::WebReferrerPolicyDefault), kSize));
CHECK(pending_prerender_handle.get());
- EXPECT_TRUE(pending_prerender_handle->IsValid());
- EXPECT_TRUE(pending_prerender_handle->IsPending());
+ EXPECT_FALSE(pending_prerender_handle->IsPrerendering());
EXPECT_TRUE(prerender_contents->prerendering_has_started());
ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
- EXPECT_FALSE(pending_prerender_handle->IsPending());
+ EXPECT_TRUE(pending_prerender_handle->IsPrerendering());
ASSERT_EQ(pending_prerender_contents,
prerender_manager()->FindAndUseEntry(pending_url));
}
@@ -686,14 +683,12 @@ TEST_F(PrerenderTest, InvalidPendingPrerenderTest) {
child_id, route_id, pending_url,
Referrer(url, WebKit::WebReferrerPolicyDefault), kSize));
DCHECK(pending_prerender_handle.get());
- EXPECT_TRUE(pending_prerender_handle->IsValid());
- EXPECT_TRUE(pending_prerender_handle->IsPending());
+ EXPECT_FALSE(pending_prerender_handle->IsPrerendering());
EXPECT_TRUE(prerender_contents->prerendering_has_started());
ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
- EXPECT_FALSE(pending_prerender_handle->IsValid());
- EXPECT_FALSE(pending_prerender_handle->IsPending());
+ EXPECT_FALSE(pending_prerender_handle->IsPrerendering());
}
TEST_F(PrerenderTest, CancelPendingPrerenderTest) {
@@ -716,15 +711,17 @@ TEST_F(PrerenderTest, CancelPendingPrerenderTest) {
child_id, route_id, pending_url,
Referrer(url, WebKit::WebReferrerPolicyDefault), kSize));
CHECK(pending_prerender_handle.get());
- EXPECT_TRUE(pending_prerender_handle->IsValid());
- EXPECT_TRUE(pending_prerender_handle->IsPending());
+ EXPECT_FALSE(pending_prerender_handle->IsPrerendering());
EXPECT_TRUE(prerender_contents->prerendering_has_started());
- pending_prerender_handle->OnCancel();
- EXPECT_FALSE(pending_prerender_handle->IsValid());
+ EXPECT_FALSE(pending_prerender_handle->IsPrerendering());
mmenke 2012/12/13 18:27:16 nit: No need to check this twice (Though suppose
gavinp 2012/12/13 20:45:34 Done.
+ pending_prerender_handle.reset();
ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
+ // We succeed if we don't crash here; if the pending prerender wasn't canceled
+ // then CreateNextPrerenderContents will fail an assertion.
+ SUCCEED();
mmenke 2012/12/13 18:27:16 I'm not following this.
gavinp 2012/12/13 20:45:34 Done.
}
// Tests that a PrerenderManager created for a browser session in the control
@@ -793,6 +790,7 @@ TEST_F(PrerenderTest, PPLTDummy) {
url, FINAL_STATUS_UNSUPPORTED_SCHEME);
EXPECT_TRUE(AddSimplePrerender(url));
EXPECT_TRUE(prerender_contents->prerendering_has_started());
+ EXPECT_FALSE(IsEmptyPrerenderLinkManager());
DummyPrerenderContents* pplt_dummy_contents =
prerender_manager()->CreateNextPrerenderContents(url,
@@ -800,8 +798,10 @@ TEST_F(PrerenderTest, PPLTDummy) {
GURL ftp_url("ftp://ftp.google.com/");
// Adding this ftp URL will force the expected unsupported scheme error.
prerender_contents->AddAliasURL(ftp_url);
+ EXPECT_FALSE(IsEmptyPrerenderLinkManager());
ASSERT_EQ(pplt_dummy_contents, prerender_manager()->FindAndUseEntry(url));
+ EXPECT_TRUE(IsEmptyPrerenderLinkManager());
}
// Tests that our PPLT dummy prerender gets created properly, even
@@ -839,13 +839,14 @@ TEST_F(PrerenderTest, PPLTLateCancel) {
prerender_contents->Destroy(FINAL_STATUS_JAVASCRIPT_ALERT);
ASSERT_EQ(duplicate_prerender_contents, prerender_manager()->FindEntry(url));
+ // Make sure that events on prerender handles propogate to the match
+ // complete replacement.
+ DummyPrerenderContents* null = NULL;
prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
last_prerender_id());
- DummyPrerenderContents* null = NULL;
ASSERT_EQ(null, prerender_manager()->FindEntry(url));
}
-
// Tests that the prerender manager matches include the fragment.
TEST_F(PrerenderTest, FragmentMatchesTest) {
GURL fragment_url("http://www.google.com/#test");
@@ -986,7 +987,6 @@ TEST_F(PrerenderTest, LinkManagerAbandon) {
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
mmenke 2012/12/13 18:27:16 I don't think we have a test with a cancel after a
gavinp 2012/12/13 20:45:34 The abandon tests do try and use the prerender. I
- EXPECT_TRUE(IsEmptyPrerenderLinkManager());
}
TEST_F(PrerenderTest, LinkManagerCancelTwice) {
@@ -1116,7 +1116,6 @@ TEST_F(PrerenderTest, LinkManagerAddTwiceAbandonTwice) {
prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
second_prerender_id);
- EXPECT_TRUE(IsEmptyPrerenderLinkManager());
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
}
@@ -1172,9 +1171,6 @@ TEST_F(PrerenderTest, LinkManagerExpireThenAddAgain) {
EXPECT_TRUE(second_prerender_contents->prerendering_has_started());
ASSERT_EQ(second_prerender_contents,
prerender_manager()->FindAndUseEntry(url));
- // The PrerenderLinkManager is not empty since we never removed the first
- // prerender.
- EXPECT_FALSE(IsEmptyPrerenderLinkManager());
}
TEST_F(PrerenderTest, LinkManagerCancelThenAddAgain) {
@@ -1200,7 +1196,6 @@ TEST_F(PrerenderTest, LinkManagerCancelThenAddAgain) {
EXPECT_TRUE(second_prerender_contents->prerendering_has_started());
ASSERT_EQ(second_prerender_contents,
prerender_manager()->FindAndUseEntry(url));
- EXPECT_FALSE(IsEmptyPrerenderLinkManager());
}
} // namespace prerender

Powered by Google App Engine
This is Rietveld 408576698