Chromium Code Reviews| Index: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
| index 3b1ca31eea53835ed2dff211df11657603b48ac8..50535774e9cd267930d84b67c84ff9fe489b4823 100644 |
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
| @@ -57,6 +57,7 @@ import org.chromium.base.test.util.Restriction; |
| import org.chromium.base.test.util.RetryOnFailure; |
| import org.chromium.chrome.R; |
| import org.chromium.chrome.browser.ChromeActivity; |
| +import org.chromium.chrome.browser.ChromeFeatureList; |
| import org.chromium.chrome.browser.ChromeSwitches; |
| import org.chromium.chrome.browser.ChromeTabbedActivity; |
| import org.chromium.chrome.browser.IntentHandler; |
| @@ -93,6 +94,8 @@ import org.chromium.net.test.util.TestWebServer; |
| import org.chromium.ui.mojom.WindowOpenDisposition; |
| import java.util.ArrayList; |
| +import java.util.HashMap; |
| +import java.util.Map; |
| import java.util.concurrent.Callable; |
| import java.util.concurrent.TimeoutException; |
| import java.util.concurrent.atomic.AtomicBoolean; |
| @@ -1810,14 +1813,37 @@ public class CustomTabActivityTest extends CustomTabActivityTestBase { |
| testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TAB); |
| } |
| + /** |
| + * Test that a hidden tab speculation is executed as a prerender if the |CCT_BACKGROUND_TAB| |
| + * feature is disabled. |
| + **/ |
| + @SmallTest |
| + @Restriction(RESTRICTION_TYPE_NON_LOW_END_DEVICE) |
| + @RetryOnFailure |
| + public void testHiddenTabDisabled() throws Exception { |
| + // One should be able to use @Features instead of calling |
| + // ChromeFeatureList.setTestFeatures, but it doesn't appear to be effective. |
| + // (perhaps a restriction due to running on Android?) |
| + Map<String, Boolean> features = new HashMap<>(); |
| + features.put(ChromeFeatureList.CCT_BACKGROUND_TAB, false); |
| + ChromeFeatureList.setTestFeatures(features); |
|
Benoit L
2017/04/24 16:18:00
Should this be reset in a finally block?
Seems th
|
| + testSpeculateCorrectUrl(CustomTabsConnection.SpeculationParams.HIDDEN_TAB, |
| + CustomTabsConnection.SpeculationParams.PRERENDER); |
| + } |
| + |
| private void testSpeculateCorrectUrl(int speculationMode) throws Exception { |
| + testSpeculateCorrectUrl(speculationMode, speculationMode); |
| + } |
| + |
| + private void testSpeculateCorrectUrl(int requestedSpeculationMode, int usedSpeculationMode) |
| + throws Exception { |
| Context context = getInstrumentation().getTargetContext().getApplicationContext(); |
| final CustomTabsConnection connection = warmUpAndWait(); |
| CustomTabsSessionToken token = CustomTabsSessionToken.createDummySessionTokenForTesting(); |
| connection.newSession(token); |
| - connection.setSpeculationModeForSession(token, speculationMode); |
| + connection.setSpeculationModeForSession(token, requestedSpeculationMode); |
| assertTrue(connection.mayLaunchUrl(token, Uri.parse(mTestPage), null, null)); |
| - ensureCompletedSpeculationForUrl(connection, mTestPage, speculationMode); |
| + ensureCompletedSpeculationForUrl(connection, mTestPage, usedSpeculationMode); |
| try { |
| startCustomTabActivityWithIntent(CustomTabsTestUtils.createMinimalCustomTabIntent( |