| Index: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java
|
| index 708c14eef670b66fa09aa270479f20fda6058d96..afa5078c503317197ce212e0abd4d253d9f32af9 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java
|
| @@ -5,13 +5,23 @@
|
| package org.chromium.chrome.browser.webapps;
|
|
|
| import android.content.Intent;
|
| +import android.support.test.InstrumentationRegistry;
|
| import android.support.test.filters.LargeTest;
|
|
|
| +import org.junit.After;
|
| +import org.junit.Before;
|
| +import org.junit.Rule;
|
| +import org.junit.Test;
|
| +import org.junit.runner.RunWith;
|
| +
|
| +import org.chromium.base.test.util.CommandLineFlags;
|
| import org.chromium.base.test.util.Feature;
|
| import org.chromium.base.test.util.RetryOnFailure;
|
| import org.chromium.base.test.util.ScalableTimeout;
|
| +import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.ShortcutHelper;
|
| -import org.chromium.chrome.test.ChromeActivityTestCaseBase;
|
| +import org.chromium.chrome.test.ChromeActivityTestRule;
|
| +import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
|
| import org.chromium.chrome.test.util.ChromeTabUtils;
|
| import org.chromium.content.browser.test.util.Criteria;
|
| import org.chromium.content.browser.test.util.CriteriaHelper;
|
| @@ -19,32 +29,39 @@ import org.chromium.net.test.EmbeddedTestServer;
|
| import org.chromium.webapk.lib.common.WebApkConstants;
|
|
|
| /** Integration tests for WebAPK feature. */
|
| -public class WebApkIntegrationTest extends ChromeActivityTestCaseBase<WebApkActivity> {
|
| +@RunWith(ChromeJUnit4ClassRunner.class)
|
| +@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| + ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG})
|
| +public class WebApkIntegrationTest {
|
| + @Rule
|
| + public final ChromeActivityTestRule<WebApkActivity> mActivityTestRule =
|
| + new ChromeActivityTestRule<>(WebApkActivity.class);
|
| +
|
| private static final long STARTUP_TIMEOUT = ScalableTimeout.scaleTimeout(10000);
|
|
|
| private EmbeddedTestServer mTestServer;
|
|
|
| - public WebApkIntegrationTest() {
|
| - super(WebApkActivity.class);
|
| - }
|
| -
|
| public void startWebApkActivity(String webApkPackageName, final String startUrl)
|
| throws InterruptedException {
|
| - Intent intent = new Intent(getInstrumentation().getTargetContext(), WebApkActivity.class);
|
| + Intent intent =
|
| + new Intent(InstrumentationRegistry.getTargetContext(), WebApkActivity.class);
|
| intent.putExtra(WebApkConstants.EXTRA_WEBAPK_PACKAGE_NAME, webApkPackageName);
|
| intent.putExtra(ShortcutHelper.EXTRA_URL, startUrl);
|
| intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
| - setActivity(getInstrumentation().startActivitySync(intent));
|
| - getInstrumentation().waitForIdleSync();
|
| + mActivityTestRule.setActivity(
|
| + (WebApkActivity) InstrumentationRegistry.getInstrumentation().startActivitySync(
|
| + intent));
|
| + InstrumentationRegistry.getInstrumentation().waitForIdleSync();
|
|
|
| CriteriaHelper.pollInstrumentationThread(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
| - return getActivity().getActivityTab() != null;
|
| + return mActivityTestRule.getActivity().getActivityTab() != null;
|
| }
|
| }, STARTUP_TIMEOUT, CriteriaHelper.DEFAULT_POLLING_INTERVAL);
|
|
|
| - ChromeTabUtils.waitForTabPageLoaded(getActivity().getActivityTab(), startUrl);
|
| + ChromeTabUtils.waitForTabPageLoaded(
|
| + mActivityTestRule.getActivity().getActivityTab(), startUrl);
|
| }
|
|
|
| /** Waits for the splash screen to be hidden. */
|
| @@ -52,33 +69,28 @@ public class WebApkIntegrationTest extends ChromeActivityTestCaseBase<WebApkActi
|
| CriteriaHelper.pollInstrumentationThread(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
| - return !getActivity().isSplashScreenVisibleForTests();
|
| + return !mActivityTestRule.getActivity().isSplashScreenVisibleForTests();
|
| }
|
| });
|
| }
|
|
|
| - @Override
|
| - public final void startMainActivity() throws InterruptedException {
|
| - // Do nothing
|
| - }
|
| -
|
| - @Override
|
| - protected void setUp() throws Exception {
|
| - super.setUp();
|
| - mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
|
| + @Before
|
| + public void setUp() throws Exception {
|
| + mTestServer = EmbeddedTestServer.createAndStartServer(
|
| + InstrumentationRegistry.getInstrumentation().getContext());
|
| WebApkUpdateManager.setUpdatesEnabledForTesting(false);
|
| }
|
|
|
| - @Override
|
| - protected void tearDown() throws Exception {
|
| + @After
|
| + public void tearDown() throws Exception {
|
| mTestServer.stopAndDestroyServer();
|
| - super.tearDown();
|
| }
|
|
|
| /**
|
| * Test launching a WebAPK. Test that loading the start page works and that the splashscreen
|
| * eventually hides.
|
| */
|
| + @Test
|
| @LargeTest
|
| @Feature({"WebApk"})
|
| @RetryOnFailure
|
|
|