| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/memory/scoped_vector.h" | 5 #include "base/memory/scoped_vector.h" |
| 6 #include "base/message_loop.h" | 6 #include "base/message_loop.h" |
| 7 #include "base/time.h" | 7 #include "base/time.h" |
| 8 #include "chrome/browser/prerender/prerender_contents.h" | 8 #include "chrome/browser/prerender/prerender_contents.h" |
| 9 #include "chrome/browser/prerender/prerender_manager.h" | 9 #include "chrome/browser/prerender/prerender_manager.h" |
| 10 #include "chrome/browser/prerender/prerender_origin.h" | 10 #include "chrome/browser/prerender/prerender_origin.h" |
| (...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender( | 439 EXPECT_TRUE(prerender_manager()->AddPrerenderFromLinkRelPrerender( |
| 440 child_id, route_id, | 440 child_id, route_id, |
| 441 pending_url, content::Referrer(url, WebKit::WebReferrerPolicyDefault))); | 441 pending_url, content::Referrer(url, WebKit::WebReferrerPolicyDefault))); |
| 442 | 442 |
| 443 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url)); | 443 EXPECT_TRUE(prerender_manager()->IsPendingEntry(pending_url)); |
| 444 EXPECT_TRUE(prerender_contents->has_started()); | 444 EXPECT_TRUE(prerender_contents->has_started()); |
| 445 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); | 445 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); |
| 446 } | 446 } |
| 447 | 447 |
| 448 // Tests that a PrerenderManager created for a browser session in the control | 448 // Tests that a PrerenderManager created for a browser session in the control |
| 449 // group will not be able to override FINAL_STATUS_CONTROL_GROUP. | 449 // group works as expected. |
| 450 TEST_F(PrerenderManagerTest, ControlGroup) { | 450 TEST_F(PrerenderManagerTest, ControlGroup) { |
| 451 RestorePrerenderMode restore_prerender_mode; | 451 RestorePrerenderMode restore_prerender_mode; |
| 452 PrerenderManager::SetMode( | 452 PrerenderManager::SetMode( |
| 453 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); | 453 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); |
| 454 GURL url("http://www.google.com/"); | 454 GURL url("http://www.google.com/"); |
| 455 DummyPrerenderContents* prerender_contents = | 455 DummyPrerenderContents* prerender_contents = |
| 456 prerender_manager()->CreateNextPrerenderContents( | 456 prerender_manager()->CreateNextPrerenderContents( |
| 457 url, | 457 url, |
| 458 FINAL_STATUS_CONTROL_GROUP); | 458 FINAL_STATUS_MANAGER_SHUTDOWN); |
| 459 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); | 459 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); |
| 460 EXPECT_FALSE(prerender_contents->has_started()); | 460 EXPECT_FALSE(prerender_contents->has_started()); |
| 461 } | 461 } |
| 462 | 462 |
| 463 // Tests that a PrerenderManager created for a browser session in the control |
| 464 // group works as expected if the site gets visited. |
| 465 TEST_F(PrerenderManagerTest, ControlGroupVisited) { |
| 466 RestorePrerenderMode restore_prerender_mode; |
| 467 PrerenderManager::SetMode( |
| 468 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP); |
| 469 GURL url("http://www.google.com/"); |
| 470 DummyPrerenderContents* prerender_contents = |
| 471 prerender_manager()->CreateNextPrerenderContents( |
| 472 url, |
| 473 FINAL_STATUS_USED); |
| 474 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); |
| 475 EXPECT_FALSE(prerender_contents->has_started()); |
| 476 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); |
| 477 } |
| 478 |
| 463 // Tests that prerendering is cancelled when the source render view does not | 479 // Tests that prerendering is cancelled when the source render view does not |
| 464 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be | 480 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be |
| 465 // triggered. | 481 // triggered. |
| 466 TEST_F(PrerenderManagerTest, SourceRenderViewClosed) { | 482 TEST_F(PrerenderManagerTest, SourceRenderViewClosed) { |
| 467 GURL url("http://www.google.com/"); | 483 GURL url("http://www.google.com/"); |
| 468 prerender_manager()->CreateNextPrerenderContents( | 484 prerender_manager()->CreateNextPrerenderContents( |
| 469 url, | 485 url, |
| 470 FINAL_STATUS_MANAGER_SHUTDOWN); | 486 FINAL_STATUS_MANAGER_SHUTDOWN); |
| 471 EXPECT_FALSE(prerender_manager()->AddPrerenderFromLinkRelPrerender( | 487 EXPECT_FALSE(prerender_manager()->AddPrerenderFromLinkRelPrerender( |
| 472 100, 100, url, content::Referrer())); | 488 100, 100, url, content::Referrer())); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 url, | 539 url, |
| 524 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED); | 540 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED); |
| 525 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); | 541 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); |
| 526 EXPECT_TRUE(prerender_contents->has_started()); | 542 EXPECT_TRUE(prerender_contents->has_started()); |
| 527 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS); | 543 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS); |
| 528 DummyPrerenderContents* null = NULL; | 544 DummyPrerenderContents* null = NULL; |
| 529 EXPECT_EQ(null, prerender_manager()->GetEntry(url)); | 545 EXPECT_EQ(null, prerender_manager()->GetEntry(url)); |
| 530 } | 546 } |
| 531 | 547 |
| 532 } // namespace prerender | 548 } // namespace prerender |
| OLD | NEW |