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

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

Issue 132613002: Remove PrerenderTracker::TryCancel* methods and associated ones, since destruction of prerender onl… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: add unittest per mmenke Created 6 years, 11 months 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
« no previous file with comments | « chrome/browser/prerender/prerender_tracker.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_tracker_unittest.cc
===================================================================
--- chrome/browser/prerender/prerender_tracker_unittest.cc (revision 244175)
+++ chrome/browser/prerender/prerender_tracker_unittest.cc (working copy)
@@ -87,24 +87,11 @@
mutable_config().rate_limit_enabled = false;
}
- virtual void DestroyPrerenderForRenderView(
- int process_id, int view_id, FinalStatus final_status) OVERRIDE {
- cancelled_id_pairs_.insert(std::make_pair(process_id, view_id));
- }
-
// We never allocate our PrerenderContents in PrerenderManager, so we don't
// ever want the default pending delete behaviour.
virtual void MoveEntryToPendingDelete(PrerenderContents* entry,
FinalStatus final_status) OVERRIDE {
}
-
- bool WasPrerenderCancelled(int child_id, int route_id) {
- std::pair<int, int> child_route_id_pair(child_id, route_id);
- return cancelled_id_pairs_.count(child_route_id_pair) != 0;
- }
-
- // Set of all the RenderViews that have been cancelled.
- std::set<std::pair<int, int> > cancelled_id_pairs_;
};
class DeferredRedirectDelegate : public net::URLRequest::Delegate,
@@ -212,15 +199,6 @@
return &test_contents_;
}
- int GetCurrentStatus(int child_id, int route_id) {
- FinalStatus final_status;
- if (!prerender_tracker()->GetFinalStatus(child_id, route_id,
- &final_status)) {
- return -1;
- }
- return final_status;
- }
-
// Runs any tasks queued on either thread.
void RunEvents() {
message_loop_.RunUntilIdle();
@@ -235,287 +213,23 @@
TestPrerenderContents test_contents_;
};
-// Check that a non-existant RenderView is handled correctly.
-TEST_F(PrerenderTrackerTest, PrerenderTrackerNull) {
- EXPECT_FALSE(prerender_tracker()->TryUse(kDefaultChildId, kDefaultRouteId));
- EXPECT_FALSE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
- EXPECT_FALSE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
+TEST_F(PrerenderTrackerTest, IsPrerenderingOnIOThread) {
EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
- FinalStatus final_status;
- EXPECT_FALSE(prerender_tracker()->GetFinalStatus(
- kDefaultChildId, kDefaultRouteId, &final_status));
- EXPECT_FALSE(prerender_manager()->WasPrerenderCancelled(
- kDefaultChildId, kDefaultRouteId));
-}
+ kDefaultChildId, kDefaultRouteId));
-// Check that a page that is used is handled correctly.
-TEST_F(PrerenderTrackerTest, PrerenderTrackerUsed) {
test_contents()->Start();
-
- EXPECT_EQ(FINAL_STATUS_MAX,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
-
// This calls AddPrerenderOnIOThreadTask().
RunEvents();
-
EXPECT_TRUE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
- EXPECT_EQ(FINAL_STATUS_MAX,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
+ kDefaultChildId, kDefaultRouteId));
- // Display the prerendered RenderView.
- EXPECT_TRUE(prerender_tracker()->TryUse(kDefaultChildId, kDefaultRouteId));
-
- // Make sure the page can't be destroyed or claim it was destroyed after
- // it's been used.
- EXPECT_FALSE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
- EXPECT_FALSE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
- EXPECT_EQ(FINAL_STATUS_USED,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
-
- // This would call DestroyPrerenderForChildRouteIdPair(), if the prerender
- // were cancelled.
- RunEvents();
-
- // These functions should all behave as before.
- EXPECT_FALSE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
- EXPECT_FALSE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
- EXPECT_EQ(FINAL_STATUS_USED, GetCurrentStatus(
- kDefaultChildId, kDefaultRouteId));
-
- // This calls DestroyPrerenderForChildRouteIdPair().
- test_contents()->Use();
- EXPECT_TRUE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
-
- // This calls RemovePrerenderOnIOThreadTask().
- RunEvents();
-
- FinalStatus final_status;
- EXPECT_FALSE(prerender_tracker()->GetFinalStatus(
- kDefaultChildId, kDefaultRouteId, &final_status));
- EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
- EXPECT_FALSE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
- EXPECT_FALSE(prerender_manager()->WasPrerenderCancelled(
- kDefaultChildId, kDefaultRouteId));
-}
-
-// Check that a prerendered page cancelled by TryCancel() is handled correctly.
-TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelled) {
- test_contents()->Start();
- EXPECT_EQ(FINAL_STATUS_MAX,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
-
- // This calls AddPrerenderOnIOThreadTask().
- RunEvents();
-
- // Cancel the prerender.
- EXPECT_TRUE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
-
- EXPECT_FALSE(prerender_tracker()->TryUse(kDefaultChildId, kDefaultRouteId));
- EXPECT_TRUE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
- EXPECT_TRUE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
- EXPECT_EQ(FINAL_STATUS_CANCELLED,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
-
- // This calls DestroyPrerenderForChildRouteIdPair().
- RunEvents();
- EXPECT_TRUE(prerender_manager()->WasPrerenderCancelled(
- kDefaultChildId, kDefaultRouteId));
-
- // These should all work until the prerendering RenderViewHost is destroyed.
- EXPECT_TRUE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
- EXPECT_TRUE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
- EXPECT_EQ(FINAL_STATUS_CANCELLED,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
-
test_contents()->Cancel();
- EXPECT_TRUE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
-
// This calls RemovePrerenderOnIOThreadTask().
RunEvents();
-
- FinalStatus final_status;
- EXPECT_FALSE(prerender_tracker()->GetFinalStatus(
- kDefaultChildId, kDefaultRouteId, &final_status));
EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
+ kDefaultChildId, kDefaultRouteId));
}
-// Check that a prerendered page cancelled on the IO thread by
-// TryCancelOnIOThread() is handled correctly.
-TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelledOnIO) {
- test_contents()->Start();
- EXPECT_EQ(FINAL_STATUS_MAX,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
-
- // This calls AddPrerenderOnIOThreadTask().
- RunEvents();
-
- // Cancel the prerender.
- EXPECT_TRUE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
-
- EXPECT_FALSE(prerender_tracker()->TryUse(kDefaultChildId, kDefaultRouteId));
- EXPECT_TRUE(prerender_tracker()->TryCancel(kDefaultChildId, kDefaultRouteId,
- FINAL_STATUS_CANCELLED));
- EXPECT_TRUE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
- EXPECT_EQ(FINAL_STATUS_TIMED_OUT,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
-
- // This calls DestroyPrerenderForChildRouteIdPair().
- RunEvents();
- EXPECT_TRUE(prerender_manager()->WasPrerenderCancelled(
- kDefaultChildId, kDefaultRouteId));
-
- // These should all work until the prerendering RenderViewHost is destroyed.
- EXPECT_TRUE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
- EXPECT_TRUE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
- EXPECT_EQ(FINAL_STATUS_TIMED_OUT,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
-
- test_contents()->Cancel();
- EXPECT_TRUE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
-
- // This calls RemovePrerenderOnIOThreadTask().
- RunEvents();
-
- FinalStatus final_status;
- EXPECT_FALSE(prerender_tracker()->GetFinalStatus(
- kDefaultChildId, kDefaultRouteId, &final_status));
- EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
-}
-
-// Check that a prerendered page cancelled before it reaches the IO thread is
-// handled correctly.
-TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelledFast) {
- test_contents()->Start();
-
- // Cancel the prerender.
- EXPECT_TRUE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
-
- EXPECT_FALSE(prerender_tracker()->TryUse(kDefaultChildId, kDefaultRouteId));
- EXPECT_TRUE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
-
- // This calls AddPrerenderOnIOThreadTask() and
- // DestroyPrerenderForChildRouteIdPair().
- RunEvents();
- EXPECT_TRUE(prerender_manager()->WasPrerenderCancelled(
- kDefaultChildId, kDefaultRouteId));
-
- EXPECT_TRUE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
- EXPECT_TRUE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_TIMED_OUT));
- EXPECT_EQ(FINAL_STATUS_CANCELLED, GetCurrentStatus(
- kDefaultChildId, kDefaultRouteId));
-
- test_contents()->Cancel();
-
- // This calls RemovePrerenderOnIOThreadTask().
- RunEvents();
-
- FinalStatus final_status;
- EXPECT_FALSE(prerender_tracker()->GetFinalStatus(
- kDefaultChildId, kDefaultRouteId, &final_status));
- EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
-}
-
-// Check that handling two pages at once works.
-TEST_F(PrerenderTrackerTest, PrerenderTrackerMultiple) {
- test_contents()->Start();
-
- // This calls AddPrerenderOnIOThreadTask().
- RunEvents();
- EXPECT_TRUE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
- EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId + 1, kDefaultRouteId + 1));
- EXPECT_FALSE(prerender_tracker()->TryUse(
- kDefaultChildId + 1, kDefaultRouteId + 1));
- EXPECT_FALSE(prerender_tracker()->TryCancel(
- kDefaultChildId + 1, kDefaultRouteId + 1, FINAL_STATUS_CANCELLED));
-
- // Start second prerender.
- TestPrerenderContents second_test_contents(prerender_manager(),
- kDefaultChildId + 1,
- kDefaultRouteId + 1);
-
- second_test_contents.Start();
- // This calls AddPrerenderOnIOThreadTask().
- RunEvents();
-
- // Use (kDefaultChildId, kDefaultRouteId).
- EXPECT_TRUE(prerender_tracker()->TryUse(kDefaultChildId, kDefaultRouteId));
- EXPECT_EQ(FINAL_STATUS_USED, GetCurrentStatus(
- kDefaultChildId, kDefaultRouteId));
- EXPECT_EQ(FINAL_STATUS_MAX,
- GetCurrentStatus(kDefaultChildId + 1, kDefaultRouteId + 1));
-
- // Cancel (kDefaultChildId + 1, kDefaultRouteId + 1).
- EXPECT_TRUE(prerender_tracker()->TryCancelOnIOThread(
- kDefaultChildId + 1, kDefaultRouteId + 1, FINAL_STATUS_CANCELLED));
-
- EXPECT_FALSE(prerender_tracker()->TryCancel(
- kDefaultChildId, kDefaultRouteId, FINAL_STATUS_CANCELLED));
- EXPECT_EQ(FINAL_STATUS_USED,
- GetCurrentStatus(kDefaultChildId, kDefaultRouteId));
-
- EXPECT_FALSE(prerender_tracker()->TryUse(
- kDefaultChildId + 1, kDefaultRouteId + 1));
- EXPECT_TRUE(prerender_tracker()->TryCancel(
- kDefaultChildId + 1, kDefaultRouteId + 1, FINAL_STATUS_CANCELLED));
- EXPECT_EQ(FINAL_STATUS_CANCELLED,
- GetCurrentStatus(kDefaultChildId + 1, kDefaultRouteId + 1));
-
- // This calls DestroyPrerenderForChildRouteIdPair().
- RunEvents();
- EXPECT_FALSE(prerender_manager()->WasPrerenderCancelled(kDefaultChildId,
- kDefaultRouteId));
- EXPECT_TRUE(prerender_manager()->WasPrerenderCancelled(kDefaultChildId + 1,
- kDefaultRouteId + 1));
-
- test_contents()->Cancel();
- second_test_contents.Cancel();
-
- // This calls RemovePrerenderOnIOThreadTask().
- RunEvents();
-
- FinalStatus final_status;
- EXPECT_FALSE(prerender_tracker()->GetFinalStatus(
- kDefaultChildId, kDefaultRouteId, &final_status));
- EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId, kDefaultRouteId));
-
- EXPECT_FALSE(prerender_tracker()->GetFinalStatus(
- kDefaultChildId + 1, kDefaultRouteId + 1, &final_status));
- EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(
- kDefaultChildId + 1, kDefaultRouteId + 1));
-}
-
// Checks that deferred redirects are throttled and resumed correctly.
TEST_F(PrerenderTrackerTest, PrerenderThrottledRedirectResume) {
const base::FilePath::CharType kRedirectPath[] =
« no previous file with comments | « chrome/browser/prerender/prerender_tracker.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698