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

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

Issue 2537503002: [Prerender] Get the prerender mode from Finch field trial. (Closed)
Patch Set: Feature API 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
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
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/format_macros.h" 12 #include "base/format_macros.h"
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
15 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
16 #include "base/metrics/field_trial.h" 16 #include "base/metrics/field_trial.h"
17 #include "base/strings/stringprintf.h" 17 #include "base/strings/stringprintf.h"
18 #include "base/test/scoped_feature_list.h"
18 #include "base/test/simple_test_clock.h" 19 #include "base/test/simple_test_clock.h"
19 #include "base/test/simple_test_tick_clock.h" 20 #include "base/test/simple_test_tick_clock.h"
20 #include "base/time/time.h" 21 #include "base/time/time.h"
21 #include "chrome/browser/net/prediction_options.h" 22 #include "chrome/browser/net/prediction_options.h"
22 #include "chrome/browser/prerender/prerender_contents.h" 23 #include "chrome/browser/prerender/prerender_contents.h"
23 #include "chrome/browser/prerender/prerender_field_trial.h" 24 #include "chrome/browser/prerender/prerender_field_trial.h"
24 #include "chrome/browser/prerender/prerender_handle.h" 25 #include "chrome/browser/prerender/prerender_handle.h"
25 #include "chrome/browser/prerender/prerender_link_manager.h" 26 #include "chrome/browser/prerender/prerender_link_manager.h"
26 #include "chrome/browser/prerender/prerender_manager.h" 27 #include "chrome/browser/prerender/prerender_manager.h"
27 #include "chrome/browser/prerender/prerender_origin.h" 28 #include "chrome/browser/prerender/prerender_origin.h"
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 TestingProfile profile_; 405 TestingProfile profile_;
405 std::unique_ptr<UnitTestPrerenderManager> prerender_manager_; 406 std::unique_ptr<UnitTestPrerenderManager> prerender_manager_;
406 std::unique_ptr<PrerenderLinkManager> prerender_link_manager_; 407 std::unique_ptr<PrerenderLinkManager> prerender_link_manager_;
407 int last_prerender_id_; 408 int last_prerender_id_;
408 base::FieldTrialList field_trial_list_; 409 base::FieldTrialList field_trial_list_;
409 }; 410 };
410 411
411 TEST_F(PrerenderTest, PrerenderRespectsDisableFlag) { 412 TEST_F(PrerenderTest, PrerenderRespectsDisableFlag) {
412 RestorePrerenderMode restore_prerender_mode; 413 RestorePrerenderMode restore_prerender_mode;
413 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); 414 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible());
414 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 415 {
415 command_line->AppendSwitchASCII( 416 base::test::ScopedFeatureList scoped_feature_list;
416 switches::kPrerenderMode, 417 scoped_feature_list.InitAndDisableFeature(kNoStatePrefetchFeature);
pasko 2016/12/01 16:47:58 please also test setting the "simple_load"
droger 2016/12/05 14:48:27 Done.
417 switches::kPrerenderModeSwitchValueDisabled); 418 prerender::ConfigurePrerender();
418 prerender::ConfigurePrerender(*command_line); 419 ASSERT_FALSE(PrerenderManager::IsPrerenderingPossible());
419 ASSERT_FALSE(PrerenderManager::IsPrerenderingPossible()); 420 }
420 } 421 }
421 422
422 TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) { 423 TEST_F(PrerenderTest, PrerenderRespectsThirdPartyCookiesPref) {
423 GURL url("http://www.google.com/"); 424 GURL url("http://www.google.com/");
424 RestorePrerenderMode restore_prerender_mode; 425 RestorePrerenderMode restore_prerender_mode;
425 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible()); 426 ASSERT_TRUE(PrerenderManager::IsPrerenderingPossible());
426 427
427 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true); 428 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
428 EXPECT_FALSE(AddSimplePrerender(url)); 429 EXPECT_FALSE(AddSimplePrerender(url));
429 } 430 }
(...skipping 1334 matching lines...) Expand 10 before | Expand all | Expand 10 after
1764 prerender_contents->SetPrerenderMode(PREFETCH_ONLY); 1765 prerender_contents->SetPrerenderMode(PREFETCH_ONLY);
1765 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("GET")); 1766 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("GET"));
1766 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("HEAD")); 1767 EXPECT_TRUE(prerender_contents->IsValidHttpMethod("HEAD"));
1767 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("OPTIONS")); 1768 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("OPTIONS"));
1768 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("POST")); 1769 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("POST"));
1769 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("TRACE")); 1770 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("TRACE"));
1770 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("WHATEVER")); 1771 EXPECT_FALSE(prerender_contents->IsValidHttpMethod("WHATEVER"));
1771 } 1772 }
1772 1773
1773 } // namespace prerender 1774 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698