Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / prerender / prerender_unittest.cc
index 1af24ea..545308b 100644 (file)
 #include "base/memory/scoped_vector.h"
 #include "base/message_loop/message_loop.h"
 #include "base/metrics/field_trial.h"
+#include "base/prefs/pref_service.h"
 #include "base/strings/stringprintf.h"
 #include "base/time/time.h"
+#include "chrome/browser/net/prediction_options.h"
 #include "chrome/browser/prerender/prerender_contents.h"
 #include "chrome/browser/prerender/prerender_handle.h"
 #include "chrome/browser/prerender/prerender_link_manager.h"
 #include "chrome/browser/prerender/prerender_manager.h"
 #include "chrome/browser/prerender/prerender_origin.h"
 #include "chrome/common/chrome_switches.h"
+#include "chrome/common/pref_names.h"
 #include "chrome/common/prerender_types.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/testing_profile.h"
@@ -52,7 +55,8 @@ class DummyPrerenderContents : public PrerenderContents {
   virtual void StartPrerendering(
       int ALLOW_UNUSED creator_child_id,
       const gfx::Size& ALLOW_UNUSED size,
-      content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace)
+      content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace,
+      net::URLRequestContextGetter* ALLOW_UNUSED request_context)
       OVERRIDE;
 
   virtual bool GetChildId(int* child_id) const OVERRIDE {
@@ -101,6 +105,7 @@ class UnitTestPrerenderManager : public PrerenderManager {
         time_ticks_(TimeTicks::Now()),
         prerender_tracker_(prerender_tracker) {
     set_rate_limit_enabled(false);
+    OnCookieStoreLoaded();
   }
 
   virtual ~UnitTestPrerenderManager() {
@@ -229,6 +234,11 @@ class UnitTestPrerenderManager : public PrerenderManager {
     prerender_contents_map_.erase(std::make_pair(child_id, route_id));
   }
 
+ protected:
+  virtual net::URLRequestContextGetter* GetURLRequestContext() OVERRIDE {
+    return NULL;
+  }
+
  private:
   void SetNextPrerenderContents(DummyPrerenderContents* prerender_contents) {
     CHECK(!next_prerender_contents_.get());
@@ -296,7 +306,8 @@ DummyPrerenderContents::~DummyPrerenderContents() {
 void DummyPrerenderContents::StartPrerendering(
     int ALLOW_UNUSED creator_child_id,
     const gfx::Size& ALLOW_UNUSED size,
-    content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace) {
+    content::SessionStorageNamespace* ALLOW_UNUSED session_storage_namespace,
+    net::URLRequestContextGetter* ALLOW_UNUSED request_context) {
   // In the base PrerenderContents implementation, StartPrerendering will
   // be called even when the PrerenderManager is part of the control group,
   // but it will early exit before actually creating a new RenderView if
@@ -385,6 +396,12 @@ class PrerenderTest : public testing::Test {
     return LauncherHasRunningPrerender(kDefaultChildId, last_prerender_id());
   }
 
+  void DisablePrerender() {
+    profile_.GetPrefs()->SetInteger(
+        prefs::kNetworkPredictionOptions,
+        chrome_browser_net::NETWORK_PREDICTION_NEVER);
+  }
+
  private:
   PrerenderTracker* prerender_tracker() {
     return g_browser_process->prerender_tracker();
@@ -899,6 +916,10 @@ TEST_F(PrerenderTest, NotSoRecentlyVisited) {
 
 // Tests that our PPLT dummy prerender gets created properly.
 TEST_F(PrerenderTest, PPLTDummy) {
+  RestorePrerenderMode restore_prerender_mode;
+  PrerenderManager::SetMode(
+      PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP);
+
   GURL url("http://www.google.com/");
   DummyPrerenderContents* prerender_contents =
       prerender_manager()->CreateNextPrerenderContents(
@@ -922,6 +943,10 @@ TEST_F(PrerenderTest, PPLTDummy) {
 // Tests that our PPLT dummy prerender gets created properly, even
 // when navigating to a page that has been recently navigated to.
 TEST_F(PrerenderTest, RecentlyVisitedPPLTDummy) {
+  RestorePrerenderMode restore_prerender_mode;
+  PrerenderManager::SetMode(
+      PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP);
+
   GURL url("http://www.google.com/");
   DummyPrerenderContents* prerender_contents =
       prerender_manager()->CreateNextPrerenderContents(
@@ -940,6 +965,10 @@ TEST_F(PrerenderTest, RecentlyVisitedPPLTDummy) {
 }
 
 TEST_F(PrerenderTest, PPLTLateCancel) {
+  RestorePrerenderMode restore_prerender_mode;
+  PrerenderManager::SetMode(
+      PrerenderManager::PRERENDER_MODE_EXPERIMENT_MATCH_COMPLETE_GROUP);
+
   GURL url("http://www.google.com");
   DummyPrerenderContents* prerender_contents =
       prerender_manager()->CreateNextPrerenderContents(
@@ -1022,13 +1051,13 @@ TEST_F(PrerenderTest, CancelAllTest) {
 }
 
 TEST_F(PrerenderTest, OmniboxNotAllowedWhenDisabled) {
-  prerender_manager()->set_enabled(false);
+  DisablePrerender();
   EXPECT_FALSE(prerender_manager()->AddPrerenderFromOmnibox(
       GURL("http://www.example.com"), NULL, gfx::Size()));
 }
 
 TEST_F(PrerenderTest, LinkRelNotAllowedWhenDisabled) {
-  prerender_manager()->set_enabled(false);
+  DisablePrerender();
   EXPECT_FALSE(AddSimplePrerender(
       GURL("http://www.example.com")));
 }
@@ -1536,7 +1565,7 @@ TEST_F(PrerenderTest, InstantSearchNotAllowedWhenDisabled) {
   ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
       "EmbeddedSearch",
       "Group82 espv:8 use_cacheable_ntp:1 prefetch_results:1"));
-  prerender_manager()->set_enabled(false);
+  DisablePrerender();
   EXPECT_FALSE(prerender_manager()->AddPrerenderForInstant(
       GURL("http://www.example.com/instant_search"), NULL, gfx::Size()));
 }