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

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

Issue 11348357: Add observer interface to PrerenderContents. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remediate to review 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/memory/scoped_vector.h" 6 #include "base/memory/scoped_vector.h"
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "chrome/browser/prerender/prerender_contents.h" 10 #include "chrome/browser/prerender/prerender_contents.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 bool is_control_group) OVERRIDE; 52 bool is_control_group) OVERRIDE;
53 53
54 virtual bool GetChildId(int* child_id) const OVERRIDE { 54 virtual bool GetChildId(int* child_id) const OVERRIDE {
55 // Having a default child_id of -1 forces pending prerenders not to fail 55 // Having a default child_id of -1 forces pending prerenders not to fail
56 // on session storage and cross domain checking. 56 // on session storage and cross domain checking.
57 *child_id = -1; 57 *child_id = -1;
58 return true; 58 return true;
59 } 59 }
60 60
61 virtual bool GetRouteId(int* route_id) const OVERRIDE { 61 virtual bool GetRouteId(int* route_id) const OVERRIDE {
62 *route_id = 0; 62 *route_id = route_id_;
63 return true; 63 return true;
64 } 64 }
65 65
66 FinalStatus expected_final_status() const { return expected_final_status_; } 66 FinalStatus expected_final_status() const { return expected_final_status_; }
67 67
68 bool prerendering_has_been_cancelled() const { 68 bool prerendering_has_been_cancelled() const {
69 return PrerenderContents::prerendering_has_been_cancelled(); 69 return PrerenderContents::prerendering_has_been_cancelled();
70 } 70 }
71 71
72 private: 72 private:
73 static int g_next_route_id_;
74 int route_id_;
75
73 UnitTestPrerenderManager* test_prerender_manager_; 76 UnitTestPrerenderManager* test_prerender_manager_;
74 FinalStatus expected_final_status_; 77 FinalStatus expected_final_status_;
75 }; 78 };
76 79
80 int DummyPrerenderContents::g_next_route_id_ = 0;
81
77 const gfx::Size kSize(640, 480); 82 const gfx::Size kSize(640, 480);
78 83
79 } // namespace 84 } // namespace
80 85
81 class UnitTestPrerenderManager : public PrerenderManager { 86 class UnitTestPrerenderManager : public PrerenderManager {
82 public: 87 public:
83 using PrerenderManager::kMinTimeBetweenPrerendersMs; 88 using PrerenderManager::kMinTimeBetweenPrerendersMs;
84 using PrerenderManager::kNavigationRecordWindowMs; 89 using PrerenderManager::kNavigationRecordWindowMs;
85 90
86 explicit UnitTestPrerenderManager(Profile* profile, 91 explicit UnitTestPrerenderManager(Profile* profile,
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 private: 242 private:
238 PrerenderManager::PrerenderManagerMode prev_mode_; 243 PrerenderManager::PrerenderManagerMode prev_mode_;
239 }; 244 };
240 245
241 DummyPrerenderContents::DummyPrerenderContents( 246 DummyPrerenderContents::DummyPrerenderContents(
242 UnitTestPrerenderManager* test_prerender_manager, 247 UnitTestPrerenderManager* test_prerender_manager,
243 PrerenderTracker* prerender_tracker, 248 PrerenderTracker* prerender_tracker,
244 const GURL& url, 249 const GURL& url,
245 Origin origin, 250 Origin origin,
246 FinalStatus expected_final_status) 251 FinalStatus expected_final_status)
247 : PrerenderContents(test_prerender_manager, prerender_tracker, 252 : PrerenderContents(test_prerender_manager,
248 NULL, url, Referrer(), origin, 253 NULL, url, Referrer(), origin,
249 PrerenderManager::kNoExperiment), 254 PrerenderManager::kNoExperiment),
255 route_id_(g_next_route_id_++),
250 test_prerender_manager_(test_prerender_manager), 256 test_prerender_manager_(test_prerender_manager),
251 expected_final_status_(expected_final_status) { 257 expected_final_status_(expected_final_status) {
252 } 258 }
253 259
254 void DummyPrerenderContents::StartPrerendering( 260 void DummyPrerenderContents::StartPrerendering(
255 int ALLOW_UNUSED creator_child_id, 261 int ALLOW_UNUSED creator_child_id,
256 const gfx::Size& ALLOW_UNUSED size, 262 const gfx::Size& ALLOW_UNUSED size,
257 content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace, 263 content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace,
258 bool is_control_group) { 264 bool is_control_group) {
259 // In the base PrerenderContents implementation, StartPrerendering will 265 // In the base PrerenderContents implementation, StartPrerendering will
260 // be called even when the PrerenderManager is part of the control group, 266 // be called even when the PrerenderManager is part of the control group,
261 // but it will early exit before actually creating a new RenderView if 267 // but it will early exit before actually creating a new RenderView if
262 // |is_control_group| is true; 268 // |is_control_group| is true;
263 if (!is_control_group) 269 if (!is_control_group)
264 prerendering_has_started_ = true; 270 prerendering_has_started_ = true;
265 load_start_time_ = test_prerender_manager_->GetCurrentTimeTicks(); 271 load_start_time_ = test_prerender_manager_->GetCurrentTimeTicks();
272 NotifyPrerenderStart();
266 } 273 }
267 274
268 class PrerenderTest : public testing::Test { 275 class PrerenderTest : public testing::Test {
269 public: 276 public:
270 static const int kDefaultChildId = -1; 277 static const int kDefaultChildId = -1;
271 static const int kDefaultRenderViewRouteId = -1; 278 static const int kDefaultRenderViewRouteId = -1;
272 279
273 PrerenderTest() : ui_thread_(BrowserThread::UI, &message_loop_), 280 PrerenderTest() : ui_thread_(BrowserThread::UI, &message_loop_),
274 prerender_manager_(new UnitTestPrerenderManager( 281 prerender_manager_(new UnitTestPrerenderManager(
275 &profile_, prerender_tracker())), 282 &profile_, prerender_tracker())),
(...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after
1194 EXPECT_TRUE(AddSimplePrerender(url)); 1201 EXPECT_TRUE(AddSimplePrerender(url));
1195 EXPECT_TRUE(second_prerender_contents->prerendering_has_started()); 1202 EXPECT_TRUE(second_prerender_contents->prerendering_has_started());
1196 ASSERT_EQ(second_prerender_contents, 1203 ASSERT_EQ(second_prerender_contents,
1197 prerender_manager()->FindAndUseEntry(url)); 1204 prerender_manager()->FindAndUseEntry(url));
1198 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 1205 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
1199 } 1206 }
1200 1207
1201 #endif // !(defined(OS_WIN) && defined(USE_AURA)) 1208 #endif // !(defined(OS_WIN) && defined(USE_AURA))
1202 1209
1203 } // namespace prerender 1210 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698