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

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: rebase trunk & add upstream 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..f672f9e09f778c21cb4715d5df7632ee280ebcd7 100644
--- a/chrome/browser/prerender/prerender_unittest.cc
+++ b/chrome/browser/prerender/prerender_unittest.cc
@@ -649,13 +649,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->IsValid());
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->IsValid());
ASSERT_EQ(pending_prerender_contents,
prerender_manager()->FindAndUseEntry(pending_url));
}
@@ -686,14 +685,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->IsValid());
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());
}
TEST_F(PrerenderTest, CancelPendingPrerenderTest) {
@@ -716,13 +713,12 @@ 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->IsValid());
EXPECT_TRUE(prerender_contents->prerendering_has_started());
pending_prerender_handle->OnCancel();
- EXPECT_FALSE(pending_prerender_handle->IsValid());
+ EXPECT_FALSE(pending_prerender_handle->IsPrerendering());
ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
}
@@ -839,13 +835,18 @@ TEST_F(PrerenderTest, PPLTLateCancel) {
prerender_contents->Destroy(FINAL_STATUS_JAVASCRIPT_ALERT);
ASSERT_EQ(duplicate_prerender_contents, prerender_manager()->FindEntry(url));
+ // Surprisingly, OnCancelPrerender isn't expected to do anything because the
+ // PrerenderLinkManager has already removed this prerender.
prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
last_prerender_id());
+ ASSERT_EQ(duplicate_prerender_contents, prerender_manager()->FindEntry(url));
+
+ // But the PrerenderContents will exist, albiet with no handle.
+ duplicate_prerender_contents->Destroy(FINAL_STATUS_CANCELLED);
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));
- 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