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

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

Issue 10386171: Remove redundant boolean from unit test code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase and merge Created 8 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
« no previous file with comments | « chrome/browser/prerender/prerender_contents.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_link_manager.h" 10 #include "chrome/browser/prerender/prerender_link_manager.h"
11 #include "chrome/browser/prerender/prerender_manager.h" 11 #include "chrome/browser/prerender/prerender_manager.h"
12 #include "chrome/browser/prerender/prerender_origin.h" 12 #include "chrome/browser/prerender/prerender_origin.h"
13 #include "chrome/common/chrome_switches.h" 13 #include "chrome/common/chrome_switches.h"
14 #include "chrome/test/base/testing_browser_process.h" 14 #include "chrome/test/base/testing_browser_process.h"
15 #include "chrome/test/base/testing_profile.h" 15 #include "chrome/test/base/testing_profile.h"
16 #include "content/public/browser/render_view_host.h" 16 #include "content/public/browser/render_view_host.h"
17 #include "content/test/test_browser_thread.h" 17 #include "content/test/test_browser_thread.h"
18 #include "googleurl/src/gurl.h" 18 #include "googleurl/src/gurl.h"
19 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
20 #include "ui/gfx/size.h" 20 #include "ui/gfx/size.h"
21 21
22 using content::BrowserThread; 22 using content::BrowserThread;
23 using content::Referrer;
23 24
24 namespace prerender { 25 namespace prerender {
25 26
26 namespace { 27 namespace {
27 28
28 class DummyPrerenderContents : public PrerenderContents { 29 class DummyPrerenderContents : public PrerenderContents {
29 public: 30 public:
30 DummyPrerenderContents(PrerenderManager* prerender_manager, 31 DummyPrerenderContents(PrerenderManager* prerender_manager,
31 PrerenderTracker* prerender_tracker, 32 PrerenderTracker* prerender_tracker,
32 const GURL& url, 33 const GURL& url,
33 Origin origin, 34 Origin origin,
34 FinalStatus expected_final_status) 35 FinalStatus expected_final_status)
35 : PrerenderContents(prerender_manager, prerender_tracker, 36 : PrerenderContents(prerender_manager, prerender_tracker,
36 NULL, url, content::Referrer(), 37 NULL, url, Referrer(), origin,
37 origin, PrerenderManager::kNoExperiment), 38 PrerenderManager::kNoExperiment),
38 has_started_(false),
39 expected_final_status_(expected_final_status) { 39 expected_final_status_(expected_final_status) {
40 } 40 }
41 41
42 virtual ~DummyPrerenderContents() { 42 virtual ~DummyPrerenderContents() {
43 EXPECT_EQ(expected_final_status_, final_status()); 43 EXPECT_EQ(expected_final_status_, final_status());
44 } 44 }
45 45
46 virtual void StartPrerendering( 46 virtual void StartPrerendering(
47 int ALLOW_UNUSED creator_child_id, 47 int ALLOW_UNUSED creator_child_id,
48 const gfx::Size& ALLOW_UNUSED size, 48 const gfx::Size& ALLOW_UNUSED size,
49 content::SessionStorageNamespace* ALLOW_UNUSED 49 content::SessionStorageNamespace* ALLOW_UNUSED
50 session_storage_namespace) OVERRIDE { 50 session_storage_namespace) OVERRIDE {
51 has_started_ = true; 51 prerendering_has_started_ = true;
52 } 52 }
53 53
54 virtual bool GetChildId(int* child_id) const OVERRIDE { 54 virtual bool GetChildId(int* child_id) const OVERRIDE {
55 *child_id = 0; 55 *child_id = 0;
56 return true; 56 return true;
57 } 57 }
58 58
59 virtual bool GetRouteId(int* route_id) const OVERRIDE { 59 virtual bool GetRouteId(int* route_id) const OVERRIDE {
60 *route_id = 0; 60 *route_id = 0;
61 return true; 61 return true;
62 } 62 }
63 63
64 bool has_started() const { return has_started_; }
65
66 FinalStatus expected_final_status() const { return expected_final_status_; } 64 FinalStatus expected_final_status() const { return expected_final_status_; }
67 65
68 bool prerendering_has_been_cancelled() const { 66 bool prerendering_has_been_cancelled() const {
69 return PrerenderContents::prerendering_has_been_cancelled(); 67 return PrerenderContents::prerendering_has_been_cancelled();
70 } 68 }
71 69
72 private: 70 private:
73 bool has_started_;
74 FinalStatus expected_final_status_; 71 FinalStatus expected_final_status_;
75 }; 72 };
76 73
77 class TestPrerenderManager : public PrerenderManager { 74 class TestPrerenderManager : public PrerenderManager {
78 public: 75 public:
79 explicit TestPrerenderManager(PrerenderTracker* prerender_tracker) 76 explicit TestPrerenderManager(PrerenderTracker* prerender_tracker)
80 : PrerenderManager(&profile_, prerender_tracker), 77 : PrerenderManager(&profile_, prerender_tracker),
81 time_(base::Time::Now()), 78 time_(base::Time::Now()),
82 time_ticks_(base::TimeTicks::Now()), 79 time_ticks_(base::TimeTicks::Now()),
83 next_prerender_contents_(NULL), 80 next_prerender_contents_(NULL),
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 virtual base::Time GetCurrentTime() const OVERRIDE { 165 virtual base::Time GetCurrentTime() const OVERRIDE {
169 return time_; 166 return time_;
170 } 167 }
171 168
172 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE { 169 virtual base::TimeTicks GetCurrentTimeTicks() const OVERRIDE {
173 return time_ticks_; 170 return time_ticks_;
174 } 171 }
175 172
176 virtual PrerenderContents* CreatePrerenderContents( 173 virtual PrerenderContents* CreatePrerenderContents(
177 const GURL& url, 174 const GURL& url,
178 const content::Referrer& referrer, 175 const Referrer& referrer,
179 Origin origin, 176 Origin origin,
180 uint8 experiment_id) OVERRIDE { 177 uint8 experiment_id) OVERRIDE {
181 DCHECK(next_prerender_contents_.get()); 178 DCHECK(next_prerender_contents_.get());
182 DCHECK_EQ(next_prerender_contents_->prerender_url(), url); 179 DCHECK_EQ(next_prerender_contents_->prerender_url(), url);
183 DCHECK_EQ(next_prerender_contents_->origin(), origin); 180 DCHECK_EQ(next_prerender_contents_->origin(), origin);
184 return next_prerender_contents_.release(); 181 return next_prerender_contents_.release();
185 } 182 }
186 183
187 base::Time time_; 184 base::Time time_;
188 base::TimeTicks time_ticks_; 185 base::TimeTicks time_ticks_;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 GURL("http://www.google.com/"))); 269 GURL("http://www.google.com/")));
273 } 270 }
274 271
275 TEST_F(PrerenderTest, FoundTest) { 272 TEST_F(PrerenderTest, FoundTest) {
276 GURL url("http://www.google.com/"); 273 GURL url("http://www.google.com/");
277 DummyPrerenderContents* prerender_contents = 274 DummyPrerenderContents* prerender_contents =
278 prerender_manager()->CreateNextPrerenderContents( 275 prerender_manager()->CreateNextPrerenderContents(
279 url, 276 url,
280 FINAL_STATUS_USED); 277 FINAL_STATUS_USED);
281 EXPECT_TRUE(AddSimplePrerender(url)); 278 EXPECT_TRUE(AddSimplePrerender(url));
282 EXPECT_TRUE(prerender_contents->has_started()); 279 EXPECT_TRUE(prerender_contents->prerendering_has_started());
283 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 280 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url));
284 } 281 }
285 282
286 // Make sure that if queue a request, and a second prerender request for the 283 // Make sure that if queue a request, and a second prerender request for the
287 // same URL comes in, that we drop the second request and keep the first one. 284 // same URL comes in, that we drop the second request and keep the first one.
288 TEST_F(PrerenderTest, DropSecondRequestTest) { 285 TEST_F(PrerenderTest, DropSecondRequestTest) {
289 GURL url("http://www.google.com/"); 286 GURL url("http://www.google.com/");
290 DummyPrerenderContents* prerender_contents = 287 DummyPrerenderContents* prerender_contents =
291 prerender_manager()->CreateNextPrerenderContents( 288 prerender_manager()->CreateNextPrerenderContents(
292 url, 289 url,
293 FINAL_STATUS_USED); 290 FINAL_STATUS_USED);
294 DummyPrerenderContents* null = NULL; 291 DummyPrerenderContents* null = NULL;
295 EXPECT_TRUE(AddSimplePrerender(url)); 292 EXPECT_TRUE(AddSimplePrerender(url));
296 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 293 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
297 EXPECT_TRUE(prerender_contents->has_started()); 294 EXPECT_TRUE(prerender_contents->prerendering_has_started());
298 295
299 DummyPrerenderContents* prerender_contents1 = 296 DummyPrerenderContents* prerender_contents1 =
300 prerender_manager()->CreateNextPrerenderContents( 297 prerender_manager()->CreateNextPrerenderContents(
301 url, 298 url,
302 FINAL_STATUS_MANAGER_SHUTDOWN); 299 FINAL_STATUS_MANAGER_SHUTDOWN);
303 EXPECT_TRUE(AddSimplePrerender(url)); 300 EXPECT_TRUE(AddSimplePrerender(url));
304 EXPECT_EQ(prerender_contents1, 301 EXPECT_EQ(prerender_contents1,
305 prerender_manager()->next_prerender_contents()); 302 prerender_manager()->next_prerender_contents());
306 EXPECT_FALSE(prerender_contents1->has_started()); 303 EXPECT_FALSE(prerender_contents1->prerendering_has_started());
307 304
308 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 305 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url));
309 } 306 }
310 307
311 // Ensure that we expire a prerendered page after the max. permitted time. 308 // Ensure that we expire a prerendered page after the max. permitted time.
312 TEST_F(PrerenderTest, ExpireTest) { 309 TEST_F(PrerenderTest, ExpireTest) {
313 GURL url("http://www.google.com/"); 310 GURL url("http://www.google.com/");
314 DummyPrerenderContents* prerender_contents = 311 DummyPrerenderContents* prerender_contents =
315 prerender_manager()->CreateNextPrerenderContents( 312 prerender_manager()->CreateNextPrerenderContents(
316 url, 313 url,
317 FINAL_STATUS_TIMED_OUT); 314 FINAL_STATUS_TIMED_OUT);
318 DummyPrerenderContents* null = NULL; 315 DummyPrerenderContents* null = NULL;
319 EXPECT_TRUE(AddSimplePrerender(url)); 316 EXPECT_TRUE(AddSimplePrerender(url));
320 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 317 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
321 EXPECT_TRUE(prerender_contents->has_started()); 318 EXPECT_TRUE(prerender_contents->prerendering_has_started());
322 prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() + 319 prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() +
323 base::TimeDelta::FromSeconds(1)); 320 base::TimeDelta::FromSeconds(1));
324 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 321 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
325 } 322 }
326 323
327 // LRU Test. Make sure that if we prerender more than one request, that 324 // LRU Test. Make sure that if we prerender more than one request, that
328 // the oldest one will be dropped. 325 // the oldest one will be dropped.
329 TEST_F(PrerenderTest, DropOldestRequestTest) { 326 TEST_F(PrerenderTest, DropOldestRequestTest) {
330 GURL url("http://www.google.com/"); 327 GURL url("http://www.google.com/");
331 DummyPrerenderContents* prerender_contents = 328 DummyPrerenderContents* prerender_contents =
332 prerender_manager()->CreateNextPrerenderContents( 329 prerender_manager()->CreateNextPrerenderContents(
333 url, 330 url,
334 FINAL_STATUS_EVICTED); 331 FINAL_STATUS_EVICTED);
335 DummyPrerenderContents* null = NULL; 332 DummyPrerenderContents* null = NULL;
336 EXPECT_TRUE(AddSimplePrerender(url)); 333 EXPECT_TRUE(AddSimplePrerender(url));
337 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 334 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
338 EXPECT_TRUE(prerender_contents->has_started()); 335 EXPECT_TRUE(prerender_contents->prerendering_has_started());
339 336
340 GURL url1("http://news.google.com/"); 337 GURL url1("http://news.google.com/");
341 DummyPrerenderContents* prerender_contents1 = 338 DummyPrerenderContents* prerender_contents1 =
342 prerender_manager()->CreateNextPrerenderContents( 339 prerender_manager()->CreateNextPrerenderContents(
343 url1, 340 url1,
344 FINAL_STATUS_USED); 341 FINAL_STATUS_USED);
345 EXPECT_TRUE(AddSimplePrerender(url1)); 342 EXPECT_TRUE(AddSimplePrerender(url1));
346 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 343 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
347 EXPECT_TRUE(prerender_contents1->has_started()); 344 EXPECT_TRUE(prerender_contents1->prerendering_has_started());
348 345
349 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 346 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
350 ASSERT_EQ(prerender_contents1, prerender_manager()->GetEntry(url1)); 347 ASSERT_EQ(prerender_contents1, prerender_manager()->GetEntry(url1));
351 } 348 }
352 349
353 // Two element prerender test. Ensure that the LRU operates correctly if we 350 // Two element prerender test. Ensure that the LRU operates correctly if we
354 // permit 2 elements to be kept prerendered. 351 // permit 2 elements to be kept prerendered.
355 TEST_F(PrerenderTest, TwoElementPrerenderTest) { 352 TEST_F(PrerenderTest, TwoElementPrerenderTest) {
356 prerender_manager()->mutable_config().max_elements = 2; 353 prerender_manager()->mutable_config().max_elements = 2;
357 GURL url("http://www.google.com/"); 354 GURL url("http://www.google.com/");
358 DummyPrerenderContents* prerender_contents = 355 DummyPrerenderContents* prerender_contents =
359 prerender_manager()->CreateNextPrerenderContents( 356 prerender_manager()->CreateNextPrerenderContents(
360 url, 357 url,
361 FINAL_STATUS_EVICTED); 358 FINAL_STATUS_EVICTED);
362 DummyPrerenderContents* null = NULL; 359 DummyPrerenderContents* null = NULL;
363 EXPECT_TRUE(AddSimplePrerender(url)); 360 EXPECT_TRUE(AddSimplePrerender(url));
364 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 361 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
365 EXPECT_TRUE(prerender_contents->has_started()); 362 EXPECT_TRUE(prerender_contents->prerendering_has_started());
366 363
367 GURL url1("http://news.google.com/"); 364 GURL url1("http://news.google.com/");
368 DummyPrerenderContents* prerender_contents1 = 365 DummyPrerenderContents* prerender_contents1 =
369 prerender_manager()->CreateNextPrerenderContents( 366 prerender_manager()->CreateNextPrerenderContents(
370 url1, 367 url1,
371 FINAL_STATUS_USED); 368 FINAL_STATUS_USED);
372 EXPECT_TRUE(AddSimplePrerender(url1)); 369 EXPECT_TRUE(AddSimplePrerender(url1));
373 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 370 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
374 EXPECT_TRUE(prerender_contents1->has_started()); 371 EXPECT_TRUE(prerender_contents1->prerendering_has_started());
375 372
376 GURL url2("http://images.google.com/"); 373 GURL url2("http://images.google.com/");
377 DummyPrerenderContents* prerender_contents2 = 374 DummyPrerenderContents* prerender_contents2 =
378 prerender_manager()->CreateNextPrerenderContents( 375 prerender_manager()->CreateNextPrerenderContents(
379 url2, 376 url2,
380 FINAL_STATUS_USED); 377 FINAL_STATUS_USED);
381 EXPECT_TRUE(AddSimplePrerender(url2)); 378 EXPECT_TRUE(AddSimplePrerender(url2));
382 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 379 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
383 EXPECT_TRUE(prerender_contents2->has_started()); 380 EXPECT_TRUE(prerender_contents2->prerendering_has_started());
384 381
385 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 382 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
386 ASSERT_EQ(prerender_contents1, prerender_manager()->GetEntry(url1)); 383 ASSERT_EQ(prerender_contents1, prerender_manager()->GetEntry(url1));
387 ASSERT_EQ(prerender_contents2, prerender_manager()->GetEntry(url2)); 384 ASSERT_EQ(prerender_contents2, prerender_manager()->GetEntry(url2));
388 } 385 }
389 386
390 TEST_F(PrerenderTest, AliasURLTest) { 387 TEST_F(PrerenderTest, AliasURLTest) {
391 GURL url("http://www.google.com/"); 388 GURL url("http://www.google.com/");
392 GURL alias_url1("http://www.google.com/index.html"); 389 GURL alias_url1("http://www.google.com/index.html");
393 GURL alias_url2("http://google.com/"); 390 GURL alias_url2("http://google.com/");
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 // Ensure that we ignore prerender requests within the rate limit. 422 // Ensure that we ignore prerender requests within the rate limit.
426 TEST_F(PrerenderTest, RateLimitInWindowTest) { 423 TEST_F(PrerenderTest, RateLimitInWindowTest) {
427 GURL url("http://www.google.com/"); 424 GURL url("http://www.google.com/");
428 DummyPrerenderContents* prerender_contents = 425 DummyPrerenderContents* prerender_contents =
429 prerender_manager()->CreateNextPrerenderContents( 426 prerender_manager()->CreateNextPrerenderContents(
430 url, 427 url,
431 FINAL_STATUS_MANAGER_SHUTDOWN); 428 FINAL_STATUS_MANAGER_SHUTDOWN);
432 DummyPrerenderContents* null = NULL; 429 DummyPrerenderContents* null = NULL;
433 EXPECT_TRUE(AddSimplePrerender(url)); 430 EXPECT_TRUE(AddSimplePrerender(url));
434 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 431 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
435 EXPECT_TRUE(prerender_contents->has_started()); 432 EXPECT_TRUE(prerender_contents->prerendering_has_started());
436 433
437 prerender_manager()->set_rate_limit_enabled(true); 434 prerender_manager()->set_rate_limit_enabled(true);
438 prerender_manager()->AdvanceTimeTicks(base::TimeDelta::FromMilliseconds(1)); 435 prerender_manager()->AdvanceTimeTicks(base::TimeDelta::FromMilliseconds(1));
439 436
440 GURL url1("http://news.google.com/"); 437 GURL url1("http://news.google.com/");
441 prerender_manager()->CreateNextPrerenderContents( 438 prerender_manager()->CreateNextPrerenderContents(
442 url, 439 url,
443 FINAL_STATUS_MANAGER_SHUTDOWN); 440 FINAL_STATUS_MANAGER_SHUTDOWN);
444 EXPECT_FALSE(AddSimplePrerender(url1)); 441 EXPECT_FALSE(AddSimplePrerender(url1));
445 prerender_manager()->set_rate_limit_enabled(false); 442 prerender_manager()->set_rate_limit_enabled(false);
446 } 443 }
447 444
448 // Ensure that we don't ignore prerender requests outside the rate limit. 445 // Ensure that we don't ignore prerender requests outside the rate limit.
449 TEST_F(PrerenderTest, RateLimitOutsideWindowTest) { 446 TEST_F(PrerenderTest, RateLimitOutsideWindowTest) {
450 GURL url("http://www.google.com/"); 447 GURL url("http://www.google.com/");
451 DummyPrerenderContents* prerender_contents = 448 DummyPrerenderContents* prerender_contents =
452 prerender_manager()->CreateNextPrerenderContents( 449 prerender_manager()->CreateNextPrerenderContents(
453 url, 450 url,
454 FINAL_STATUS_EVICTED); 451 FINAL_STATUS_EVICTED);
455 DummyPrerenderContents* null = NULL; 452 DummyPrerenderContents* null = NULL;
456 EXPECT_TRUE(AddSimplePrerender(url)); 453 EXPECT_TRUE(AddSimplePrerender(url));
457 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 454 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
458 EXPECT_TRUE(prerender_contents->has_started()); 455 EXPECT_TRUE(prerender_contents->prerendering_has_started());
459 456
460 prerender_manager()->set_rate_limit_enabled(true); 457 prerender_manager()->set_rate_limit_enabled(true);
461 prerender_manager()->AdvanceTimeTicks( 458 prerender_manager()->AdvanceTimeTicks(
462 base::TimeDelta::FromMilliseconds(2000)); 459 base::TimeDelta::FromMilliseconds(2000));
463 460
464 GURL url1("http://news.google.com/"); 461 GURL url1("http://news.google.com/");
465 DummyPrerenderContents* rate_limit_prerender_contents = 462 DummyPrerenderContents* rate_limit_prerender_contents =
466 prerender_manager()->CreateNextPrerenderContents( 463 prerender_manager()->CreateNextPrerenderContents(
467 url1, 464 url1,
468 FINAL_STATUS_MANAGER_SHUTDOWN); 465 FINAL_STATUS_MANAGER_SHUTDOWN);
469 EXPECT_TRUE(AddSimplePrerender(url1)); 466 EXPECT_TRUE(AddSimplePrerender(url1));
470 EXPECT_EQ(null, prerender_manager()->next_prerender_contents()); 467 EXPECT_EQ(null, prerender_manager()->next_prerender_contents());
471 EXPECT_TRUE(rate_limit_prerender_contents->has_started()); 468 EXPECT_TRUE(rate_limit_prerender_contents->prerendering_has_started());
472 prerender_manager()->set_rate_limit_enabled(false); 469 prerender_manager()->set_rate_limit_enabled(false);
473 } 470 }
474 471
475 TEST_F(PrerenderTest, PendingPrerenderTest) { 472 TEST_F(PrerenderTest, PendingPrerenderTest) {
476 GURL url("http://www.google.com/"); 473 GURL url("http://www.google.com/");
477 DummyPrerenderContents* prerender_contents = 474 DummyPrerenderContents* prerender_contents =
478 prerender_manager()->CreateNextPrerenderContents( 475 prerender_manager()->CreateNextPrerenderContents(
479 url, 476 url,
480 FINAL_STATUS_USED); 477 FINAL_STATUS_USED);
481 EXPECT_TRUE(AddSimplePrerender(url)); 478 EXPECT_TRUE(AddSimplePrerender(url));
482 479
483 int child_id; 480 int child_id;
484 int route_id; 481 int route_id;
485 ASSERT_TRUE(prerender_contents->GetChildId(&child_id)); 482 ASSERT_TRUE(prerender_contents->GetChildId(&child_id));
486 ASSERT_TRUE(prerender_contents->GetRouteId(&route_id)); 483 ASSERT_TRUE(prerender_contents->GetRouteId(&route_id));
487 484
488 GURL pending_url("http://news.google.com/"); 485 GURL pending_url("http://news.google.com/");
489 486
490 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender( 487 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender(
491 child_id, route_id, 488 child_id, route_id,
492 pending_url, content::Referrer(url, WebKit::WebReferrerPolicyDefault), 489 pending_url, Referrer(url, WebKit::WebReferrerPolicyDefault),
493 gfx::Size())); 490 gfx::Size()));
494 491
495 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url)); 492 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url));
496 EXPECT_TRUE(prerender_contents->has_started()); 493 EXPECT_TRUE(prerender_contents->prerendering_has_started());
497 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 494 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url));
498 } 495 }
499 496
500 // Tests that a PrerenderManager created for a browser session in the control 497 // Tests that a PrerenderManager created for a browser session in the control
501 // group works as expected. 498 // group works as expected.
502 TEST_F(PrerenderTest, ControlGroup) { 499 TEST_F(PrerenderTest, ControlGroup) {
503 RestorePrerenderMode restore_prerender_mode; 500 RestorePrerenderMode restore_prerender_mode;
504 PrerenderManager::SetMode( 501 PrerenderManager::SetMode(
505 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); 502 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP);
506 GURL url("http://www.google.com/"); 503 GURL url("http://www.google.com/");
507 DummyPrerenderContents* prerender_contents = 504 DummyPrerenderContents* prerender_contents =
508 prerender_manager()->CreateNextPrerenderContents( 505 prerender_manager()->CreateNextPrerenderContents(
509 url, 506 url,
510 FINAL_STATUS_MANAGER_SHUTDOWN); 507 FINAL_STATUS_MANAGER_SHUTDOWN);
511 EXPECT_TRUE(AddSimplePrerender(url)); 508 EXPECT_TRUE(AddSimplePrerender(url));
512 EXPECT_FALSE(prerender_contents->has_started()); 509 EXPECT_FALSE(prerender_contents->prerendering_has_started());
513 } 510 }
514 511
515 // Tests that prerendering is cancelled when the source render view does not 512 // Tests that prerendering is cancelled when the source render view does not
516 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be 513 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be
517 // triggered. 514 // triggered.
518 TEST_F(PrerenderTest, SourceRenderViewClosed) { 515 TEST_F(PrerenderTest, SourceRenderViewClosed) {
519 GURL url("http://www.google.com/"); 516 GURL url("http://www.google.com/");
520 prerender_manager()->CreateNextPrerenderContents( 517 prerender_manager()->CreateNextPrerenderContents(
521 url, 518 url,
522 FINAL_STATUS_MANAGER_SHUTDOWN); 519 FINAL_STATUS_MANAGER_SHUTDOWN);
523 EXPECT_FALSE(prerender_link_manager()->OnAddPrerender( 520 EXPECT_FALSE(prerender_link_manager()->OnAddPrerender(
524 100, GetNextPrerenderID(), url, 521 100, GetNextPrerenderID(), url,
525 content::Referrer(), gfx::Size(), 200)); 522 Referrer(), gfx::Size(), 200));
526 } 523 }
527 524
528 // Tests that the prerender manager ignores fragment references when matching 525 // Tests that the prerender manager ignores fragment references when matching
529 // prerender URLs in the case the fragment is not in the prerender URL. 526 // prerender URLs in the case the fragment is not in the prerender URL.
530 TEST_F(PrerenderTest, PageMatchesFragmentTest) { 527 TEST_F(PrerenderTest, PageMatchesFragmentTest) {
531 GURL url("http://www.google.com/"); 528 GURL url("http://www.google.com/");
532 GURL fragment_url("http://www.google.com/#test"); 529 GURL fragment_url("http://www.google.com/#test");
533 530
534 DummyPrerenderContents* prerender_contents = 531 DummyPrerenderContents* prerender_contents =
535 prerender_manager()->CreateNextPrerenderContents(url, 532 prerender_manager()->CreateNextPrerenderContents(url,
536 FINAL_STATUS_USED); 533 FINAL_STATUS_USED);
537 EXPECT_TRUE(AddSimplePrerender(url)); 534 EXPECT_TRUE(AddSimplePrerender(url));
538 EXPECT_TRUE(prerender_contents->has_started()); 535 EXPECT_TRUE(prerender_contents->prerendering_has_started());
539 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(fragment_url)); 536 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(fragment_url));
540 } 537 }
541 538
542 // Tests that the prerender manager ignores fragment references when matching 539 // Tests that the prerender manager ignores fragment references when matching
543 // prerender URLs in the case the fragment is in the prerender URL. 540 // prerender URLs in the case the fragment is in the prerender URL.
544 // TODO(gavinp): Re-enable this in the Prerender API once we're officially 541 // TODO(gavinp): Re-enable this in the Prerender API once we're officially
545 // fragment clean. 542 // fragment clean.
546 TEST_F(PrerenderTest, DISABLED_FragmentMatchesPageTest) { 543 TEST_F(PrerenderTest, DISABLED_FragmentMatchesPageTest) {
547 GURL url("http://www.google.com/"); 544 GURL url("http://www.google.com/");
548 GURL fragment_url("http://www.google.com/#test"); 545 GURL fragment_url("http://www.google.com/#test");
549 546
550 DummyPrerenderContents* prerender_contents = 547 DummyPrerenderContents* prerender_contents =
551 prerender_manager()->CreateNextPrerenderContents(fragment_url, 548 prerender_manager()->CreateNextPrerenderContents(fragment_url,
552 FINAL_STATUS_USED); 549 FINAL_STATUS_USED);
553 EXPECT_TRUE(AddSimplePrerender(fragment_url)); 550 EXPECT_TRUE(AddSimplePrerender(fragment_url));
554 EXPECT_TRUE(prerender_contents->has_started()); 551 EXPECT_TRUE(prerender_contents->prerendering_has_started());
555 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 552 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url));
556 } 553 }
557 554
558 // Tests that the prerender manager ignores fragment references when matching 555 // Tests that the prerender manager ignores fragment references when matching
559 // prerender URLs in the case the fragment is in both URLs. 556 // prerender URLs in the case the fragment is in both URLs.
560 // TODO(gavinp): Re-enable this in the Prerender API once we're officially 557 // TODO(gavinp): Re-enable this in the Prerender API once we're officially
561 // fragment clean. 558 // fragment clean.
562 TEST_F(PrerenderTest, DISABLED_FragmentMatchesFragmentTest) { 559 TEST_F(PrerenderTest, DISABLED_FragmentMatchesFragmentTest) {
563 GURL fragment_url("http://www.google.com/#test"); 560 GURL fragment_url("http://www.google.com/#test");
564 GURL other_fragment_url("http://www.google.com/#other_test"); 561 GURL other_fragment_url("http://www.google.com/#other_test");
565 562
566 DummyPrerenderContents* prerender_contents = 563 DummyPrerenderContents* prerender_contents =
567 prerender_manager()->CreateNextPrerenderContents(fragment_url, 564 prerender_manager()->CreateNextPrerenderContents(fragment_url,
568 FINAL_STATUS_USED); 565 FINAL_STATUS_USED);
569 EXPECT_TRUE(AddSimplePrerender(fragment_url)); 566 EXPECT_TRUE(AddSimplePrerender(fragment_url));
570 EXPECT_TRUE(prerender_contents->has_started()); 567 EXPECT_TRUE(prerender_contents->prerendering_has_started());
571 ASSERT_EQ(prerender_contents, 568 ASSERT_EQ(prerender_contents,
572 prerender_manager()->GetEntry(other_fragment_url)); 569 prerender_manager()->GetEntry(other_fragment_url));
573 } 570 }
574 571
575 // Make sure that clearing works as expected. 572 // Make sure that clearing works as expected.
576 TEST_F(PrerenderTest, ClearTest) { 573 TEST_F(PrerenderTest, ClearTest) {
577 GURL url("http://www.google.com/"); 574 GURL url("http://www.google.com/");
578 DummyPrerenderContents* prerender_contents = 575 DummyPrerenderContents* prerender_contents =
579 prerender_manager()->CreateNextPrerenderContents( 576 prerender_manager()->CreateNextPrerenderContents(
580 url, 577 url,
581 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED); 578 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED);
582 EXPECT_TRUE(AddSimplePrerender(url)); 579 EXPECT_TRUE(AddSimplePrerender(url));
583 EXPECT_TRUE(prerender_contents->has_started()); 580 EXPECT_TRUE(prerender_contents->prerendering_has_started());
584 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS); 581 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS);
585 DummyPrerenderContents* null = NULL; 582 DummyPrerenderContents* null = NULL;
586 EXPECT_EQ(null, prerender_manager()->FindEntry(url)); 583 EXPECT_EQ(null, prerender_manager()->FindEntry(url));
587 } 584 }
588 585
589 // Make sure canceling works as expected. 586 // Make sure canceling works as expected.
590 TEST_F(PrerenderTest, CancelAllTest) { 587 TEST_F(PrerenderTest, CancelAllTest) {
591 GURL url("http://www.google.com/"); 588 GURL url("http://www.google.com/");
592 DummyPrerenderContents* prerender_contents = 589 DummyPrerenderContents* prerender_contents =
593 prerender_manager()->CreateNextPrerenderContents( 590 prerender_manager()->CreateNextPrerenderContents(
594 url, FINAL_STATUS_CANCELLED); 591 url, FINAL_STATUS_CANCELLED);
595 EXPECT_TRUE(AddSimplePrerender(url)); 592 EXPECT_TRUE(AddSimplePrerender(url));
596 EXPECT_TRUE(prerender_contents->has_started()); 593 EXPECT_TRUE(prerender_contents->prerendering_has_started());
597 prerender_manager()->CancelAllPrerenders(); 594 prerender_manager()->CancelAllPrerenders();
598 const DummyPrerenderContents* null = NULL; 595 const DummyPrerenderContents* null = NULL;
599 EXPECT_EQ(null, prerender_manager()->FindEntry(url)); 596 EXPECT_EQ(null, prerender_manager()->FindEntry(url));
600 } 597 }
601 598
602 // Make sure canceling for omnibox works as expected. 599 // Make sure canceling for omnibox works as expected.
603 TEST_F(PrerenderTest, CancelOmniboxRemovesOmniboxTest) { 600 TEST_F(PrerenderTest, CancelOmniboxRemovesOmniboxTest) {
604 // Check canceling removes the Omnibox url. 601 // Check canceling removes the Omnibox url.
605 GURL url("http://www.google.com/"); 602 GURL url("http://www.google.com/");
606 DummyPrerenderContents* prerender_contents = 603 DummyPrerenderContents* prerender_contents =
607 prerender_manager()->CreateNextPrerenderContents( 604 prerender_manager()->CreateNextPrerenderContents(
608 url, ORIGIN_OMNIBOX, FINAL_STATUS_CANCELLED); 605 url, ORIGIN_OMNIBOX, FINAL_STATUS_CANCELLED);
609 EXPECT_TRUE(prerender_manager()->AddPrerenderFromOmnibox(url, NULL)); 606 EXPECT_TRUE(prerender_manager()->AddPrerenderFromOmnibox(url, NULL));
610 EXPECT_TRUE(prerender_contents->has_started()); 607 EXPECT_TRUE(prerender_contents->prerendering_has_started());
611 prerender_manager()->CancelOmniboxPrerenders(); 608 prerender_manager()->CancelOmniboxPrerenders();
612 const DummyPrerenderContents* null = NULL; 609 const DummyPrerenderContents* null = NULL;
613 EXPECT_EQ(null, prerender_manager()->FindEntry(url)); 610 EXPECT_EQ(null, prerender_manager()->FindEntry(url));
614 } 611 }
615 612
616 TEST_F(PrerenderTest, CancelOmniboxDoesNotRemoveLinkTest) { 613 TEST_F(PrerenderTest, CancelOmniboxDoesNotRemoveLinkTest) {
617 GURL url("http://www.google.com/"); 614 GURL url("http://www.google.com/");
618 DummyPrerenderContents* prerender_contents = 615 DummyPrerenderContents* prerender_contents =
619 prerender_manager()->CreateNextPrerenderContents( 616 prerender_manager()->CreateNextPrerenderContents(
620 url, ORIGIN_LINK_REL_PRERENDER, FINAL_STATUS_MANAGER_SHUTDOWN); 617 url, ORIGIN_LINK_REL_PRERENDER, FINAL_STATUS_MANAGER_SHUTDOWN);
621 EXPECT_TRUE(AddSimplePrerender(url)); 618 EXPECT_TRUE(AddSimplePrerender(url));
622 EXPECT_TRUE(prerender_contents->has_started()); 619 EXPECT_TRUE(prerender_contents->prerendering_has_started());
623 prerender_manager()->CancelOmniboxPrerenders(); 620 prerender_manager()->CancelOmniboxPrerenders();
624 const DummyPrerenderContents* null = NULL; 621 const DummyPrerenderContents* null = NULL;
625 EXPECT_NE(null, prerender_manager()->FindEntry(url)); 622 EXPECT_NE(null, prerender_manager()->FindEntry(url));
626 } 623 }
627 624
628 TEST_F(PrerenderTest, OmniboxNotAllowedWhenDisabled) { 625 TEST_F(PrerenderTest, OmniboxNotAllowedWhenDisabled) {
629 prerender_manager()->set_enabled(false); 626 prerender_manager()->set_enabled(false);
630 EXPECT_FALSE(prerender_manager()->AddPrerenderFromOmnibox( 627 EXPECT_FALSE(prerender_manager()->AddPrerenderFromOmnibox(
631 GURL("http://www.example.com"), NULL)); 628 GURL("http://www.example.com"), NULL));
632 } 629 }
633 630
634 TEST_F(PrerenderTest, LinkRelNotAllowedWhenDisabled) { 631 TEST_F(PrerenderTest, LinkRelNotAllowedWhenDisabled) {
635 prerender_manager()->set_enabled(false); 632 prerender_manager()->set_enabled(false);
636 EXPECT_FALSE(AddSimplePrerender( 633 EXPECT_FALSE(AddSimplePrerender(
637 GURL("http://www.example.com"))); 634 GURL("http://www.example.com")));
638 } 635 }
639 636
640 TEST_F(PrerenderTest, LinkManagerCancel) { 637 TEST_F(PrerenderTest, LinkManagerCancel) {
641 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 638 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
642 GURL url("http://www.myexample.com"); 639 GURL url("http://www.myexample.com");
643 DummyPrerenderContents* prerender_contents = 640 DummyPrerenderContents* prerender_contents =
644 prerender_manager()->CreateNextPrerenderContents( 641 prerender_manager()->CreateNextPrerenderContents(
645 url, FINAL_STATUS_CANCELLED); 642 url, FINAL_STATUS_CANCELLED);
646 643
647 EXPECT_TRUE(AddSimplePrerender(url)); 644 EXPECT_TRUE(AddSimplePrerender(url));
648 645
649 EXPECT_TRUE(prerender_contents->has_started()); 646 EXPECT_TRUE(prerender_contents->prerendering_has_started());
650 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 647 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
651 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 648 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
652 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 649 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
653 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 650 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
654 last_prerender_id()); 651 last_prerender_id());
655 652
656 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 653 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
657 DummyPrerenderContents* null = NULL; 654 DummyPrerenderContents* null = NULL;
658 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 655 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
659 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 656 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
660 } 657 }
661 658
662 TEST_F(PrerenderTest, LinkManagerCancelThenAbandon) { 659 TEST_F(PrerenderTest, LinkManagerCancelThenAbandon) {
663 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 660 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
664 GURL url("http://www.myexample.com"); 661 GURL url("http://www.myexample.com");
665 DummyPrerenderContents* prerender_contents = 662 DummyPrerenderContents* prerender_contents =
666 prerender_manager()->CreateNextPrerenderContents( 663 prerender_manager()->CreateNextPrerenderContents(
667 url, FINAL_STATUS_CANCELLED); 664 url, FINAL_STATUS_CANCELLED);
668 665
669 EXPECT_TRUE(AddSimplePrerender(url)); 666 EXPECT_TRUE(AddSimplePrerender(url));
670 667
671 EXPECT_TRUE(prerender_contents->has_started()); 668 EXPECT_TRUE(prerender_contents->prerendering_has_started());
672 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 669 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
673 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 670 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
674 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 671 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
675 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 672 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
676 last_prerender_id()); 673 last_prerender_id());
677 674
678 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 675 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
679 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 676 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
680 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, 677 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
681 last_prerender_id()); 678 last_prerender_id());
682 679
683 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 680 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
684 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 681 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
685 DummyPrerenderContents* null = NULL; 682 DummyPrerenderContents* null = NULL;
686 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 683 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
687 } 684 }
688 685
689 // TODO(gavinp): Update this test after abandon has an effect on Prerenders, 686 // TODO(gavinp): Update this test after abandon has an effect on Prerenders,
690 // like shortening the timeouts. 687 // like shortening the timeouts.
691 TEST_F(PrerenderTest, LinkManagerAbandon) { 688 TEST_F(PrerenderTest, LinkManagerAbandon) {
692 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 689 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
693 GURL url("http://www.myexample.com"); 690 GURL url("http://www.myexample.com");
694 DummyPrerenderContents* prerender_contents = 691 DummyPrerenderContents* prerender_contents =
695 prerender_manager()->CreateNextPrerenderContents( 692 prerender_manager()->CreateNextPrerenderContents(
696 url, FINAL_STATUS_USED); 693 url, FINAL_STATUS_USED);
697 694
698 EXPECT_TRUE(AddSimplePrerender(url)); 695 EXPECT_TRUE(AddSimplePrerender(url));
699 696
700 EXPECT_TRUE(prerender_contents->has_started()); 697 EXPECT_TRUE(prerender_contents->prerendering_has_started());
701 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 698 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
702 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 699 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
703 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 700 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
704 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, 701 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
705 last_prerender_id()); 702 last_prerender_id());
706 703
707 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 704 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
708 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 705 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url));
709 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 706 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
710 } 707 }
711 708
712 TEST_F(PrerenderTest, LinkManagerCancelTwice) { 709 TEST_F(PrerenderTest, LinkManagerCancelTwice) {
713 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 710 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
714 GURL url("http://www.myexample.com"); 711 GURL url("http://www.myexample.com");
715 DummyPrerenderContents* prerender_contents = 712 DummyPrerenderContents* prerender_contents =
716 prerender_manager()->CreateNextPrerenderContents( 713 prerender_manager()->CreateNextPrerenderContents(
717 url, FINAL_STATUS_CANCELLED); 714 url, FINAL_STATUS_CANCELLED);
718 715
719 EXPECT_TRUE(AddSimplePrerender(url)); 716 EXPECT_TRUE(AddSimplePrerender(url));
720 EXPECT_TRUE(prerender_contents->has_started()); 717 EXPECT_TRUE(prerender_contents->prerendering_has_started());
721 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 718 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
722 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 719 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
723 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 720 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
724 last_prerender_id()); 721 last_prerender_id());
725 722
726 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 723 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
727 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 724 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
728 DummyPrerenderContents* null = NULL; 725 DummyPrerenderContents* null = NULL;
729 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 726 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
730 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 727 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
731 last_prerender_id()); 728 last_prerender_id());
732 } 729 }
733 730
734 TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwice) { 731 TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwice) {
735 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 732 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
736 GURL url("http://www.myexample.com"); 733 GURL url("http://www.myexample.com");
737 DummyPrerenderContents* prerender_contents = 734 DummyPrerenderContents* prerender_contents =
738 prerender_manager()->CreateNextPrerenderContents( 735 prerender_manager()->CreateNextPrerenderContents(
739 url, FINAL_STATUS_CANCELLED); 736 url, FINAL_STATUS_CANCELLED);
740 737
741 EXPECT_TRUE(AddSimplePrerender(url)); 738 EXPECT_TRUE(AddSimplePrerender(url));
742 739
743 const int first_prerender_id = last_prerender_id(); 740 const int first_prerender_id = last_prerender_id();
744 EXPECT_TRUE(prerender_contents->has_started()); 741 EXPECT_TRUE(prerender_contents->prerendering_has_started());
745 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 742 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
746 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 743 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
747 EXPECT_TRUE(AddSimplePrerender(url)); 744 EXPECT_TRUE(AddSimplePrerender(url));
748 745
749 const int second_prerender_id = last_prerender_id(); 746 const int second_prerender_id = last_prerender_id();
750 EXPECT_TRUE(prerender_contents->has_started()); 747 EXPECT_TRUE(prerender_contents->prerendering_has_started());
751 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 748 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
752 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 749 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
753 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 750 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
754 first_prerender_id); 751 first_prerender_id);
755 752
756 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 753 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
757 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 754 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
758 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 755 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
759 second_prerender_id); 756 second_prerender_id);
760 757
761 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 758 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
762 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled()); 759 EXPECT_TRUE(prerender_contents->prerendering_has_been_cancelled());
763 DummyPrerenderContents* null = NULL; 760 DummyPrerenderContents* null = NULL;
764 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 761 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
765 } 762 }
766 763
767 TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwiceThenAbandonTwice) { 764 TEST_F(PrerenderTest, LinkManagerAddTwiceCancelTwiceThenAbandonTwice) {
768 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 765 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
769 GURL url("http://www.myexample.com"); 766 GURL url("http://www.myexample.com");
770 DummyPrerenderContents* prerender_contents = 767 DummyPrerenderContents* prerender_contents =
771 prerender_manager()->CreateNextPrerenderContents( 768 prerender_manager()->CreateNextPrerenderContents(
772 url, FINAL_STATUS_CANCELLED); 769 url, FINAL_STATUS_CANCELLED);
773 770
774 EXPECT_TRUE(AddSimplePrerender(url)); 771 EXPECT_TRUE(AddSimplePrerender(url));
775 772
776 const int first_prerender_id = last_prerender_id(); 773 const int first_prerender_id = last_prerender_id();
777 EXPECT_TRUE(prerender_contents->has_started()); 774 EXPECT_TRUE(prerender_contents->prerendering_has_started());
778 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 775 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
779 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 776 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
780 EXPECT_TRUE(AddSimplePrerender(url)); 777 EXPECT_TRUE(AddSimplePrerender(url));
781 778
782 const int second_prerender_id = last_prerender_id(); 779 const int second_prerender_id = last_prerender_id();
783 EXPECT_TRUE(prerender_contents->has_started()); 780 EXPECT_TRUE(prerender_contents->prerendering_has_started());
784 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 781 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
785 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 782 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
786 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 783 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
787 first_prerender_id); 784 first_prerender_id);
788 785
789 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 786 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
790 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 787 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
791 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 788 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
792 second_prerender_id); 789 second_prerender_id);
793 790
(...skipping 18 matching lines...) Expand all
812 TEST_F(PrerenderTest, LinkManagerAddTwiceAbandonTwice) { 809 TEST_F(PrerenderTest, LinkManagerAddTwiceAbandonTwice) {
813 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 810 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
814 GURL url("http://www.myexample.com"); 811 GURL url("http://www.myexample.com");
815 DummyPrerenderContents* prerender_contents = 812 DummyPrerenderContents* prerender_contents =
816 prerender_manager()->CreateNextPrerenderContents( 813 prerender_manager()->CreateNextPrerenderContents(
817 url, FINAL_STATUS_USED); 814 url, FINAL_STATUS_USED);
818 815
819 EXPECT_TRUE(AddSimplePrerender(url)); 816 EXPECT_TRUE(AddSimplePrerender(url));
820 817
821 const int first_prerender_id = last_prerender_id(); 818 const int first_prerender_id = last_prerender_id();
822 EXPECT_TRUE(prerender_contents->has_started()); 819 EXPECT_TRUE(prerender_contents->prerendering_has_started());
823 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 820 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
824 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 821 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
825 EXPECT_TRUE(AddSimplePrerender(url)); 822 EXPECT_TRUE(AddSimplePrerender(url));
826 823
827 const int second_prerender_id = last_prerender_id(); 824 const int second_prerender_id = last_prerender_id();
828 EXPECT_TRUE(prerender_contents->has_started()); 825 EXPECT_TRUE(prerender_contents->prerendering_has_started());
829 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 826 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
830 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 827 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
831 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, 828 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
832 first_prerender_id); 829 first_prerender_id);
833 830
834 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 831 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
835 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 832 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
836 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId, 833 prerender_link_manager()->OnAbandonPrerender(kDefaultChildId,
837 second_prerender_id); 834 second_prerender_id);
838 835
839 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 836 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
840 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 837 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
841 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); 838 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url));
842 } 839 }
843 840
844 // TODO(gavinp): After abandon shortens the expire time on a Prerender, 841 // TODO(gavinp): After abandon shortens the expire time on a Prerender,
845 // add a series of tests testing advancing the time by either the abandon 842 // add a series of tests testing advancing the time by either the abandon
846 // or normal expire, and verifying the expected behaviour with groups 843 // or normal expire, and verifying the expected behaviour with groups
847 // of links. 844 // of links.
848 TEST_F(PrerenderTest, LinkManagerExpireThenCancel) { 845 TEST_F(PrerenderTest, LinkManagerExpireThenCancel) {
849 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 846 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
850 GURL url("http://www.myexample.com"); 847 GURL url("http://www.myexample.com");
851 DummyPrerenderContents* prerender_contents = 848 DummyPrerenderContents* prerender_contents =
852 prerender_manager()->CreateNextPrerenderContents( 849 prerender_manager()->CreateNextPrerenderContents(
853 url, FINAL_STATUS_TIMED_OUT); 850 url, FINAL_STATUS_TIMED_OUT);
854 851
855 EXPECT_TRUE(AddSimplePrerender(url)); 852 EXPECT_TRUE(AddSimplePrerender(url));
856 853
857 EXPECT_TRUE(prerender_contents->has_started()); 854 EXPECT_TRUE(prerender_contents->prerendering_has_started());
858 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled()); 855 EXPECT_FALSE(prerender_contents->prerendering_has_been_cancelled());
859 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url)); 856 ASSERT_EQ(prerender_contents, prerender_manager()->FindEntry(url));
860 prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() + 857 prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() +
861 base::TimeDelta::FromSeconds(1)); 858 base::TimeDelta::FromSeconds(1));
862 859
863 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 860 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
864 DummyPrerenderContents* null = NULL; 861 DummyPrerenderContents* null = NULL;
865 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 862 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
866 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 863 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
867 last_prerender_id()); 864 last_prerender_id());
868 865
869 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 866 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
870 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 867 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
871 } 868 }
872 869
873 TEST_F(PrerenderTest, LinkManagerExpireThenAddAgain) { 870 TEST_F(PrerenderTest, LinkManagerExpireThenAddAgain) {
874 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 871 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
875 GURL url("http://www.myexample.com"); 872 GURL url("http://www.myexample.com");
876 DummyPrerenderContents* first_prerender_contents = 873 DummyPrerenderContents* first_prerender_contents =
877 prerender_manager()->CreateNextPrerenderContents( 874 prerender_manager()->CreateNextPrerenderContents(
878 url, FINAL_STATUS_TIMED_OUT); 875 url, FINAL_STATUS_TIMED_OUT);
879 EXPECT_TRUE(AddSimplePrerender(url)); 876 EXPECT_TRUE(AddSimplePrerender(url));
880 EXPECT_TRUE(first_prerender_contents->has_started()); 877 EXPECT_TRUE(first_prerender_contents->prerendering_has_started());
881 EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled()); 878 EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled());
882 ASSERT_EQ(first_prerender_contents, prerender_manager()->FindEntry(url)); 879 ASSERT_EQ(first_prerender_contents, prerender_manager()->FindEntry(url));
883 prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() + 880 prerender_manager()->AdvanceTime(prerender_manager()->GetMaxAge() +
884 base::TimeDelta::FromSeconds(1)); 881 base::TimeDelta::FromSeconds(1));
885 DummyPrerenderContents* null = NULL; 882 DummyPrerenderContents* null = NULL;
886 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 883 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
887 DummyPrerenderContents* second_prerender_contents = 884 DummyPrerenderContents* second_prerender_contents =
888 prerender_manager()->CreateNextPrerenderContents( 885 prerender_manager()->CreateNextPrerenderContents(
889 url, FINAL_STATUS_USED); 886 url, FINAL_STATUS_USED);
890 EXPECT_TRUE(AddSimplePrerender(url)); 887 EXPECT_TRUE(AddSimplePrerender(url));
891 EXPECT_TRUE(second_prerender_contents->has_started()); 888 EXPECT_TRUE(second_prerender_contents->prerendering_has_started());
892 ASSERT_EQ(second_prerender_contents, prerender_manager()->GetEntry(url)); 889 ASSERT_EQ(second_prerender_contents, prerender_manager()->GetEntry(url));
893 // The PrerenderLinkManager is not empty since we never removed the first 890 // The PrerenderLinkManager is not empty since we never removed the first
894 // prerender. 891 // prerender.
895 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 892 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
896 } 893 }
897 894
898 TEST_F(PrerenderTest, LinkManagerCancelThenAddAgain) { 895 TEST_F(PrerenderTest, LinkManagerCancelThenAddAgain) {
899 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 896 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
900 GURL url("http://www.myexample.com"); 897 GURL url("http://www.myexample.com");
901 DummyPrerenderContents* first_prerender_contents = 898 DummyPrerenderContents* first_prerender_contents =
902 prerender_manager()->CreateNextPrerenderContents( 899 prerender_manager()->CreateNextPrerenderContents(
903 url, FINAL_STATUS_CANCELLED); 900 url, FINAL_STATUS_CANCELLED);
904 EXPECT_TRUE(AddSimplePrerender(url)); 901 EXPECT_TRUE(AddSimplePrerender(url));
905 EXPECT_TRUE(first_prerender_contents->has_started()); 902 EXPECT_TRUE(first_prerender_contents->prerendering_has_started());
906 EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled()); 903 EXPECT_FALSE(first_prerender_contents->prerendering_has_been_cancelled());
907 ASSERT_EQ(first_prerender_contents, prerender_manager()->FindEntry(url)); 904 ASSERT_EQ(first_prerender_contents, prerender_manager()->FindEntry(url));
908 prerender_link_manager()->OnCancelPrerender(kDefaultChildId, 905 prerender_link_manager()->OnCancelPrerender(kDefaultChildId,
909 last_prerender_id()); 906 last_prerender_id());
910 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 907 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
911 EXPECT_TRUE(first_prerender_contents->prerendering_has_been_cancelled()); 908 EXPECT_TRUE(first_prerender_contents->prerendering_has_been_cancelled());
912 DummyPrerenderContents* null = NULL; 909 DummyPrerenderContents* null = NULL;
913 ASSERT_EQ(null, prerender_manager()->GetEntry(url)); 910 ASSERT_EQ(null, prerender_manager()->GetEntry(url));
914 DummyPrerenderContents* second_prerender_contents = 911 DummyPrerenderContents* second_prerender_contents =
915 prerender_manager()->CreateNextPrerenderContents( 912 prerender_manager()->CreateNextPrerenderContents(
916 url, FINAL_STATUS_USED); 913 url, FINAL_STATUS_USED);
917 EXPECT_TRUE(AddSimplePrerender(url)); 914 EXPECT_TRUE(AddSimplePrerender(url));
918 EXPECT_TRUE(second_prerender_contents->has_started()); 915 EXPECT_TRUE(second_prerender_contents->prerendering_has_started());
919 ASSERT_EQ(second_prerender_contents, prerender_manager()->GetEntry(url)); 916 ASSERT_EQ(second_prerender_contents, prerender_manager()->GetEntry(url));
920 EXPECT_FALSE(IsEmptyPrerenderLinkManager()); 917 EXPECT_FALSE(IsEmptyPrerenderLinkManager());
921 } 918 }
922 919
923 } // namespace prerender 920 } // namespace prerender
924
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_contents.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698