Index: chrome/browser/prerender/prerender_unittest.cc |
diff --git a/chrome/browser/prerender/prerender_unittest.cc b/chrome/browser/prerender/prerender_unittest.cc |
index 2a3f8a9fc6ac9d3a0d40edbd1c8204280dd72d07..f9961bac1840cfe0e924d3a5f2ddca411a21f326 100644 |
--- a/chrome/browser/prerender/prerender_unittest.cc |
+++ b/chrome/browser/prerender/prerender_unittest.cc |
@@ -1231,7 +1231,7 @@ TEST_F(PrerenderTest, PrerenderNotAllowedOnCellularWithExternalOrigin) { |
EXPECT_FALSE(prerender_contents->prerendering_has_started()); |
} |
-// Checks that the "PrerenderSilence experiment does not disable offline |
+// Checks that the "PrerenderSilence" experiment does not disable offline |
// prerendering. |
TEST_F(PrerenderTest, PrerenderSilenceAllowsOffline) { |
// Set the time to 30 seconds before the experiment expires. |
@@ -1252,13 +1252,36 @@ TEST_F(PrerenderTest, PrerenderSilenceAllowsOffline) { |
EXPECT_EQ(ORIGIN_OFFLINE, prerender_handle->contents()->origin()); |
} |
-// Checks that the "PrerenderSilence" experiment disables prerendering. |
+// Checks that the "PrerenderSilence" experiment does not disable |
+// forced-cellular prerendering. |
+TEST_F(PrerenderTest, PrerenderSilenceAllowsForcedCellular) { |
+ // Set the time to 30 seconds before the experiment expires. |
+ ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
+ "PrerenderSilence", "ExperimentYes_expires_2016-12-20T00:01:00Z")); |
+ ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-20T00:00:30Z", |
+ prerender_manager())); |
+ GURL url("http://www.google.com/"); |
+ DummyPrerenderContents* prerender_contents = |
+ prerender_manager()->CreateNextPrerenderContents( |
+ url, ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, |
+ FINAL_STATUS_MANAGER_SHUTDOWN); |
+ std::unique_ptr<PrerenderHandle> prerender_handle = |
+ prerender_manager()->AddPrerenderOnCellularFromExternalRequest( |
+ url, content::Referrer(), nullptr, gfx::Rect(kSize)); |
+ EXPECT_TRUE(prerender_handle); |
+ EXPECT_TRUE(prerender_handle->IsPrerendering()); |
+ EXPECT_TRUE(prerender_contents->prerendering_has_started()); |
+ EXPECT_EQ(prerender_contents, prerender_handle->contents()); |
+ EXPECT_EQ(ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, |
+ prerender_handle->contents()->origin()); |
+} |
+ |
+// Checks that the "PrerenderSilence" experiment disables prerendering and |
+// re-enables it after expiration. |
TEST_F(PrerenderTest, PrerenderSilenceDisallowsNonOffline) { |
ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
"PrerenderSilence", "ExperimentYes_expires_2016-12-20T00:02:00Z")); |
- ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-20T00:01:00Z", |
- prerender_manager())); |
- const Origin origins[] = { |
+ Origin prerender_silence_origins[] = { |
ORIGIN_GWS_PRERENDER, |
ORIGIN_OMNIBOX, |
ORIGIN_NONE, |
@@ -1267,12 +1290,23 @@ TEST_F(PrerenderTest, PrerenderSilenceDisallowsNonOffline) { |
ORIGIN_EXTERNAL_REQUEST, |
ORIGIN_INSTANT, |
ORIGIN_LINK_REL_NEXT, |
- ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR, |
}; |
- for (const Origin& origin : origins) { |
+ |
+ // Prerender before expiration of the experiment. |
+ ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-20T00:01:00Z", |
+ prerender_manager())); |
+ for (const Origin& origin : prerender_silence_origins) { |
EXPECT_TRUE( |
prerender_manager()->IsPrerenderSilenceExperimentForTesting(origin)); |
} |
+ |
+ // Prerender after expiration of the experiment. |
+ ASSERT_TRUE(OverridePrerenderManagerTime("2016-12-20T00:03:00Z", |
+ prerender_manager())); |
+ for (const Origin& origin : prerender_silence_origins) { |
+ EXPECT_FALSE( |
+ prerender_manager()->IsPrerenderSilenceExperimentForTesting(origin)); |
+ } |
} |
// Checks that prerendering is enabled after expiration of the |