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

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: another remediation 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..4ffb47a9df921a0af120fa4250bb7f92987dda03 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,13 +711,11 @@ 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());
+ pending_prerender_handle.reset();
ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
}
@@ -793,6 +786,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 +794,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 +835,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");
@@ -966,8 +963,6 @@ TEST_F(PrerenderTest, LinkManagerCancelThenAbandon) {
ASSERT_EQ(null, prerender_manager()->FindEntry(url));
}
-// TODO(gavinp): Re-enabmed this test after abandon has an effect on Prerenders,
-// like shortening the timeouts.
TEST_F(PrerenderTest, LinkManagerAbandon) {
EXPECT_TRUE(IsEmptyPrerenderLinkManager());
GURL url("http://www.myexample.com");
@@ -986,7 +981,33 @@ TEST_F(PrerenderTest, LinkManagerAbandon) {
EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
+}
+
+TEST_F(PrerenderTest, LinkManagerAbandonThenCancel) {
+ EXPECT_TRUE(IsEmptyPrerenderLinkManager());
+ GURL url("http://www.myexample.com");
+ DummyPrerenderContents* prerender_contents =
+ prerender_manager()->CreateNextPrerenderContents(
+ url, FINAL_STATUS_CANCELLED);
+
+ 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));
+ EXPECT_FALSE(IsEmptyPrerenderLinkManager());
+ prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
+ last_prerender_id());
+
+ EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
+ ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
+
+ prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
+ last_prerender_id());
EXPECT_TRUE(IsEmptyPrerenderLinkManager());
+ EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
+ DummyPrerenderContents* null = NULL;
+ ASSERT_EQ(null, prerender_manager()->FindEntry(url));
}
TEST_F(PrerenderTest, LinkManagerCancelTwice) {
@@ -1116,7 +1137,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 +1192,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 +1217,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