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

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

Issue 2527363002: Delete obsolete prerender experiment code (Closed)
Patch Set: Fix android compilation Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/prerender/prerender_manager.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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <map> 8 #include <map>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 expected_final_status_(expected_final_status) {} 291 expected_final_status_(expected_final_status) {}
292 292
293 DummyPrerenderContents::~DummyPrerenderContents() { 293 DummyPrerenderContents::~DummyPrerenderContents() {
294 EXPECT_EQ(expected_final_status_, final_status()); 294 EXPECT_EQ(expected_final_status_, final_status());
295 test_prerender_manager_->DummyPrerenderContentsDestroyed(-1, route_id_); 295 test_prerender_manager_->DummyPrerenderContentsDestroyed(-1, route_id_);
296 } 296 }
297 297
298 void DummyPrerenderContents::StartPrerendering( 298 void DummyPrerenderContents::StartPrerendering(
299 const gfx::Rect& bounds, 299 const gfx::Rect& bounds,
300 content::SessionStorageNamespace* session_storage_namespace) { 300 content::SessionStorageNamespace* session_storage_namespace) {
301 // In the base PrerenderContents implementation, StartPrerendering will
302 // be called even when the PrerenderManager is part of the control group,
303 // but it will early exit before actually creating a new RenderView if
304 // |is_control_group| is true;
305 load_start_time_ = test_prerender_manager_->GetCurrentTimeTicks(); 301 load_start_time_ = test_prerender_manager_->GetCurrentTimeTicks();
306 if (!test_prerender_manager_->IsControlGroup()) { 302 prerendering_has_started_ = true;
307 prerendering_has_started_ = true; 303 test_prerender_manager_->DummyPrerenderContentsStarted(-1, route_id_, this);
308 test_prerender_manager_->DummyPrerenderContentsStarted(-1, route_id_, this); 304 NotifyPrerenderStart();
309 NotifyPrerenderStart();
310 }
311 } 305 }
312 306
313 class PrerenderTest : public testing::Test { 307 class PrerenderTest : public testing::Test {
314 public: 308 public:
315 static const int kDefaultChildId = -1; 309 static const int kDefaultChildId = -1;
316 static const int kDefaultRenderViewRouteId = -1; 310 static const int kDefaultRenderViewRouteId = -1;
317 311
318 PrerenderTest() 312 PrerenderTest()
319 : ui_thread_(BrowserThread::UI, &message_loop_), 313 : ui_thread_(BrowserThread::UI, &message_loop_),
320 prerender_manager_(new UnitTestPrerenderManager(&profile_)), 314 prerender_manager_(new UnitTestPrerenderManager(&profile_)),
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 // Use the referring prerender. 901 // Use the referring prerender.
908 EXPECT_TRUE(prerender_contents->prerendering_has_started()); 902 EXPECT_TRUE(prerender_contents->prerendering_has_started());
909 std::unique_ptr<PrerenderContents> entry = 903 std::unique_ptr<PrerenderContents> entry =
910 prerender_manager()->FindAndUseEntry(url); 904 prerender_manager()->FindAndUseEntry(url);
911 ASSERT_EQ(prerender_contents, entry.get()); 905 ASSERT_EQ(prerender_contents, entry.get());
912 906
913 // The pending prerender doesn't start. 907 // The pending prerender doesn't start.
914 EXPECT_FALSE(LauncherHasRunningPrerender(child_id, last_prerender_id())); 908 EXPECT_FALSE(LauncherHasRunningPrerender(child_id, last_prerender_id()));
915 } 909 }
916 910
917 // Tests that a PrerenderManager created for a browser session in the control
918 // group works as expected.
919 TEST_F(PrerenderTest, ControlGroup) {
920 RestorePrerenderMode restore_prerender_mode;
921 PrerenderManager::SetMode(
922 PrerenderManager::PRERENDER_MODE_EXPERIMENT_CONTROL_GROUP);
923 GURL url("http://www.google.com/");
924 DummyPrerenderContents* prerender_contents =
925 prerender_manager()->CreateNextPrerenderContents(
926 url,
927 FINAL_STATUS_MANAGER_SHUTDOWN);
928 EXPECT_TRUE(AddSimplePrerender(url));
929 EXPECT_FALSE(prerender_contents->prerendering_has_started());
930 }
931
932 // Tests that prerendering is cancelled when the source render view does not 911 // Tests that prerendering is cancelled when the source render view does not
933 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be 912 // exist. On failure, the DCHECK in CreatePrerenderContents() above should be
934 // triggered. 913 // triggered.
935 TEST_F(PrerenderTest, SourceRenderViewClosed) { 914 TEST_F(PrerenderTest, SourceRenderViewClosed) {
936 GURL url("http://www.google.com/"); 915 GURL url("http://www.google.com/");
937 prerender_manager()->CreateNextPrerenderContents( 916 prerender_manager()->CreateNextPrerenderContents(
938 url, 917 url,
939 FINAL_STATUS_MANAGER_SHUTDOWN); 918 FINAL_STATUS_MANAGER_SHUTDOWN);
940 prerender_link_manager()->OnAddPrerender( 919 prerender_link_manager()->OnAddPrerender(
941 100, GetNextPrerenderID(), url, kDefaultRelTypes, Referrer(), kSize, 200); 920 100, GetNextPrerenderID(), url, kDefaultRelTypes, Referrer(), kSize, 200);
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after
1785 prerender_contents->SetPrerenderMode(PREFETCH_ONLY); 1764 prerender_contents->SetPrerenderMode(PREFETCH_ONLY);
1786 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("GET")); 1765 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("GET"));
1787 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("HEAD")); 1766 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("HEAD"));
1788 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("OPTIONS")); 1767 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("OPTIONS"));
1789 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("POST")); 1768 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("POST"));
1790 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("TRACE")); 1769 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("TRACE"));
1791 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("WHATEVER")); 1770 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("WHATEVER"));
1792 } 1771 }
1793 1772
1794 } // namespace prerender 1773 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698