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

Unified Diff: chrome/browser/prerender/prerender_unittest.cc

Issue 2600893002: Prerender: exclude AGSA from the PrerenderSilence experiment (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/prerender/prerender_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« 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