Index: chrome/browser/prerender/prerender_tracker_unittest.cc |
diff --git a/chrome/browser/prerender/prerender_tracker_unittest.cc b/chrome/browser/prerender/prerender_tracker_unittest.cc |
index 0fd4b47e09c21e8d0a4d48545e6d9f60c1294e6b..03169a4fed249ae0f0e05f9406a3ee0103782216 100644 |
--- a/chrome/browser/prerender/prerender_tracker_unittest.cc |
+++ b/chrome/browser/prerender/prerender_tracker_unittest.cc |
@@ -3,9 +3,11 @@ |
// found in the LICENSE file. |
#include <set> |
+#include <utility> |
#include "base/logging.h" |
#include "base/message_loop.h" |
+#include "chrome/browser/prerender/prerender_contents.h" |
#include "chrome/browser/prerender/prerender_manager.h" |
#include "chrome/browser/prerender/prerender_tracker.h" |
#include "chrome/test/base/testing_browser_process.h" |
@@ -18,6 +20,35 @@ namespace prerender { |
namespace { |
+class TestPrerenderContents : public PrerenderContents { |
+ public: |
+ TestPrerenderContents(PrerenderManager* prerender_manager, |
+ int child_id, int route_id) |
+ : PrerenderContents(prerender_manager, NULL, GURL(), content::Referrer(), |
mmenke
2012/12/03 20:02:47
Suggest a comment that the NULL is the profile arg
gavinp
2012/12/04 18:04:48
Done, but I used a static_cast<> as the comment.
|
+ ORIGIN_NONE, PrerenderManager::kNoExperiment), |
+ child_id_(child_id), |
+ route_id_(route_id) { |
+ } |
+ |
+ ~TestPrerenderContents() { |
+ set_final_status(FINAL_STATUS_USED); |
+ } |
+ |
+ virtual bool GetChildId(int* child_id) const OVERRIDE { |
+ *child_id = child_id_; |
+ return true; |
+ } |
+ |
+ virtual bool GetRouteId(int* route_id) const OVERRIDE { |
+ *route_id = route_id_; |
+ return true; |
+ } |
+ |
+ private: |
+ int child_id_; |
+ int route_id_; |
+}; |
+ |
class TestPrerenderManager : public PrerenderManager { |
public: |
explicit TestPrerenderManager(PrerenderTracker* prerender_tracker) : |
@@ -82,6 +113,7 @@ class PrerenderTrackerTest : public testing::Test { |
// Check that a non-existant RenderView is handled correctly. |
TEST_F(PrerenderTrackerTest, PrerenderTrackerNull) { |
FinalStatus final_status; |
mmenke
2012/12/03 20:02:47
While you're here, could you move it to just above
gavinp
2012/12/04 18:04:48
Done.
|
+ TestPrerenderContents test_contents(prerender_manager(), 0, 0); |
EXPECT_FALSE(prerender_tracker()->TryUse(0, 0)); |
EXPECT_FALSE(prerender_tracker()->TryCancel(0, 0, FINAL_STATUS_HTTPS)); |
EXPECT_FALSE(prerender_tracker()->TryCancelOnIOThread( |
@@ -93,7 +125,9 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerNull) { |
// Check that a page that is used is handled correctly. |
TEST_F(PrerenderTrackerTest, PrerenderTrackerUsed) { |
- prerender_tracker()->OnPrerenderingStarted(0, 0, prerender_manager()); |
+ TestPrerenderContents test_contents(prerender_manager(), 0, 0); |
mmenke
2012/12/03 20:02:47
optional: Could just toss this in the test framew
gavinp
2012/12/04 18:04:48
Done. I also got rid of all the magic numbers, at
|
+ |
+ prerender_tracker()->OnPrerenderStart(&test_contents); |
EXPECT_EQ(FINAL_STATUS_MAX, GetCurrentStatus(0, 0)); |
// This calls AddPrerenderOnIOThreadTask(). |
@@ -123,7 +157,7 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerUsed) { |
EXPECT_EQ(FINAL_STATUS_USED, GetCurrentStatus(0, 0)); |
// This calls DestroyPrerenderForChildRouteIdPair(). |
- prerender_tracker()->OnPrerenderingFinished(0, 0); |
+ prerender_tracker()->OnPrerenderStop(&test_contents); |
EXPECT_TRUE(prerender_tracker()->IsPrerenderingOnIOThread(0, 0)); |
// This calls RemovePrerenderOnIOThreadTask(). |
@@ -138,7 +172,9 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerUsed) { |
// Check that a prerendered page cancelled by TryCancel() is handled correctly. |
TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelled) { |
- prerender_tracker()->OnPrerenderingStarted(0, 0, prerender_manager()); |
+ TestPrerenderContents test_contents(prerender_manager(), 0, 0); |
+ |
+ prerender_tracker()->OnPrerenderStart(&test_contents); |
EXPECT_EQ(FINAL_STATUS_MAX, GetCurrentStatus(0, 0)); |
// This calls AddPrerenderOnIOThreadTask(). |
@@ -163,7 +199,7 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelled) { |
0, 0, FINAL_STATUS_TIMED_OUT)); |
EXPECT_EQ(FINAL_STATUS_HTTPS, GetCurrentStatus(0, 0)); |
- prerender_tracker()->OnPrerenderingFinished(0, 0); |
+ prerender_tracker()->OnPrerenderStop(&test_contents); |
EXPECT_TRUE(prerender_tracker()->IsPrerenderingOnIOThread(0, 0)); |
// This calls RemovePrerenderOnIOThreadTask(). |
@@ -177,7 +213,9 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelled) { |
// Check that a prerendered page cancelled on the IO thread by |
// TryCancelOnIOThread() is handled correctly. |
TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelledOnIO) { |
- prerender_tracker()->OnPrerenderingStarted(0, 0, prerender_manager()); |
+ TestPrerenderContents test_contents(prerender_manager(), 0, 0); |
+ |
+ prerender_tracker()->OnPrerenderStart(&test_contents); |
EXPECT_EQ(FINAL_STATUS_MAX, GetCurrentStatus(0, 0)); |
// This calls AddPrerenderOnIOThreadTask(). |
@@ -203,7 +241,7 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelledOnIO) { |
0, 0, FINAL_STATUS_HTTPS)); |
EXPECT_EQ(FINAL_STATUS_TIMED_OUT, GetCurrentStatus(0, 0)); |
- prerender_tracker()->OnPrerenderingFinished(0, 0); |
+ prerender_tracker()->OnPrerenderStop(&test_contents); |
EXPECT_TRUE(prerender_tracker()->IsPrerenderingOnIOThread(0, 0)); |
// This calls RemovePrerenderOnIOThreadTask(). |
@@ -217,7 +255,10 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelledOnIO) { |
// Check that a prerendered page cancelled before it reaches the IO thread is |
// handled correctly. |
TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelledFast) { |
- prerender_tracker()->OnPrerenderingStarted(0, 0, prerender_manager()); |
+ TestPrerenderContents test_contents(prerender_manager(), 0, 0); |
+ |
+ prerender_tracker()->OnPrerenderStart(&test_contents); |
+ |
// Cancel the prerender. |
EXPECT_TRUE(prerender_tracker()->TryCancel(0, 0, FINAL_STATUS_HTTPS)); |
@@ -234,7 +275,7 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelledFast) { |
EXPECT_TRUE(prerender_tracker()->TryCancel(0, 0, FINAL_STATUS_TIMED_OUT)); |
EXPECT_EQ(FINAL_STATUS_HTTPS, GetCurrentStatus(0, 0)); |
- prerender_tracker()->OnPrerenderingFinished(0, 0); |
+ prerender_tracker()->OnPrerenderStop(&test_contents); |
// This calls RemovePrerenderOnIOThreadTask(). |
RunEvents(); |
@@ -246,7 +287,8 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerCancelledFast) { |
// Check that handling two pages at once works. |
TEST_F(PrerenderTrackerTest, PrerenderTrackerMultiple) { |
- prerender_tracker()->OnPrerenderingStarted(0, 0, prerender_manager()); |
+ TestPrerenderContents first_test_contents(prerender_manager(), 0, 0); |
+ prerender_tracker()->OnPrerenderStart(&first_test_contents); |
// This calls AddPrerenderOnIOThreadTask(). |
RunEvents(); |
@@ -256,7 +298,8 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerMultiple) { |
EXPECT_FALSE(prerender_tracker()->TryCancel(1, 2, FINAL_STATUS_HTTPS)); |
// Start second prerender. |
- prerender_tracker()->OnPrerenderingStarted(1, 2, prerender_manager()); |
+ TestPrerenderContents second_test_contents(prerender_manager(), 1, 2); |
+ prerender_tracker()->OnPrerenderStart(&second_test_contents); |
// This calls AddPrerenderOnIOThreadTask(). |
RunEvents(); |
@@ -281,8 +324,8 @@ TEST_F(PrerenderTrackerTest, PrerenderTrackerMultiple) { |
EXPECT_FALSE(prerender_manager()->WasPrerenderCancelled(0, 0)); |
EXPECT_TRUE(prerender_manager()->WasPrerenderCancelled(1, 2)); |
- prerender_tracker()->OnPrerenderingFinished(0, 0); |
- prerender_tracker()->OnPrerenderingFinished(1, 2); |
+ prerender_tracker()->OnPrerenderStop(&first_test_contents); |
+ prerender_tracker()->OnPrerenderStop(&second_test_contents); |
// This calls RemovePrerenderOnIOThreadTask(). |
RunEvents(); |