| 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_WOULD_HAVE_BEEN_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 |
| 479 // Tests that a PrerenderManager correctly handles the case of visitiung a page |
| 480 // when the NoUseGroup is enabled. |
| 481 TEST_F(PrerenderManagerTest, NoUseGroupVisited) { |
| 482 RestorePrerenderMode restore_prerender_mode; |
| 483 PrerenderManager::SetMode( |
| 484 PrerenderManager::PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP); |
| 485 GURL url("http://www.google.com/"); |
| 486 DummyPrerenderContents* prerender_contents = |
| 487 prerender_manager()->CreateNextPrerenderContents( |
| 488 url, |
| 489 FINAL_STATUS_WOULD_HAVE_BEEN_USED); |
| 490 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); |
| 491 EXPECT_TRUE(prerender_contents->has_started()); |
| 492 ASSERT_EQ(prerender_contents, prerender_manager()->GetEntry(url)); |
| 493 } |
| 494 |
| 463 // Tests that prerendering is cancelled when the source render view does not | 495 // Tests that prerendering is cancelled when the source render view does not |
| 464 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be | 496 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be |
| 465 // triggered. | 497 // triggered. |
| 466 TEST_F(PrerenderManagerTest, SourceRenderViewClosed) { | 498 TEST_F(PrerenderManagerTest, SourceRenderViewClosed) { |
| 467 GURL url("http://www.google.com/"); | 499 GURL url("http://www.google.com/"); |
| 468 prerender_manager()->CreateNextPrerenderContents( | 500 prerender_manager()->CreateNextPrerenderContents( |
| 469 url, | 501 url, |
| 470 FINAL_STATUS_MANAGER_SHUTDOWN); | 502 FINAL_STATUS_MANAGER_SHUTDOWN); |
| 471 EXPECT_FALSE(prerender_manager()->AddPrerenderFromLinkRelPrerender( | 503 EXPECT_FALSE(prerender_manager()->AddPrerenderFromLinkRelPrerender( |
| 472 100, 100, url, content::Referrer())); | 504 100, 100, url, content::Referrer())); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 url, | 555 url, |
| 524 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED); | 556 FINAL_STATUS_CACHE_OR_HISTORY_CLEARED); |
| 525 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); | 557 EXPECT_TRUE(prerender_manager()->AddSimplePrerender(url)); |
| 526 EXPECT_TRUE(prerender_contents->has_started()); | 558 EXPECT_TRUE(prerender_contents->has_started()); |
| 527 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS); | 559 prerender_manager()->ClearData(PrerenderManager::CLEAR_PRERENDER_CONTENTS); |
| 528 DummyPrerenderContents* null = NULL; | 560 DummyPrerenderContents* null = NULL; |
| 529 EXPECT_EQ(null, prerender_manager()->GetEntry(url)); | 561 EXPECT_EQ(null, prerender_manager()->GetEntry(url)); |
| 530 } | 562 } |
| 531 | 563 |
| 532 } // namespace prerender | 564 } // namespace prerender |
| OLD | NEW |