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

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

Issue 10553029: Handle interface to prerenders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: some remediation, and deflaking browser tests. Created 8 years, 5 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) 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/time.h" 8 #include "base/time.h"
9 #include "chrome/browser/prerender/prerender_contents.h" 9 #include "chrome/browser/prerender/prerender_contents.h"
10 #include "chrome/browser/prerender/prerender_handle.h"
10 #include "chrome/browser/prerender/prerender_link_manager.h" 11 #include "chrome/browser/prerender/prerender_link_manager.h"
11 #include "chrome/browser/prerender/prerender_manager.h" 12 #include "chrome/browser/prerender/prerender_manager.h"
12 #include "chrome/browser/prerender/prerender_origin.h" 13 #include "chrome/browser/prerender/prerender_origin.h"
13 #include "chrome/common/chrome_switches.h" 14 #include "chrome/common/chrome_switches.h"
14 #include "chrome/test/base/testing_browser_process.h" 15 #include "chrome/test/base/testing_browser_process.h"
15 #include "chrome/test/base/testing_profile.h" 16 #include "chrome/test/base/testing_profile.h"
16 #include "content/public/browser/render_view_host.h" 17 #include "content/public/browser/render_view_host.h"
17 #include "content/public/test/test_browser_thread.h" 18 #include "content/public/test/test_browser_thread.h"
18 #include "googleurl/src/gurl.h" 19 #include "googleurl/src/gurl.h"
19 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
20 #include "ui/gfx/size.h" 21 #include "ui/gfx/size.h"
21 22
22 using content::BrowserThread; 23 using content::BrowserThread;
23 using content::Referrer; 24 using content::Referrer;
24 25
25 namespace prerender { 26 namespace prerender {
26 27
28 class UnitTestPrerenderManager;
29
27 namespace { 30 namespace {
28 31
29 class DummyPrerenderContents : public PrerenderContents { 32 class DummyPrerenderContents : public PrerenderContents {
30 public: 33 public:
31 DummyPrerenderContents(PrerenderManager* prerender_manager, 34 DummyPrerenderContents(UnitTestPrerenderManager* test_prerender_manager,
32 PrerenderTracker* prerender_tracker, 35 PrerenderTracker* prerender_tracker,
33 const GURL& url, 36 const GURL& url,
34 Origin origin, 37 Origin origin,
35 FinalStatus expected_final_status) 38 FinalStatus expected_final_status);
36 : PrerenderContents(prerender_manager, prerender_tracker,
37 NULL, url, Referrer(), origin,
38 PrerenderManager::kNoExperiment),
39 expected_final_status_(expected_final_status) {
40 }
41 39
42 virtual ~DummyPrerenderContents() { 40 virtual ~DummyPrerenderContents() {
43 EXPECT_EQ(expected_final_status_, final_status()); 41 EXPECT_EQ(expected_final_status_, final_status());
44 } 42 }
45 43
46 virtual void StartPrerendering( 44 virtual void StartPrerendering(
47 int ALLOW_UNUSED creator_child_id, 45 int ALLOW_UNUSED creator_child_id,
48 const gfx::Size& ALLOW_UNUSED size, 46 const gfx::Size& ALLOW_UNUSED size,
49 content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace, 47 content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace,
50 bool is_control_group) OVERRIDE { 48 bool is_control_group) OVERRIDE;
51 // In the base PrerenderContents implementation, StartPrerendering will
52 // be called even when the PrerenderManager is part of the control group,
53 // but it will early exit before actually creating a new RenderView if
54 // |is_control_group| is true;
55 if (!is_control_group)
56 prerendering_has_started_ = true;
57 }
58 49
59 virtual bool GetChildId(int* child_id) const OVERRIDE { 50 virtual bool GetChildId(int* child_id) const OVERRIDE {
60 *child_id = 0; 51 *child_id = 0;
61 return true; 52 return true;
62 } 53 }
63 54
64 virtual bool GetRouteId(int* route_id) const OVERRIDE { 55 virtual bool GetRouteId(int* route_id) const OVERRIDE {
65 *route_id = 0; 56 *route_id = 0;
66 return true; 57 return true;
67 } 58 }
68 59
69 FinalStatus expected_final_status() const { return expected_final_status_; } 60 FinalStatus expected_final_status() const { return expected_final_status_; }
70 61
71 bool prerendering_has_been_cancelled() const { 62 bool prerendering_has_been_cancelled() const {
72 return PrerenderContents::prerendering_has_been_cancelled(); 63 return PrerenderContents::prerendering_has_been_cancelled();
73 } 64 }
74 65
75 private: 66 private:
67 UnitTestPrerenderManager* test_prerender_manager_;
76 FinalStatus expected_final_status_; 68 FinalStatus expected_final_status_;
77 }; 69 };
78 70
79 class TestPrerenderManager : public PrerenderManager { 71 } // namespace
72
73 class UnitTestPrerenderManager : public PrerenderManager {
80 public: 74 public:
81 explicit TestPrerenderManager(PrerenderTracker* prerender_tracker) 75 using PrerenderManager::kNavigationRecordWindowMs;
76 using PrerenderManager::GetMaxAge;
77
78 explicit UnitTestPrerenderManager(PrerenderTracker* prerender_tracker)
82 : PrerenderManager(&profile_, prerender_tracker), 79 : PrerenderManager(&profile_, prerender_tracker),
83 time_(base::Time::Now()), 80 time_(base::Time::Now()),
84 time_ticks_(base::TimeTicks::Now()), 81 time_ticks_(base::TimeTicks::Now()),
85 next_prerender_contents_(NULL), 82 next_prerender_contents_(NULL),
86 prerender_tracker_(prerender_tracker) { 83 prerender_tracker_(prerender_tracker) {
87 set_rate_limit_enabled(false); 84 set_rate_limit_enabled(false);
88 } 85 }
89 86
90 virtual ~TestPrerenderManager() { 87 virtual ~UnitTestPrerenderManager() {
91 if (next_prerender_contents()) { 88 if (next_prerender_contents()) {
92 next_prerender_contents_.release()->Destroy( 89 next_prerender_contents_.release()->Destroy(
93 FINAL_STATUS_MANAGER_SHUTDOWN); 90 FINAL_STATUS_MANAGER_SHUTDOWN);
94 } 91 }
95 // Set the final status for all PrerenderContents with an expected final
96 // status of FINAL_STATUS_USED. These values are normally set when the
97 // prerendered RVH is swapped into a tab, which doesn't happen in these
98 // unit tests.
99 for (ScopedVector<PrerenderContents>::iterator it =
100 used_prerender_contents_.begin();
101 it != used_prerender_contents_.end(); ++it) {
102 (*it)->set_final_status(FINAL_STATUS_USED);
103 }
104 DoShutdown(); 92 DoShutdown();
105 } 93 }
106 94
95 PrerenderContents* FindEntry(const GURL& url) {
96 DeleteOldEntries();
97 DeletePendingDeleteEntries();
98 if (PrerenderData* data = FindPrerenderData(url, NULL))
99 return data->contents;
100 return NULL;
101 }
102
103 PrerenderContents* FindAndUseEntry(const GURL& url) {
104 PrerenderData* prerender_data = FindPrerenderData(url, NULL);
105 if (!prerender_data)
106 return NULL;
107 PrerenderContents* prerender_contents = prerender_data->contents;
108 prerender_contents->set_final_status(FINAL_STATUS_USED);
109 std::list<PrerenderData>::iterator to_erase =
110 FindIteratorForPrerenderContents(prerender_contents);
111 DCHECK(to_erase != active_prerender_list_.end());
112 InvalidatePrerenderHandlesForPrerenderData(*to_erase);
113 active_prerender_list_.erase(to_erase);
114 prerender_contents->StartPendingPrerenders();
115 return prerender_contents;
116 }
117
107 void AdvanceTime(base::TimeDelta delta) { 118 void AdvanceTime(base::TimeDelta delta) {
108 time_ += delta; 119 time_ += delta;
109 } 120 }
110 121
111 void AdvanceTimeTicks(base::TimeDelta delta) { 122 void AdvanceTimeTicks(base::TimeDelta delta) {
112 time_ticks_ += delta; 123 time_ticks_ += delta;
113 } 124 }
114 125
115 DummyPrerenderContents* CreateNextPrerenderContents( 126 DummyPrerenderContents* CreateNextPrerenderContents(
116 const GURL& url, 127 const GURL& url,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 } 163 }
153 164
154 void set_rate_limit_enabled(bool enabled) { 165 void set_rate_limit_enabled(bool enabled) {
155 mutable_config().rate_limit_enabled = enabled; 166 mutable_config().rate_limit_enabled = enabled;
156 } 167 }
157 168
158 PrerenderContents* next_prerender_contents() { 169 PrerenderContents* next_prerender_contents() {
159 return next_prerender_contents_.get(); 170 return next_prerender_contents_.get();
160 } 171 }
161 172
173 // from PrerenderManager
174 virtual base::Time GetCurrentTime() const OVERRIDE {
175 return time_;
176 }
177
178 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE {
179 return time_ticks_;
180 }
181
162 private: 182 private:
163 void SetNextPrerenderContents(DummyPrerenderContents* prerender_contents) { 183 void SetNextPrerenderContents(DummyPrerenderContents* prerender_contents) {
164 DCHECK(!next_prerender_contents_.get()); 184 DCHECK(!next_prerender_contents_.get());
165 next_prerender_contents_.reset(prerender_contents); 185 next_prerender_contents_.reset(prerender_contents);
166 if (prerender_contents->expected_final_status() == FINAL_STATUS_USED) 186 if (prerender_contents->expected_final_status() == FINAL_STATUS_USED)
167 used_prerender_contents_.push_back(prerender_contents); 187 used_prerender_contents_.push_back(prerender_contents);
168 } 188 }
169 189
170 virtual base::Time GetCurrentTime() const OVERRIDE {
171 return time_;
172 }
173
174 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE {
175 return time_ticks_;
176 }
177 190
178 virtual PrerenderContents* CreatePrerenderContents( 191 virtual PrerenderContents* CreatePrerenderContents(
179 const GURL& url, 192 const GURL& url,
180 const Referrer& referrer, 193 const Referrer& referrer,
181 Origin origin, 194 Origin origin,
182 uint8 experiment_id) OVERRIDE { 195 uint8 experiment_id) OVERRIDE {
183 DCHECK(next_prerender_contents_.get()); 196 DCHECK(next_prerender_contents_.get());
184 DCHECK_EQ(next_prerender_contents_->prerender_url(), url); 197 EXPECT_TRUE(next_prerender_contents_->prerender_url() == url);
185 DCHECK_EQ(next_prerender_contents_->origin(), origin); 198 EXPECT_TRUE(next_prerender_contents_->origin() == origin);
mmenke 2012/07/10 18:01:13 EXPECT_EQ?
gavinp 2012/07/11 17:04:00 Done.
186 return next_prerender_contents_.release(); 199 return next_prerender_contents_.release();
187 } 200 }
188 201
189 base::Time time_; 202 base::Time time_;
190 base::TimeTicks time_ticks_; 203 base::TimeTicks time_ticks_;
191 scoped_ptr<PrerenderContents> next_prerender_contents_; 204 scoped_ptr<PrerenderContents> next_prerender_contents_;
192 // PrerenderContents with an |expected_final_status| of FINAL_STATUS_USED, 205 // PrerenderContents with an |expected_final_status| of FINAL_STATUS_USED,
193 // tracked so they will be automatically deleted. 206 // tracked so they will be automatically deleted.
194 ScopedVector<PrerenderContents> used_prerender_contents_; 207 ScopedVector<PrerenderContents> used_prerender_contents_;
195 208
196 PrerenderTracker* prerender_tracker_; 209 PrerenderTracker* prerender_tracker_;
197 210
198 TestingProfile profile_; 211 TestingProfile profile_;
199 }; 212 };
200 213
201 class RestorePrerenderMode { 214 class RestorePrerenderMode {
202 public: 215 public:
203 RestorePrerenderMode() : prev_mode_(PrerenderManager::GetMode()) { 216 RestorePrerenderMode() : prev_mode_(PrerenderManager::GetMode()) {
204 } 217 }
205 218
206 ~RestorePrerenderMode() { PrerenderManager::SetMode(prev_mode_); } 219 ~RestorePrerenderMode() { PrerenderManager::SetMode(prev_mode_); }
207 private: 220 private:
208 PrerenderManager::PrerenderManagerMode prev_mode_; 221 PrerenderManager::PrerenderManagerMode prev_mode_;
209 }; 222 };
210 223
211 } // namespace 224 DummyPrerenderContents::DummyPrerenderContents(
225 UnitTestPrerenderManager* test_prerender_manager,
226 PrerenderTracker* prerender_tracker,
227 const GURL& url,
228 Origin origin,
229 FinalStatus expected_final_status)
230 : PrerenderContents(test_prerender_manager, prerender_tracker,
231 NULL, url, Referrer(), origin,
232 PrerenderManager::kNoExperiment),
233 test_prerender_manager_(test_prerender_manager),
234 expected_final_status_(expected_final_status) {
235 }
236
237 void DummyPrerenderContents::StartPrerendering(
238 int ALLOW_UNUSED creator_child_id,
239 const gfx::Size& ALLOW_UNUSED size,
240 content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace,
241 bool is_control_group) {
242 // In the base PrerenderContents implementation, StartPrerendering will
243 // be called even when the PrerenderManager is part of the control group,
244 // but it will early exit before actually creating a new RenderView if
245 // |is_control_group| is true;
246 if (!is_control_group)
247 prerendering_has_started_ = true;
248 load_start_time_ = test_prerender_manager_->GetCurrentTimeTicks();
249 }
212 250
213 class PrerenderTest : public testing::Test { 251 class PrerenderTest : public testing::Test {
214 public: 252 public:
215 static const int kDefaultChildId = -1; 253 static const int kDefaultChildId = -1;
216 static const int kDefaultRenderViewRouteId = -1; 254 static const int kDefaultRenderViewRouteId = -1;
217 255
218 PrerenderTest() : ui_thread_(BrowserThread::UI, &message_loop_), 256 PrerenderTest() : ui_thread_(BrowserThread::UI, &message_loop_),
219 prerender_manager_( 257 prerender_manager_(
220 new TestPrerenderManager(prerender_tracker())), 258 new UnitTestPrerenderManager(prerender_tracker())),
221 prerender_link_manager_( 259 prerender_link_manager_(
222 new PrerenderLinkManager(prerender_manager_.get())), 260 new PrerenderLinkManager(prerender_manager_.get())),
223 last_prerender_id_(0) { 261 last_prerender_id_(0) {
224 // Enable omnibox prerendering. 262 // Enable omnibox prerendering.
225 CommandLine::ForCurrentProcess()->AppendSwitchASCII( 263 CommandLine::ForCurrentProcess()->AppendSwitchASCII(
226 switches::kPrerenderFromOmnibox, 264 switches::kPrerenderFromOmnibox,
227 switches::kPrerenderFromOmniboxSwitchValueEnabled); 265 switches::kPrerenderFromOmniboxSwitchValueEnabled);
228 } 266 }
229 267
230 TestPrerenderManager* prerender_manager() { 268 UnitTestPrerenderManager* prerender_manager() {
231 return prerender_manager_.get(); 269 return prerender_manager_.get();
232 } 270 }
233 271
234 PrerenderLinkManager* prerender_link_manager() { 272 PrerenderLinkManager* prerender_link_manager() {
235 return prerender_link_manager_.get(); 273 return prerender_link_manager_.get();
236 } 274 }
237 275
238 bool IsEmptyPrerenderLinkManager() { 276 bool IsEmptyPrerenderLinkManager() {
239 return prerender_link_manager_->IsEmpty(); 277 return prerender_link_manager_->IsEmpty();
240 } 278 }
(...skipping 15 matching lines...) Expand all
256 } 294 }
257 295
258 private: 296 private:
259 PrerenderTracker* prerender_tracker() { 297 PrerenderTracker* prerender_tracker() {
260 return g_browser_process->prerender_tracker(); 298 return g_browser_process->prerender_tracker();
261 } 299 }
262 300
263 // Needed to pass PrerenderManager's DCHECKs. 301 // Needed to pass PrerenderManager's DCHECKs.
264 MessageLoop message_loop_; 302 MessageLoop message_loop_;
265 content::TestBrowserThread ui_thread_; 303 content::TestBrowserThread ui_thread_;
266 scoped_ptr<TestPrerenderManager> prerender_manager_; 304 scoped_ptr<UnitTestPrerenderManager> prerender_manager_;
267 scoped_ptr<PrerenderLinkManager> prerender_link_manager_; 305 scoped_ptr<PrerenderLinkManager> prerender_link_manager_;
268 int last_prerender_id_; 306 int last_prerender_id_;
269 }; 307 };
270 308
271 TEST_F(PrerenderTest, EmptyTest) {
272 EXPECT_FALSE(prerender_manager()->MaybeUsePrerenderedPage(
273 NULL,
274 GURL("http://www.google.com/")));
275 }
276
277 TEST_F(PrerenderTest, FoundTest) { 309 TEST_F(PrerenderTest, FoundTest) {
278 GURL url("http://www.google.com/"); 310 GURL url("http://www.google.com/");
279 DummyPrerenderContents* prerender_contents = 311 DummyPrerenderContents* prerender_contents =
280 prerender_manager()->CreateNextPrerenderContents( 312 prerender_manager()->CreateNextPrerenderContents(
281 url, 313 url,
282 FINAL_STATUS_USED); 314 FINAL_STATUS_USED);
283 EXPECT_TRUE(AddSimplePrerender(url)); 315 EXPECT_TRUE(AddSimplePrerender(url));
284 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 316 EXPECT_TRUE(prerender_contents->prerendering_has_started());
285 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 317 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
286 } 318 }
287 319
288 // Make sure that if queue a request, and a second prerender request for the 320 // Make sure that if queue a request, and a second prerender request for the
289 // same URL comes in, that we drop the second request and keep the first one. 321 // same URL comes in, that we drop the second request and keep the first one.
290 TEST_F(PrerenderTest, DropSecondRequestTest) { 322 TEST_F(PrerenderTest, DropSecondRequestTest) {
291 GURL url("http://www.google.com/"); 323 GURL url("http://www.google.com/");
292 DummyPrerenderContents* prerender_contents = 324 DummyPrerenderContents* prerender_contents =
293 prerender_manager()->CreateNextPrerenderContents( 325 prerender_manager()->CreateNextPrerenderContents(
294 url, 326 url,
295 FINAL_STATUS_USED); 327 FINAL_STATUS_USED);
296 DummyPrerenderContents* null = NULL; 328 DummyPrerenderContents* null = NULL;
297 EXPECT_TRUE(AddSimplePrerender(url)); 329 EXPECT_TRUE(AddSimplePrerender(url));
298 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 330 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
299 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 331 EXPECT_TRUE(prerender_contents->prerendering_has_started());
300 332
301 DummyPrerenderContents* prerender_contents1 = 333 DummyPrerenderContents* prerender_contents1 =
302 prerender_manager()->CreateNextPrerenderContents( 334 prerender_manager()->CreateNextPrerenderContents(
303 url, 335 url,
304 FINAL_STATUS_MANAGER_SHUTDOWN); 336 FINAL_STATUS_MANAGER_SHUTDOWN);
305 EXPECT_TRUE(AddSimplePrerender(url)); 337 EXPECT_TRUE(AddSimplePrerender(url));
306 EXPECT_EQ(prerender_contents1, 338 EXPECT_EQ(prerender_contents1,
307 prerender_manager()->next_prerender_contents()); 339 prerender_manager()->next_prerender_contents());
308 EXPECT_FALSE(prerender_contents1->prerendering_has_started()); 340 EXPECT_FALSE(prerender_contents1->prerendering_has_started());
309 341
310 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 342 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
311 } 343 }
312 344
313 // Ensure that we expire a prerendered page after the max. permitted time. 345 // Ensure that we expire a prerendered page after the max. permitted time.
314 TEST_F(PrerenderTest, ExpireTest) { 346 TEST_F(PrerenderTest, ExpireTest) {
315 GURL url("http://www.google.com/"); 347 GURL url("http://www.google.com/");
316 DummyPrerenderContents* prerender_contents = 348 DummyPrerenderContents* prerender_contents =
317 prerender_manager()->CreateNextPrerenderContents( 349 prerender_manager()->CreateNextPrerenderContents(
318 url, 350 url,
319 FINAL_STATUS_TIMED_OUT); 351 FINAL_STATUS_TIMED_OUT);
320 DummyPrerenderContents* null = NULL; 352 DummyPrerenderContents* null = NULL;
321 EXPECT_TRUE(AddSimplePrerender(url)); 353 EXPECT_TRUE(AddSimplePrerender(url));
322 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 354 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
323 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 355 EXPECT_TRUE(prerender_contents->prerendering_has_started());
324 prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() + 356 prerender_manager()->AdvanceTimeTicks(prerender_manager()->GetMaxAge() +
325 base::TimeDelta::FromSeconds(1)); 357 base::TimeDelta::FromSeconds(1));
326 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 358 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
327 } 359 }
328 360
329 // LRU Test. Make sure that if we prerender more than one request, that 361 // LRU Test. Make sure that if we prerender more than one request, that
330 // the oldest one will be dropped. 362 // the oldest one will be dropped.
331 TEST_F(PrerenderTest, DropOldestRequestTest) { 363 TEST_F(PrerenderTest, DropOldestRequestTest) {
332 GURL url("http://www.google.com/"); 364 GURL url("http://www.google.com/");
333 DummyPrerenderContents* prerender_contents = 365 DummyPrerenderContents* prerender_contents =
334 prerender_manager()->CreateNextPrerenderContents( 366 prerender_manager()->CreateNextPrerenderContents(
335 url, 367 url,
336 FINAL_STATUS_EVICTED); 368 FINAL_STATUS_EVICTED);
337 DummyPrerenderContents* null = NULL; 369 DummyPrerenderContents* null = NULL;
338 EXPECT_TRUE(AddSimplePrerender(url)); 370 EXPECT_TRUE(AddSimplePrerender(url));
339 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 371 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
340 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 372 EXPECT_TRUE(prerender_contents->prerendering_has_started());
341 373
342 GURL url1("http://news.google.com/"); 374 GURL url1("http://news.google.com/");
343 DummyPrerenderContents* prerender_contents1 = 375 DummyPrerenderContents* prerender_contents1 =
344 prerender_manager()->CreateNextPrerenderContents( 376 prerender_manager()->CreateNextPrerenderContents(
345 url1, 377 url1,
346 FINAL_STATUS_USED); 378 FINAL_STATUS_USED);
347 EXPECT_TRUE(AddSimplePrerender(url1)); 379 EXPECT_TRUE(AddSimplePrerender(url1));
348 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 380 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
349 EXPECT_TRUE(prerender_contents1->prerendering_has_started()); 381 EXPECT_TRUE(prerender_contents1->prerendering_has_started());
350 382
351 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 383 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
352 ASSERT_EQ(prerender_contents1, prerender_manager()->GetEntry(url1)); 384 ASSERT_EQ(prerender_contents1, prerender_manager()->FindAndUseEntry(url1));
353 } 385 }
354 386
355 // Two element prerender test. Ensure that the LRU operates correctly if we 387 // Two element prerender test. Ensure that the LRU operates correctly if we
356 // permit 2 elements to be kept prerendered. 388 // permit 2 elements to be kept prerendered.
357 TEST_F(PrerenderTest, TwoElementPrerenderTest) { 389 TEST_F(PrerenderTest, TwoElementPrerenderTest) {
358 prerender_manager()->mutable_config().max_elements = 2; 390 prerender_manager()->mutable_config().max_elements = 2;
359 GURL url("http://www.google.com/"); 391 GURL url("http://www.google.com/");
360 DummyPrerenderContents* prerender_contents = 392 DummyPrerenderContents* prerender_contents =
361 prerender_manager()->CreateNextPrerenderContents( 393 prerender_manager()->CreateNextPrerenderContents(
362 url, 394 url,
(...skipping 14 matching lines...) Expand all
377 409
378 GURL url2("http://images.google.com/"); 410 GURL url2("http://images.google.com/");
379 DummyPrerenderContents* prerender_contents2 = 411 DummyPrerenderContents* prerender_contents2 =
380 prerender_manager()->CreateNextPrerenderContents( 412 prerender_manager()->CreateNextPrerenderContents(
381 url2, 413 url2,
382 FINAL_STATUS_USED); 414 FINAL_STATUS_USED);
383 EXPECT_TRUE(AddSimplePrerender(url2)); 415 EXPECT_TRUE(AddSimplePrerender(url2));
384 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 416 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
385 EXPECT_TRUE(prerender_contents2->prerendering_has_started()); 417 EXPECT_TRUE(prerender_contents2->prerendering_has_started());
386 418
387 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 419 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
388 ASSERT_EQ(prerender_contents1, prerender_manager()->GetEntry(url1)); 420 ASSERT_EQ(prerender_contents1, prerender_manager()->FindAndUseEntry(url1));
389 ASSERT_EQ(prerender_contents2, prerender_manager()->GetEntry(url2)); 421 ASSERT_EQ(prerender_contents2, prerender_manager()->FindAndUseEntry(url2));
390 } 422 }
391 423
392 TEST_F(PrerenderTest, AliasURLTest) { 424 TEST_F(PrerenderTest, AliasURLTest) {
393 GURL url("http://www.google.com/"); 425 GURL url("http://www.google.com/");
394 GURL alias_url1("http://www.google.com/index.html"); 426 GURL alias_url1("http://www.google.com/index.html");
395 GURL alias_url2("http://google.com/"); 427 GURL alias_url2("http://google.com/");
396 GURL not_an_alias_url("http://google.com/index.html"); 428 GURL not_an_alias_url("http://google.com/index.html");
397 std::vector<GURL> alias_urls; 429 std::vector<GURL> alias_urls;
398 alias_urls.push_back(alias_url1); 430 alias_urls.push_back(alias_url1);
399 alias_urls.push_back(alias_url2); 431 alias_urls.push_back(alias_url2);
400 432
401 // Test that all of the aliases work, but not_an_alias_url does not. 433 // Test that all of the aliases work, but not_an_alias_url does not.
402 DummyPrerenderContents* prerender_contents = 434 DummyPrerenderContents* prerender_contents =
403 prerender_manager()->CreateNextPrerenderContents( 435 prerender_manager()->CreateNextPrerenderContents(
404 url, alias_urls, FINAL_STATUS_USED); 436 url, alias_urls, FINAL_STATUS_USED);
405 EXPECT_TRUE(AddSimplePrerender(url)); 437 EXPECT_TRUE(AddSimplePrerender(url));
406 ASSERT_EQ(NULL, prerender_manager()->GetEntry(not_an_alias_url)); 438 ASSERT_EQ(NULL, prerender_manager()->FindEntry(not_an_alias_url));
407 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(alias_url1)); 439 ASSERT_EQ(prerender_contents,
440 prerender_manager()->FindAndUseEntry(alias_url1));
408 prerender_contents = prerender_manager()->CreateNextPrerenderContents( 441 prerender_contents = prerender_manager()->CreateNextPrerenderContents(
409 url, alias_urls, FINAL_STATUS_USED); 442 url, alias_urls, FINAL_STATUS_USED);
410 EXPECT_TRUE(AddSimplePrerender(url)); 443 EXPECT_TRUE(AddSimplePrerender(url));
411 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(alias_url2)); 444 ASSERT_EQ(prerender_contents,
445 prerender_manager()->FindAndUseEntry(alias_url2));
412 prerender_contents = prerender_manager()->CreateNextPrerenderContents( 446 prerender_contents = prerender_manager()->CreateNextPrerenderContents(
413 url, alias_urls, FINAL_STATUS_USED); 447 url, alias_urls, FINAL_STATUS_USED);
414 EXPECT_TRUE(AddSimplePrerender(url)); 448 EXPECT_TRUE(AddSimplePrerender(url));
415 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 449 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
416 450
417 // Test that alias URLs can not be added. 451 // Test that alias URLs can not be added.
418 prerender_contents = prerender_manager()->CreateNextPrerenderContents( 452 prerender_contents = prerender_manager()->CreateNextPrerenderContents(
419 url, alias_urls, FINAL_STATUS_USED); 453 url, alias_urls, FINAL_STATUS_USED);
420 EXPECT_TRUE(AddSimplePrerender(url)); 454 EXPECT_TRUE(AddSimplePrerender(url));
421 EXPECT_TRUE(AddSimplePrerender(url)); 455 EXPECT_TRUE(AddSimplePrerender(url));
422 EXPECT_TRUE(AddSimplePrerender(alias_url1)); 456 EXPECT_TRUE(AddSimplePrerender(alias_url1));
423 EXPECT_TRUE(AddSimplePrerender(alias_url2)); 457 EXPECT_TRUE(AddSimplePrerender(alias_url2));
424 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 458 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
425 } 459 }
426 460
427 // Ensure that we ignore prerender requests within the rate limit. 461 // Ensure that we ignore prerender requests within the rate limit.
428 TEST_F(PrerenderTest, RateLimitInWindowTest) { 462 TEST_F(PrerenderTest, RateLimitInWindowTest) {
429 GURL url("http://www.google.com/"); 463 GURL url("http://www.google.com/");
430 DummyPrerenderContents* prerender_contents = 464 DummyPrerenderContents* prerender_contents =
431 prerender_manager()->CreateNextPrerenderContents( 465 prerender_manager()->CreateNextPrerenderContents(
432 url, 466 url,
433 FINAL_STATUS_MANAGER_SHUTDOWN); 467 FINAL_STATUS_MANAGER_SHUTDOWN);
434 DummyPrerenderContents* null = NULL; 468 DummyPrerenderContents* null = NULL;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 FINAL_STATUS_USED); 516 FINAL_STATUS_USED);
483 EXPECT_TRUE(AddSimplePrerender(url)); 517 EXPECT_TRUE(AddSimplePrerender(url));
484 518
485 int child_id; 519 int child_id;
486 int route_id; 520 int route_id;
487 ASSERT_TRUE(prerender_contents->GetChildId(&child_id)); 521 ASSERT_TRUE(prerender_contents->GetChildId(&child_id));
488 ASSERT_TRUE(prerender_contents->GetRouteId(&route_id)); 522 ASSERT_TRUE(prerender_contents->GetRouteId(&route_id));
489 523
490 GURL pending_url("http://news.google.com/"); 524 GURL pending_url("http://news.google.com/");
491 525
492 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender( 526 DummyPrerenderContents* pending_prerender_contents =
493 child_id, route_id, 527 prerender_manager()->CreateNextPrerenderContents(
494 pending_url, Referrer(url, WebKit::WebReferrerPolicyDefault), 528 pending_url,
495 gfx::Size())); 529 ORIGIN_GWS_PRERENDER,
530 FINAL_STATUS_USED);
531 scoped_ptr<PrerenderHandle> pending_prerender_handle(
532 prerender_manager()->AddPrerenderFromLinkRelPrerender(
533 child_id, route_id, pending_url,
534 Referrer(url, WebKit::WebReferrerPolicyDefault), gfx::Size()));
535 DCHECK(pending_prerender_handle.get());
536 EXPECT_TRUE(pending_prerender_handle->IsValid());
537 EXPECT_TRUE(pending_prerender_handle->IsPending());
496 538
497 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url));
498 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 539 EXPECT_TRUE(prerender_contents->prerendering_has_started());
499 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 540 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
541
542 EXPECT_FALSE(pending_prerender_handle->IsPending());
543 ASSERT_EQ(pending_prerender_contents,
544 prerender_manager()->FindAndUseEntry(pending_url));
545 }
546
547 TEST_F(PrerenderTest, CancelPendingPrerenderTest) {
548 GURL url("http://www.google.com/");
549 DummyPrerenderContents* prerender_contents =
550 prerender_manager()->CreateNextPrerenderContents(
551 url,
552 FINAL_STATUS_USED);
553 EXPECT_TRUE(AddSimplePrerender(url));
554
555 int child_id;
556 int route_id;
557 ASSERT_TRUE(prerender_contents->GetChildId(&child_id));
558 ASSERT_TRUE(prerender_contents->GetRouteId(&route_id));
559
560 GURL pending_url("http://news.google.com/");
561
562 scoped_ptr<PrerenderHandle> pending_prerender_handle(
563 prerender_manager()->AddPrerenderFromLinkRelPrerender(
564 child_id, route_id, pending_url,
565 Referrer(url, WebKit::WebReferrerPolicyDefault), gfx::Size()));
566 DCHECK(pending_prerender_handle.get());
567 EXPECT_TRUE(pending_prerender_handle->IsValid());
568 EXPECT_TRUE(pending_prerender_handle->IsPending());
569
570 EXPECT_TRUE(prerender_contents->prerendering_has_started());
571
572 pending_prerender_handle->OnCancel();
573 EXPECT_FALSE(pending_prerender_handle->IsValid());
574
575 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
500 } 576 }
501 577
502 // Tests that a PrerenderManager created for a browser session in the control 578 // Tests that a PrerenderManager created for a browser session in the control
503 // group works as expected. 579 // group works as expected.
504 TEST_F(PrerenderTest, ControlGroup) { 580 TEST_F(PrerenderTest, ControlGroup) {
505 RestorePrerenderMode restore_prerender_mode; 581 RestorePrerenderMode restore_prerender_mode;
506 PrerenderManager::SetMode( 582 PrerenderManager::SetMode(
507 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); 583 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP);
508 GURL url("http://www.google.com/"); 584 GURL url("http://www.google.com/");
509 DummyPrerenderContents* prerender_contents = 585 DummyPrerenderContents* prerender_contents =
(...skipping 30 matching lines...) Expand all
540 EXPECT_FALSE(AddSimplePrerender(url)); 616 EXPECT_FALSE(AddSimplePrerender(url));
541 EXPECT_FALSE(prerender_contents->prerendering_has_started()); 617 EXPECT_FALSE(prerender_contents->prerendering_has_started());
542 } 618 }
543 619
544 TEST_F(PrerenderTest, NotSoRecentlyVisited) { 620 TEST_F(PrerenderTest, NotSoRecentlyVisited) {
545 GURL url("http://www.google.com/"); 621 GURL url("http://www.google.com/");
546 622
547 prerender_manager()->RecordNavigation(url); 623 prerender_manager()->RecordNavigation(url);
548 prerender_manager()->AdvanceTimeTicks( 624 prerender_manager()->AdvanceTimeTicks(
549 base::TimeDelta::FromMilliseconds( 625 base::TimeDelta::FromMilliseconds(
550 PrerenderManager::kNavigationRecordWindowMs + 500)); 626 UnitTestPrerenderManager::kNavigationRecordWindowMs + 500));
551 627
552 DummyPrerenderContents* prerender_contents = 628 DummyPrerenderContents* prerender_contents =
553 prerender_manager()->CreateNextPrerenderContents( 629 prerender_manager()->CreateNextPrerenderContents(
554 url, FINAL_STATUS_USED); 630 url, FINAL_STATUS_USED);
555 EXPECT_TRUE(AddSimplePrerender(url)); 631 EXPECT_TRUE(AddSimplePrerender(url));
556 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 632 EXPECT_TRUE(prerender_contents->prerendering_has_started());
557 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 633 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
558 } 634 }
559 635
560 // Tests that our PPLT dummy prerender gets created properly. 636 // Tests that our PPLT dummy prerender gets created properly.
561 TEST_F(PrerenderTest, PPLTDummy) { 637 TEST_F(PrerenderTest, PPLTDummy) {
562 GURL url("http://www.google.com/"); 638 GURL url("http://www.google.com/");
563 DummyPrerenderContents* prerender_contents = 639 DummyPrerenderContents* prerender_contents =
564 prerender_manager()->CreateNextPrerenderContents( 640 prerender_manager()->CreateNextPrerenderContents(
565 url, FINAL_STATUS_UNSUPPORTED_SCHEME); 641 url, FINAL_STATUS_UNSUPPORTED_SCHEME);
566 EXPECT_TRUE(AddSimplePrerender(url)); 642 EXPECT_TRUE(AddSimplePrerender(url));
567 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 643 EXPECT_TRUE(prerender_contents->prerendering_has_started());
568 644
569 DummyPrerenderContents* pplt_dummy_contents = 645 DummyPrerenderContents* pplt_dummy_contents =
570 prerender_manager()->CreateNextPrerenderContents(url, 646 prerender_manager()->CreateNextPrerenderContents(url,
571 FINAL_STATUS_USED); 647 FINAL_STATUS_USED);
572 GURL ftp_url("ftp://ftp.google.com/"); 648 GURL ftp_url("ftp://ftp.google.com/");
573 // Adding this ftp URL will force the expected unsupported scheme error. 649 // Adding this ftp URL will force the expected unsupported scheme error.
574 prerender_contents->AddAliasURL(ftp_url); 650 prerender_contents->AddAliasURL(ftp_url);
575 651
576 ASSERT_EQ(pplt_dummy_contents, prerender_manager()->GetEntry(url)); 652 ASSERT_EQ(pplt_dummy_contents, prerender_manager()->FindAndUseEntry(url));
577 } 653 }
578 654
579 // Tests that our PPLT dummy prerender gets created properly, even 655 // Tests that our PPLT dummy prerender gets created properly, even
580 // when navigating to a page that has been recently navigated to. 656 // when navigating to a page that has been recently navigated to.
581 TEST_F(PrerenderTest, RecentlyVisitedPPLTDummy) { 657 TEST_F(PrerenderTest, RecentlyVisitedPPLTDummy) {
582 GURL url("http://www.google.com/"); 658 GURL url("http://www.google.com/");
583 DummyPrerenderContents* prerender_contents = 659 DummyPrerenderContents* prerender_contents =
584 prerender_manager()->CreateNextPrerenderContents( 660 prerender_manager()->CreateNextPrerenderContents(
585 url, FINAL_STATUS_UNSUPPORTED_SCHEME); 661 url, FINAL_STATUS_UNSUPPORTED_SCHEME);
586 EXPECT_TRUE(AddSimplePrerender(url)); 662 EXPECT_TRUE(AddSimplePrerender(url));
587 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 663 EXPECT_TRUE(prerender_contents->prerendering_has_started());
588 664
589 DummyPrerenderContents* pplt_dummy_contents = 665 DummyPrerenderContents* pplt_dummy_contents =
590 prerender_manager()->CreateNextPrerenderContents(url, 666 prerender_manager()->CreateNextPrerenderContents(url,
591 FINAL_STATUS_USED); 667 FINAL_STATUS_USED);
592 prerender_manager()->RecordNavigation(url); 668 prerender_manager()->RecordNavigation(url);
593 GURL ftp_url("ftp://ftp.google.com/"); 669 GURL ftp_url("ftp://ftp.google.com/");
594 prerender_contents->AddAliasURL(ftp_url); 670 prerender_contents->AddAliasURL(ftp_url);
595 671
596 ASSERT_EQ(pplt_dummy_contents, prerender_manager()->GetEntry(url)); 672 ASSERT_EQ(pplt_dummy_contents, prerender_manager()->FindAndUseEntry(url));
597 } 673 }
598 674
599 // Tests that the prerender manager ignores fragment references when matching 675 // Tests that the prerender link manager discards fragments when launching,
600 // prerender URLs in the case the fragment is not in the prerender URL. 676 // and matches only occur on URLs without fragments.
601 TEST_F(PrerenderTest, PageMatchesFragmentTest) { 677 // TODO(gavinp): Drop this test once we are fragment clean.
678 TEST_F(PrerenderTest, FragmentDroppedOnLaunchTest) {
679 GURL fragment_url("http://www.google.com/#test");
602 GURL url("http://www.google.com/"); 680 GURL url("http://www.google.com/");
603 GURL fragment_url("http://www.google.com/#test");
604 681
605 DummyPrerenderContents* prerender_contents = 682 DummyPrerenderContents* prerender_contents =
606 prerender_manager()->CreateNextPrerenderContents(url, 683 prerender_manager()->CreateNextPrerenderContents(url,
607 FINAL_STATUS_USED); 684 FINAL_STATUS_USED);
608 EXPECT_TRUE(AddSimplePrerender(url)); 685 EXPECT_TRUE(AddSimplePrerender(fragment_url));
609 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 686 EXPECT_TRUE(prerender_contents->prerendering_has_started());
610 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(fragment_url)); 687 EXPECT_FALSE(prerender_manager()->FindEntry(fragment_url));
688 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
611 } 689 }
612 690
613 // Tests that the prerender manager ignores fragment references when matching 691 // Tests that the prerender manager matches include the fragment.
614 // prerender URLs in the case the fragment is in the prerender URL. 692 // TODO(gavinp): Re-enable this once we are fragment clean.
615 // TODO(gavinp): Re-enable this in the Prerender API once we're officially
616 // fragment clean. 693 // fragment clean.
617 TEST_F(PrerenderTest, DISABLED_FragmentMatchesPageTest) { 694 TEST_F(PrerenderTest, DISABLED_FragmentMatchesTest) {
618 GURL url("http://www.google.com/");
619 GURL fragment_url("http://www.google.com/#test"); 695 GURL fragment_url("http://www.google.com/#test");
620 696
621 DummyPrerenderContents* prerender_contents = 697 DummyPrerenderContents* prerender_contents =
622 prerender_manager()->CreateNextPrerenderContents(fragment_url, 698 prerender_manager()->CreateNextPrerenderContents(fragment_url,
623 FINAL_STATUS_USED); 699 FINAL_STATUS_USED);
624 EXPECT_TRUE(AddSimplePrerender(fragment_url)); 700 EXPECT_TRUE(AddSimplePrerender(fragment_url));
625 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 701 EXPECT_TRUE(prerender_contents->prerendering_has_started());
626 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 702 ASSERT_EQ(prerender_contents,
703 prerender_manager()->FindAndUseEntry(fragment_url));
627 } 704 }
628 705
629 // Tests that the prerender manager ignores fragment references when matching 706 // Tests that the prerender manager uses fragment references when matching
630 // prerender URLs in the case the fragment is in both URLs. 707 // prerender URLs in the case a different fragment is in both URLs.
631 // TODO(gavinp): Re-enable this in the Prerender API once we're officially 708 // TODO(gavinp): Re-enable this once we are fragment clean.
632 // fragment clean. 709 TEST_F(PrerenderTest, DISABLED_FragmentsDifferTest) {
633 TEST_F(PrerenderTest, DISABLED_FragmentMatchesFragmentTest) {
634 GURL fragment_url("http://www.google.com/#test"); 710 GURL fragment_url("http://www.google.com/#test");
635 GURL other_fragment_url("http://www.google.com/#other_test"); 711 GURL other_fragment_url("http://www.google.com/#other_test");
636 712
637 DummyPrerenderContents* prerender_contents = 713 DummyPrerenderContents* prerender_contents =
638 prerender_manager()->CreateNextPrerenderContents(fragment_url, 714 prerender_manager()->CreateNextPrerenderContents(fragment_url,
639 FINAL_STATUS_USED); 715 FINAL_STATUS_USED);
640 EXPECT_TRUE(AddSimplePrerender(fragment_url)); 716 EXPECT_TRUE(AddSimplePrerender(fragment_url));
641 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 717 EXPECT_TRUE(prerender_contents->prerendering_has_started());
718
719 DummyPrerenderContents* null = NULL;
720 ASSERT_EQ(null, prerender_manager()->FindEntry(other_fragment_url));
721
642 ASSERT_EQ(prerender_contents, 722 ASSERT_EQ(prerender_contents,
643 prerender_manager()->GetEntry(other_fragment_url)); 723 prerender_manager()->FindAndUseEntry(fragment_url));
644 } 724 }
645 725
646 // Make sure that clearing works as expected. 726 // Make sure that clearing works as expected.
647 TEST_F(PrerenderTest, ClearTest) { 727 TEST_F(PrerenderTest, ClearTest) {
648 GURL url("http://www.google.com/"); 728 GURL url("http://www.google.com/");
649 DummyPrerenderContents* prerender_contents = 729 DummyPrerenderContents* prerender_contents =
650 prerender_manager()->CreateNextPrerenderContents( 730 prerender_manager()->CreateNextPrerenderContents(
651 url, 731 url,
652 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED); 732 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED);
653 EXPECT_TRUE(AddSimplePrerender(url)); 733 EXPECT_TRUE(AddSimplePrerender(url));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 773
694 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 774 EXPECT_TRUE(prerender_contents->prerendering_has_started());
695 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 775 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
696 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 776 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
697 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 777 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
698 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 778 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
699 last_prerender_id()); 779 last_prerender_id());
700 780
701 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 781 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
702 DummyPrerenderContents* null = NULL; 782 DummyPrerenderContents* null = NULL;
703 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 783 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
704 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 784 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
705 } 785 }
706 786
707 TEST_F(PrerenderTest, LinkManagerCancelThenAbandon) { 787 TEST_F(PrerenderTest, LinkManagerCancelThenAbandon) {
708 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 788 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
709 GURL url("http://www.myexample.com"); 789 GURL url("http://www.myexample.com");
710 DummyPrerenderContents* prerender_contents = 790 DummyPrerenderContents* prerender_contents =
711 prerender_manager()->CreateNextPrerenderContents( 791 prerender_manager()->CreateNextPrerenderContents(
712 url, FINAL_STATUS_CANCELLED); 792 url, FINAL_STATUS_CANCELLED);
713 793
714 EXPECT_TRUE(AddSimplePrerender(url)); 794 EXPECT_TRUE(AddSimplePrerender(url));
715 795
716 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 796 EXPECT_TRUE(prerender_contents->prerendering_has_started());
717 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 797 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
718 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 798 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
719 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 799 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
720 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 800 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
721 last_prerender_id()); 801 last_prerender_id());
722 802
723 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 803 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
724 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 804 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
725 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, 805 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
726 last_prerender_id()); 806 last_prerender_id());
727 807
728 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 808 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
729 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 809 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
730 DummyPrerenderContents* null = NULL; 810 DummyPrerenderContents* null = NULL;
731 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 811 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
732 } 812 }
733 813
734 // TODO(gavinp): Update this test after abandon has an effect on Prerenders, 814 // TODO(gavinp): Re-enabmed this test after abandon has an effect on Prerenders,
735 // like shortening the timeouts. 815 // like shortening the timeouts.
736 TEST_F(PrerenderTest, LinkManagerAbandon) { 816 TEST_F(PrerenderTest, LinkManagerAbandon) {
737 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 817 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
738 GURL url("http://www.myexample.com"); 818 GURL url("http://www.myexample.com");
739 DummyPrerenderContents* prerender_contents = 819 DummyPrerenderContents* prerender_contents =
740 prerender_manager()->CreateNextPrerenderContents( 820 prerender_manager()->CreateNextPrerenderContents(
741 url, FINAL_STATUS_USED); 821 url, FINAL_STATUS_USED);
742 822
743 EXPECT_TRUE(AddSimplePrerender(url)); 823 EXPECT_TRUE(AddSimplePrerender(url));
744 824
745 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 825 EXPECT_TRUE(prerender_contents->prerendering_has_started());
746 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 826 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
747 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 827 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
748 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 828 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
749 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, 829 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
750 last_prerender_id()); 830 last_prerender_id());
751 831
752 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 832 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
753 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 833 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
754 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 834 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
755 } 835 }
756 836
757 TEST_F(PrerenderTest, LinkManagerCancelTwice) { 837 TEST_F(PrerenderTest, LinkManagerCancelTwice) {
758 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 838 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
759 GURL url("http://www.myexample.com"); 839 GURL url("http://www.myexample.com");
760 DummyPrerenderContents* prerender_contents = 840 DummyPrerenderContents* prerender_contents =
761 prerender_manager()->CreateNextPrerenderContents( 841 prerender_manager()->CreateNextPrerenderContents(
762 url, FINAL_STATUS_CANCELLED); 842 url, FINAL_STATUS_CANCELLED);
763 843
764 EXPECT_TRUE(AddSimplePrerender(url)); 844 EXPECT_TRUE(AddSimplePrerender(url));
765 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 845 EXPECT_TRUE(prerender_contents->prerendering_has_started());
766 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 846 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
767 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 847 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
768 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 848 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
769 last_prerender_id()); 849 last_prerender_id());
770 850
771 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 851 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
772 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 852 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
773 DummyPrerenderContents* null = NULL; 853 DummyPrerenderContents* null = NULL;
774 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 854 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
775 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 855 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
776 last_prerender_id()); 856 last_prerender_id());
777 } 857 }
778 858
779 TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwice) { 859 TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwice) {
780 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 860 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
781 GURL url("http://www.myexample.com"); 861 GURL url("http://www.myexample.com");
782 DummyPrerenderContents* prerender_contents = 862 DummyPrerenderContents* prerender_contents =
783 prerender_manager()->CreateNextPrerenderContents( 863 prerender_manager()->CreateNextPrerenderContents(
784 url, FINAL_STATUS_CANCELLED); 864 url, FINAL_STATUS_CANCELLED);
(...skipping 14 matching lines...) Expand all
799 first_prerender_id); 879 first_prerender_id);
800 880
801 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 881 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
802 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 882 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
803 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 883 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
804 second_prerender_id); 884 second_prerender_id);
805 885
806 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 886 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
807 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 887 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
808 DummyPrerenderContents* null = NULL; 888 DummyPrerenderContents* null = NULL;
809 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 889 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
810 } 890 }
811 891
812 TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwiceThenAbandonTwice) { 892 TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwiceThenAbandonTwice) {
813 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 893 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
814 GURL url("http://www.myexample.com"); 894 GURL url("http://www.myexample.com");
815 DummyPrerenderContents* prerender_contents = 895 DummyPrerenderContents* prerender_contents =
816 prerender_manager()->CreateNextPrerenderContents( 896 prerender_manager()->CreateNextPrerenderContents(
817 url, FINAL_STATUS_CANCELLED); 897 url, FINAL_STATUS_CANCELLED);
818 898
819 EXPECT_TRUE(AddSimplePrerender(url)); 899 EXPECT_TRUE(AddSimplePrerender(url));
(...skipping 22 matching lines...) Expand all
842 first_prerender_id); 922 first_prerender_id);
843 923
844 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 924 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
845 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 925 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
846 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, 926 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
847 second_prerender_id); 927 second_prerender_id);
848 928
849 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 929 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
850 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 930 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
851 DummyPrerenderContents* null = NULL; 931 DummyPrerenderContents* null = NULL;
852 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 932 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
853 } 933 }
854 934
855 // TODO(gavinp): Update this test after abandon has an effect on Prerenders, 935 // TODO(gavinp): Update this test after abandon has an effect on Prerenders,
856 // like shortening the timeouts. 936 // like shortening the timeouts.
857 TEST_F(PrerenderTest, LinkManagerAddTwiceAbandonTwice) { 937 TEST_F(PrerenderTest, LinkManagerAddTwiceAbandonTwice) {
858 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 938 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
859 GURL url("http://www.myexample.com"); 939 GURL url("http://www.myexample.com");
860 DummyPrerenderContents* prerender_contents = 940 DummyPrerenderContents* prerender_contents =
861 prerender_manager()->CreateNextPrerenderContents( 941 prerender_manager()->CreateNextPrerenderContents(
862 url, FINAL_STATUS_USED); 942 url, FINAL_STATUS_USED);
(...skipping 13 matching lines...) Expand all
876 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, 956 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
877 first_prerender_id); 957 first_prerender_id);
878 958
879 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 959 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
880 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 960 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
881 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, 961 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
882 second_prerender_id); 962 second_prerender_id);
883 963
884 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 964 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
885 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 965 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
886 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 966 ASSERT_EQ(prerender_contents, prerender_manager()->FindAndUseEntry(url));
887 } 967 }
888 968
889 // TODO(gavinp): After abandon shortens the expire time on a Prerender, 969 // TODO(gavinp): After abandon shortens the expire time on a Prerender,
890 // add a series of tests testing advancing the time by either the abandon 970 // add a series of tests testing advancing the time by either the abandon
891 // or normal expire, and verifying the expected behaviour with groups 971 // or normal expire, and verifying the expected behaviour with groups
892 // of links. 972 // of links.
893 TEST_F(PrerenderTest, LinkManagerExpireThenCancel) { 973 TEST_F(PrerenderTest, LinkManagerExpireThenCancel) {
894 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 974 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
895 GURL url("http://www.myexample.com"); 975 GURL url("http://www.myexample.com");
896 DummyPrerenderContents* prerender_contents = 976 DummyPrerenderContents* prerender_contents =
897 prerender_manager()->CreateNextPrerenderContents( 977 prerender_manager()->CreateNextPrerenderContents(
898 url, FINAL_STATUS_TIMED_OUT); 978 url, FINAL_STATUS_TIMED_OUT);
899 979
900 EXPECT_TRUE(AddSimplePrerender(url)); 980 EXPECT_TRUE(AddSimplePrerender(url));
901 981
902 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 982 EXPECT_TRUE(prerender_contents->prerendering_has_started());
903 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 983 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
904 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 984 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
905 prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() + 985 prerender_manager()->AdvanceTimeTicks(prerender_manager()->GetMaxAge() +
906 base::TimeDelta::FromSeconds(1)); 986 base::TimeDelta::FromSeconds(1));
907 987
908 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 988 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
909 DummyPrerenderContents* null = NULL; 989 DummyPrerenderContents* null = NULL;
910 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 990 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
911 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 991 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
912 last_prerender_id()); 992 last_prerender_id());
913 993
914 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 994 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
915 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 995 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
916 } 996 }
917 997
918 TEST_F(PrerenderTest, LinkManagerExpireThenAddAgain) { 998 TEST_F(PrerenderTest, LinkManagerExpireThenAddAgain) {
919 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 999 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
920 GURL url("http://www.myexample.com"); 1000 GURL url("http://www.myexample.com");
921 DummyPrerenderContents* first_prerender_contents = 1001 DummyPrerenderContents* first_prerender_contents =
922 prerender_manager()->CreateNextPrerenderContents( 1002 prerender_manager()->CreateNextPrerenderContents(
923 url, FINAL_STATUS_TIMED_OUT); 1003 url, FINAL_STATUS_TIMED_OUT);
924 EXPECT_TRUE(AddSimplePrerender(url)); 1004 EXPECT_TRUE(AddSimplePrerender(url));
925 EXPECT_TRUE(first_prerender_contents->prerendering_has_started()); 1005 EXPECT_TRUE(first_prerender_contents->prerendering_has_started());
926 EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled()); 1006 EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled());
927 ASSERT_EQ(first_prerender_contents, prerender_manager()->FindEntry(url)); 1007 ASSERT_EQ(first_prerender_contents,
928 prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() + 1008 prerender_manager()->FindAndUseEntry(url));
1009 prerender_manager()->AdvanceTimeTicks(prerender_manager()->GetMaxAge() +
929 base::TimeDelta::FromSeconds(1)); 1010 base::TimeDelta::FromSeconds(1));
mmenke 2012/07/10 18:01:13 nit: Fix indent
gavinp 2012/07/11 17:04:00 Done.
930 DummyPrerenderContents* null = NULL; 1011 DummyPrerenderContents* null = NULL;
931 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 1012 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
932 DummyPrerenderContents* second_prerender_contents = 1013 DummyPrerenderContents* second_prerender_contents =
933 prerender_manager()->CreateNextPrerenderContents( 1014 prerender_manager()->CreateNextPrerenderContents(
934 url, FINAL_STATUS_USED); 1015 url, FINAL_STATUS_USED);
935 EXPECT_TRUE(AddSimplePrerender(url)); 1016 EXPECT_TRUE(AddSimplePrerender(url));
936 EXPECT_TRUE(second_prerender_contents->prerendering_has_started()); 1017 EXPECT_TRUE(second_prerender_contents->prerendering_has_started());
937 ASSERT_EQ(second_prerender_contents, prerender_manager()->GetEntry(url)); 1018 ASSERT_EQ(second_prerender_contents,
1019 prerender_manager()->FindAndUseEntry(url));
938 // The PrerenderLinkManager is not empty since we never removed the first 1020 // The PrerenderLinkManager is not empty since we never removed the first
939 // prerender. 1021 // prerender.
940 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 1022 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
941 } 1023 }
942 1024
943 TEST_F(PrerenderTest, LinkManagerCancelThenAddAgain) { 1025 TEST_F(PrerenderTest, LinkManagerCancelThenAddAgain) {
944 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 1026 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
945 GURL url("http://www.myexample.com"); 1027 GURL url("http://www.myexample.com");
946 DummyPrerenderContents* first_prerender_contents = 1028 DummyPrerenderContents* first_prerender_contents =
947 prerender_manager()->CreateNextPrerenderContents( 1029 prerender_manager()->CreateNextPrerenderContents(
948 url, FINAL_STATUS_CANCELLED); 1030 url, FINAL_STATUS_CANCELLED);
949 EXPECT_TRUE(AddSimplePrerender(url)); 1031 EXPECT_TRUE(AddSimplePrerender(url));
950 EXPECT_TRUE(first_prerender_contents->prerendering_has_started()); 1032 EXPECT_TRUE(first_prerender_contents->prerendering_has_started());
951 EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled()); 1033 EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled());
952 ASSERT_EQ(first_prerender_contents, prerender_manager()->FindEntry(url)); 1034 ASSERT_EQ(first_prerender_contents, prerender_manager()->FindEntry(url));
953 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 1035 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
954 last_prerender_id()); 1036 last_prerender_id());
955 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 1037 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
956 EXPECT_TRUE(first_prerender_contents->prerendering_has_been_cancelled()); 1038 EXPECT_TRUE(first_prerender_contents->prerendering_has_been_cancelled());
957 DummyPrerenderContents* null = NULL; 1039 DummyPrerenderContents* null = NULL;
958 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 1040 ASSERT_EQ(null, prerender_manager()->FindEntry(url));
959 DummyPrerenderContents* second_prerender_contents = 1041 DummyPrerenderContents* second_prerender_contents =
960 prerender_manager()->CreateNextPrerenderContents( 1042 prerender_manager()->CreateNextPrerenderContents(
961 url, FINAL_STATUS_USED); 1043 url, FINAL_STATUS_USED);
962 EXPECT_TRUE(AddSimplePrerender(url)); 1044 EXPECT_TRUE(AddSimplePrerender(url));
963 EXPECT_TRUE(second_prerender_contents->prerendering_has_started()); 1045 EXPECT_TRUE(second_prerender_contents->prerendering_has_started());
964 ASSERT_EQ(second_prerender_contents, prerender_manager()->GetEntry(url)); 1046 ASSERT_EQ(second_prerender_contents,
1047 prerender_manager()->FindAndUseEntry(url));
965 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 1048 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
966 } 1049 }
967 1050
968 } // namespace prerender 1051 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698