Index: chrome/android/javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java |
index 1e0d71425f73ec4f265733011765c994116671c5..756b9d7338b95e4c73a04555aa6102c81552a5f0 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java |
@@ -12,38 +12,20 @@ |
import android.net.Uri; |
import android.nfc.NfcAdapter; |
import android.provider.Browser; |
-import android.support.test.InstrumentationRegistry; |
import android.test.suitebuilder.annotation.SmallTest; |
- |
-import org.junit.After; |
-import org.junit.Assert; |
-import org.junit.Before; |
-import org.junit.Rule; |
-import org.junit.Test; |
-import org.junit.runner.RunWith; |
import org.chromium.base.ContextUtils; |
import org.chromium.base.ThreadUtils; |
-import org.chromium.base.test.util.CommandLineFlags; |
import org.chromium.chrome.browser.ChromeActivity; |
-import org.chromium.chrome.browser.ChromeSwitches; |
import org.chromium.chrome.browser.IntentHandler; |
import org.chromium.chrome.browser.ShortcutHelper; |
-import org.chromium.chrome.test.ChromeActivityTestRule; |
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
+import org.chromium.chrome.test.ChromeActivityTestCaseBase; |
import org.chromium.content_public.browser.WebContents; |
/** |
* Unit tests for {@link InstantAppsHandler}. |
*/ |
-@RunWith(ChromeJUnit4ClassRunner.class) |
-@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
- ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG}) |
-public class InstantAppsHandlerTest { |
- @Rule |
- public ChromeActivityTestRule<ChromeActivity> mActivityTestRule = |
- new ChromeActivityTestRule<>(ChromeActivity.class); |
- |
+public class InstantAppsHandlerTest extends ChromeActivityTestCaseBase<ChromeActivity> { |
private TestInstantAppsHandler mHandler; |
private Context mContext; |
@@ -51,15 +33,19 @@ |
private static final String INSTANT_APP_URL = "http://sampleapp.com/boo"; |
private static final Uri REFERRER_URI = Uri.parse("http://www.wikipedia.org/"); |
+ public InstantAppsHandlerTest() { |
+ super(ChromeActivity.class); |
+ } |
+ |
private Intent createViewIntent() { |
return new Intent(Intent.ACTION_VIEW, URI); |
} |
- @Before |
+ @Override |
public void setUp() throws Exception { |
- mActivityTestRule.startMainActivityOnBlankPage(); |
- |
- mContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); |
+ super.setUp(); |
+ |
+ mContext = getInstrumentation().getTargetContext(); |
mHandler = new TestInstantAppsHandler(); |
SharedPreferences prefs = ContextUtils.getAppSharedPreferences(); |
@@ -69,60 +55,56 @@ |
editor.apply(); |
} |
- @After |
+ @Override |
public void tearDown() throws Exception { |
ContextUtils.getAppSharedPreferences().edit().clear().apply(); |
- } |
- |
- @Test |
+ super.tearDown(); |
+ } |
+ |
@SmallTest |
public void testInstantAppsDisabled_incognito() { |
Intent i = createViewIntent(); |
i.putExtra(IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, true); |
- Assert.assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
- } |
- |
- @Test |
+ assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
+ } |
+ |
+ |
@SmallTest |
public void testInstantAppsDisabled_doNotLaunch() { |
Intent i = createViewIntent(); |
i.putExtra("com.google.android.gms.instantapps.DO_NOT_LAUNCH_INSTANT_APP", true); |
- Assert.assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
- } |
- |
- @Test |
+ assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
+ } |
+ |
@SmallTest |
public void testInstantAppsDisabled_mainIntent() { |
Intent i = new Intent(Intent.ACTION_MAIN); |
- Assert.assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
- } |
- |
- @Test |
+ assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
+ } |
+ |
@SmallTest |
public void testInstantAppsDisabled_intentOriginatingFromChrome() { |
Intent i = createViewIntent(); |
i.putExtra(Browser.EXTRA_APPLICATION_ID, mContext.getPackageName()); |
- Assert.assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
+ assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
Intent signedIntent = createViewIntent(); |
signedIntent.setPackage(mContext.getPackageName()); |
IntentHandler.addTrustedIntentExtras(signedIntent); |
- Assert.assertFalse(mHandler.handleIncomingIntent(mContext, signedIntent, false, true)); |
- } |
- |
- @Test |
+ assertFalse(mHandler.handleIncomingIntent(mContext, signedIntent, false, true)); |
+ } |
+ |
@SmallTest |
public void testInstantAppsDisabled_launchFromShortcut() { |
Intent i = createViewIntent(); |
i.putExtra(ShortcutHelper.EXTRA_SOURCE, 1); |
- Assert.assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
- } |
- |
- @Test |
+ assertFalse(mHandler.handleIncomingIntent(mContext, i, false, true)); |
+ } |
+ |
@SmallTest |
public void testChromeNotDefault() { |
SharedPreferences prefs = ContextUtils.getAppSharedPreferences(); |
@@ -130,91 +112,77 @@ |
editor.putBoolean("applink.chrome_default_browser", false); |
editor.apply(); |
- Assert.assertFalse( |
- mHandler.handleIncomingIntent(mContext, createViewIntent(), false, true)); |
+ assertFalse(mHandler.handleIncomingIntent(mContext, createViewIntent(), false, true)); |
// Even if Chrome is not default, launch Instant Apps for CustomTabs since those never |
// show disambiguation dialogs. |
Intent cti = createViewIntent() |
.putExtra("android.support.customtabs.extra.EXTRA_ENABLE_INSTANT_APPS", true); |
- Assert.assertTrue(mHandler.handleIncomingIntent(mContext, cti, true, true)); |
- } |
- |
- @Test |
+ assertTrue(mHandler.handleIncomingIntent(mContext, cti, true, true)); |
+ } |
+ |
@SmallTest |
public void testInstantAppsEnabled() { |
Intent i = createViewIntent(); |
- Assert.assertTrue(mHandler.handleIncomingIntent( |
- InstrumentationRegistry.getInstrumentation().getContext(), i, false, true)); |
+ assertTrue(mHandler.handleIncomingIntent(getInstrumentation().getContext(), i, false, |
+ true)); |
// Check that identical intent wouldn't be enabled for CustomTab flow. |
- Assert.assertFalse(mHandler.handleIncomingIntent( |
- InstrumentationRegistry.getInstrumentation().getContext(), i, true, true)); |
+ assertFalse(mHandler.handleIncomingIntent(getInstrumentation().getContext(), i, true, |
+ true)); |
// Add CustomTab specific extra and check it's now enabled. |
i.putExtra("android.support.customtabs.extra.EXTRA_ENABLE_INSTANT_APPS", true); |
- Assert.assertTrue(mHandler.handleIncomingIntent( |
- InstrumentationRegistry.getInstrumentation().getContext(), i, true, true)); |
- } |
- |
- @Test |
+ assertTrue(mHandler.handleIncomingIntent(getInstrumentation().getContext(), i, true, |
+ true)); |
+ } |
+ |
@SmallTest |
public void testNfcIntent() { |
Intent i = new Intent(NfcAdapter.ACTION_NDEF_DISCOVERED); |
i.setData(Uri.parse("http://instantapp.com/")); |
- Assert.assertTrue(mHandler.handleIncomingIntent( |
- InstrumentationRegistry.getInstrumentation().getContext(), i, false, true)); |
- } |
- |
- @Test |
+ assertTrue(mHandler.handleIncomingIntent(getInstrumentation().getContext(), i, false, |
+ true)); |
+ } |
+ |
@SmallTest |
public void testHandleNavigation_startAsyncCheck() { |
ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
@Override |
public void run() { |
- Assert.assertFalse( |
- mHandler.handleNavigation(mContext, INSTANT_APP_URL, REFERRER_URI, |
- mActivityTestRule.getActivity() |
- .getTabModelSelector() |
- .getCurrentTab() |
- .getWebContents())); |
+ assertFalse(mHandler.handleNavigation(mContext, INSTANT_APP_URL, REFERRER_URI, |
+ getActivity().getTabModelSelector().getCurrentTab().getWebContents())); |
} |
}); |
- Assert.assertFalse(mHandler.mLaunchInstantApp); |
- Assert.assertTrue(mHandler.mStartedAsyncCall); |
- } |
- |
- @Test |
+ assertFalse(mHandler.mLaunchInstantApp); |
+ assertTrue(mHandler.mStartedAsyncCall); |
+ } |
+ |
@SmallTest |
public void testLaunchFromBanner() { |
// Intent to supervisor |
final Intent i = new Intent(Intent.ACTION_MAIN); |
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
- Instrumentation.ActivityMonitor monitor = |
- InstrumentationRegistry.getInstrumentation().addMonitor( |
- new IntentFilter(Intent.ACTION_MAIN), null, true); |
+ Instrumentation.ActivityMonitor monitor = getInstrumentation().addMonitor( |
+ new IntentFilter(Intent.ACTION_MAIN), null, true); |
ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
@Override |
public void run() { |
- mHandler.launchFromBanner(new InstantAppsBannerData("App", null, INSTANT_APP_URL, |
- REFERRER_URI, i, "Launch", |
- mActivityTestRule.getActivity() |
- .getTabModelSelector() |
- .getCurrentTab() |
- .getWebContents())); |
+ mHandler.launchFromBanner(new InstantAppsBannerData( |
+ "App", null, INSTANT_APP_URL, REFERRER_URI, i, "Launch", |
+ getActivity().getTabModelSelector().getCurrentTab().getWebContents())); |
} |
}); |
// Started instant apps intent |
- Assert.assertEquals(1, monitor.getHits()); |
- |
- Assert.assertEquals(REFERRER_URI, i.getParcelableExtra(Intent.EXTRA_REFERRER)); |
- Assert.assertTrue(i.getBooleanExtra(InstantAppsHandler.IS_REFERRER_TRUSTED_EXTRA, false)); |
- Assert.assertTrue( |
- i.getBooleanExtra(InstantAppsHandler.IS_USER_CONFIRMED_LAUNCH_EXTRA, false)); |
- Assert.assertEquals(mContext.getPackageName(), |
+ assertEquals(1, monitor.getHits()); |
+ |
+ assertEquals(REFERRER_URI, i.getParcelableExtra(Intent.EXTRA_REFERRER)); |
+ assertTrue(i.getBooleanExtra(InstantAppsHandler.IS_REFERRER_TRUSTED_EXTRA, false)); |
+ assertTrue(i.getBooleanExtra(InstantAppsHandler.IS_USER_CONFIRMED_LAUNCH_EXTRA, false)); |
+ assertEquals(mContext.getPackageName(), |
i.getStringExtra(InstantAppsHandler.TRUSTED_REFERRER_PKG_EXTRA)); |
// After a banner launch, test that the next launch happens automatically |
@@ -222,15 +190,17 @@ |
ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
@Override |
public void run() { |
- Assert.assertTrue(mHandler.handleNavigation(mContext, INSTANT_APP_URL, REFERRER_URI, |
- mActivityTestRule.getActivity() |
- .getTabModelSelector() |
- .getCurrentTab() |
- .getWebContents())); |
+ assertTrue(mHandler.handleNavigation(mContext, INSTANT_APP_URL, REFERRER_URI, |
+ getActivity().getTabModelSelector().getCurrentTab().getWebContents())); |
} |
}); |
- Assert.assertFalse(mHandler.mStartedAsyncCall); |
- Assert.assertTrue(mHandler.mLaunchInstantApp); |
+ assertFalse(mHandler.mStartedAsyncCall); |
+ assertTrue(mHandler.mLaunchInstantApp); |
+ } |
+ |
+ @Override |
+ public void startMainActivity() throws InterruptedException { |
+ startMainActivityOnBlankPage(); |
} |
static class TestInstantAppsHandler extends InstantAppsHandler { |