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

Side by Side Diff: chrome/browser/prerender/prerender_tracker_unittest.cc

Issue 6966017: Remove a chrome dependency by removing Prerender from ResourceDispatcherHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Another round of comments Created 9 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <set> 5 #include <set>
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/prerender/prerender_manager.h" 8 #include "chrome/browser/prerender/prerender_manager.h"
9 #include "chrome/browser/prerender/prerender_tracker.h" 9 #include "chrome/browser/prerender/prerender_tracker.h"
10 #include "chrome/test/testing_browser_process.h"
10 #include "content/browser/browser_thread.h" 11 #include "content/browser/browser_thread.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 13
13 namespace prerender { 14 namespace prerender {
14 15
15 namespace { 16 namespace {
16 17
17 class TestPrerenderManager : public PrerenderManager { 18 class TestPrerenderManager : public PrerenderManager {
18 public: 19 public:
19 TestPrerenderManager() : PrerenderManager(NULL) { 20 explicit TestPrerenderManager(PrerenderTracker* prerender_tracker) :
21 PrerenderManager(NULL, prerender_tracker) {
20 rate_limit_enabled_ = false; 22 rate_limit_enabled_ = false;
21 } 23 }
22 24
23 virtual void DestroyPreloadForChildRouteIdPair( 25 virtual void DestroyPreloadForChildRouteIdPair(
24 const std::pair<int, int>& child_route_id_pair, 26 const std::pair<int, int>& child_route_id_pair,
25 FinalStatus final_status) OVERRIDE { 27 FinalStatus final_status) OVERRIDE {
26 cancelled_id_pairs_.insert(child_route_id_pair); 28 cancelled_id_pairs_.insert(child_route_id_pair);
27 } 29 }
28 30
29 bool WasPrerenderCancelled(int child_id, int route_id) { 31 bool WasPrerenderCancelled(int child_id, int route_id) {
30 std::pair<int, int> child_route_id_pair(child_id, route_id); 32 std::pair<int, int> child_route_id_pair(child_id, route_id);
31 return cancelled_id_pairs_.count(child_route_id_pair) != 0; 33 return cancelled_id_pairs_.count(child_route_id_pair) != 0;
32 } 34 }
33 35
34 // Set of all the RenderViews that have been cancelled. 36 // Set of all the RenderViews that have been cancelled.
35 std::set<std::pair<int, int> > cancelled_id_pairs_; 37 std::set<std::pair<int, int> > cancelled_id_pairs_;
36 }; 38 };
37 39
38 } // namespace 40 } // namespace
39 41
40 class PrerenderTrackerTest : public testing::Test { 42 class PrerenderTrackerTest : public testing::Test {
41 public: 43 public:
42 PrerenderTrackerTest() : 44 PrerenderTrackerTest() :
43 ui_thread_(BrowserThread::UI, &message_loop_), 45 ui_thread_(BrowserThread::UI, &message_loop_),
44 io_thread_(BrowserThread::IO, &message_loop_), 46 io_thread_(BrowserThread::IO, &message_loop_),
45 prerender_manager_(new TestPrerenderManager()) { 47 prerender_manager_(new TestPrerenderManager(prerender_tracker())) {
46 } 48 }
47 49
48 TestPrerenderManager* prerender_manager() { 50 TestPrerenderManager* prerender_manager() {
49 return prerender_manager_.get(); 51 return prerender_manager_.get();
50 } 52 }
51 53
52 PrerenderTracker* prerender_tracker() { 54 PrerenderTracker* prerender_tracker() {
53 return PrerenderTracker::GetInstance(); 55 return browser_process_.get()->prerender_tracker();
54 } 56 }
55 57
56 int GetCurrentStatus(int child_id, int route_id) { 58 int GetCurrentStatus(int child_id, int route_id) {
57 FinalStatus final_status; 59 FinalStatus final_status;
58 if (!prerender_tracker()->GetFinalStatus(child_id, route_id, 60 if (!prerender_tracker()->GetFinalStatus(child_id, route_id,
59 &final_status)) { 61 &final_status)) {
60 return -1; 62 return -1;
61 } 63 }
62 return final_status; 64 return final_status;
63 } 65 }
64 66
65 // Runs any tasks queued on either thread. 67 // Runs any tasks queued on either thread.
66 void RunEvents() { 68 void RunEvents() {
67 message_loop_.RunAllPending(); 69 message_loop_.RunAllPending();
68 } 70 }
69 71
70 private: 72 private:
73 ScopedTestingBrowserProcess browser_process_;
71 MessageLoop message_loop_; 74 MessageLoop message_loop_;
72 BrowserThread ui_thread_; 75 BrowserThread ui_thread_;
73 BrowserThread io_thread_; 76 BrowserThread io_thread_;
74 77
75 scoped_ptr<TestPrerenderManager> prerender_manager_; 78 scoped_ptr<TestPrerenderManager> prerender_manager_;
76 }; 79 };
77 80
78 // Check that a non-existant RenderView is handled correctly. 81 // Check that a non-existant RenderView is handled correctly.
79 TEST_F(PrerenderTrackerTest, PrerenderTrackerNull) { 82 TEST_F(PrerenderTrackerTest, PrerenderTrackerNull) {
80 FinalStatus final_status; 83 FinalStatus final_status;
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 288
286 FinalStatus final_status; 289 FinalStatus final_status;
287 EXPECT_FALSE(prerender_tracker()->GetFinalStatus(0, 0, &final_status)); 290 EXPECT_FALSE(prerender_tracker()->GetFinalStatus(0, 0, &final_status));
288 EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(0, 0)); 291 EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(0, 0));
289 292
290 EXPECT_FALSE(prerender_tracker()->GetFinalStatus(1, 2, &final_status)); 293 EXPECT_FALSE(prerender_tracker()->GetFinalStatus(1, 2, &final_status));
291 EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(1, 2)); 294 EXPECT_FALSE(prerender_tracker()->IsPrerenderingOnIOThread(1, 2));
292 } 295 }
293 296
294 } // namespace prerender 297 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698