| Index: chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImplTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImplTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImplTest.java
|
| index a9094d86a18b1cd08a9f22b7c17a35b96618f365..eb51fff92e6342c515108f844acfc8f782fba650 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImplTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImplTest.java
|
| @@ -9,9 +9,18 @@ import android.content.pm.ActivityInfo;
|
| import android.content.pm.ResolveInfo;
|
| import android.support.test.filters.SmallTest;
|
|
|
| +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.test.util.CommandLineFlags;
|
| import org.chromium.chrome.browser.ChromeActivity;
|
| +import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.instantapps.InstantAppsHandler;
|
| -import org.chromium.chrome.test.ChromeActivityTestCaseBase;
|
| +import org.chromium.chrome.test.ChromeActivityTestRule;
|
| +import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
|
|
|
| import java.util.ArrayList;
|
| import java.util.Arrays;
|
| @@ -20,34 +29,43 @@ import java.util.List;
|
| /**
|
| * Instrumentation tests for {@link ExternalNavigationHandler}.
|
| */
|
| -public class ExternalNavigationDelegateImplTest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| -
|
| - public ExternalNavigationDelegateImplTest() {
|
| - super(ChromeActivity.class);
|
| - }
|
| +@RunWith(ChromeJUnit4ClassRunner.class)
|
| +@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| + ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG})
|
| +public class ExternalNavigationDelegateImplTest {
|
| + @Rule
|
| + public ChromeActivityTestRule<ChromeActivity> mActivityTestRule =
|
| + new ChromeActivityTestRule<>(ChromeActivity.class);
|
|
|
| private static List<ResolveInfo> makeResolveInfos(ResolveInfo... infos) {
|
| return Arrays.asList(infos);
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| public void testIsPackageSpecializedHandler_NoResolveInfo() {
|
| String packageName = "";
|
| List<ResolveInfo> resolveInfos = new ArrayList<ResolveInfo>();
|
| - assertEquals(0, ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(
|
| - resolveInfos, packageName).size());
|
| + Assert.assertEquals(0,
|
| + ExternalNavigationDelegateImpl
|
| + .getSpecializedHandlersWithFilter(resolveInfos, packageName)
|
| + .size());
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| public void testIsPackageSpecializedHandler_NoPathOrAuthority() {
|
| String packageName = "";
|
| ResolveInfo info = new ResolveInfo();
|
| info.filter = new IntentFilter();
|
| List<ResolveInfo> resolveInfos = makeResolveInfos(info);
|
| - assertEquals(0, ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(
|
| - resolveInfos, packageName).size());
|
| + Assert.assertEquals(0,
|
| + ExternalNavigationDelegateImpl
|
| + .getSpecializedHandlersWithFilter(resolveInfos, packageName)
|
| + .size());
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| public void testIsPackageSpecializedHandler_WithPath() {
|
| String packageName = "";
|
| @@ -55,10 +73,13 @@ public class ExternalNavigationDelegateImplTest extends ChromeActivityTestCaseBa
|
| info.filter = new IntentFilter();
|
| info.filter.addDataPath("somepath", 2);
|
| List<ResolveInfo> resolveInfos = makeResolveInfos(info);
|
| - assertEquals(1, ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(
|
| - resolveInfos, packageName).size());
|
| + Assert.assertEquals(1,
|
| + ExternalNavigationDelegateImpl
|
| + .getSpecializedHandlersWithFilter(resolveInfos, packageName)
|
| + .size());
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| public void testIsPackageSpecializedHandler_WithAuthority() {
|
| String packageName = "";
|
| @@ -66,10 +87,13 @@ public class ExternalNavigationDelegateImplTest extends ChromeActivityTestCaseBa
|
| info.filter = new IntentFilter();
|
| info.filter.addDataAuthority("http://www.google.com", "80");
|
| List<ResolveInfo> resolveInfos = makeResolveInfos(info);
|
| - assertEquals(1, ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(
|
| - resolveInfos, packageName).size());
|
| + Assert.assertEquals(1,
|
| + ExternalNavigationDelegateImpl
|
| + .getSpecializedHandlersWithFilter(resolveInfos, packageName)
|
| + .size());
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| public void testIsPackageSpecializedHandler_WithTargetPackage_Matching() {
|
| String packageName = "com.android.chrome";
|
| @@ -79,10 +103,13 @@ public class ExternalNavigationDelegateImplTest extends ChromeActivityTestCaseBa
|
| info.activityInfo = new ActivityInfo();
|
| info.activityInfo.packageName = packageName;
|
| List<ResolveInfo> resolveInfos = makeResolveInfos(info);
|
| - assertEquals(1, ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(
|
| - resolveInfos, packageName).size());
|
| + Assert.assertEquals(1,
|
| + ExternalNavigationDelegateImpl
|
| + .getSpecializedHandlersWithFilter(resolveInfos, packageName)
|
| + .size());
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| public void testIsPackageSpecializedHandler_WithTargetPackage_NotMatching() {
|
| String packageName = "com.android.chrome";
|
| @@ -92,10 +119,13 @@ public class ExternalNavigationDelegateImplTest extends ChromeActivityTestCaseBa
|
| info.activityInfo = new ActivityInfo();
|
| info.activityInfo.packageName = "com.foo.bar";
|
| List<ResolveInfo> resolveInfos = makeResolveInfos(info);
|
| - assertEquals(0, ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(
|
| - resolveInfos, packageName).size());
|
| + Assert.assertEquals(0,
|
| + ExternalNavigationDelegateImpl
|
| + .getSpecializedHandlersWithFilter(resolveInfos, packageName)
|
| + .size());
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| public void testIsPackageSpecializeHandler_withEphemeralResolver() {
|
| String packageName = "";
|
| @@ -107,28 +137,31 @@ public class ExternalNavigationDelegateImplTest extends ChromeActivityTestCaseBa
|
| info.activityInfo.packageName = "com.google.android.gms";
|
| List<ResolveInfo> resolveInfos = makeResolveInfos(info);
|
| // Ephemeral resolver is not counted as a specialized handler.
|
| - assertEquals(0, ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(
|
| - resolveInfos, packageName).size());
|
| + Assert.assertEquals(0,
|
| + ExternalNavigationDelegateImpl
|
| + .getSpecializedHandlersWithFilter(resolveInfos, packageName)
|
| + .size());
|
| }
|
|
|
| + @Test
|
| @SmallTest
|
| public void testIsDownload_noSystemDownloadManager() throws Exception {
|
| ExternalNavigationDelegateImpl delegate = new ExternalNavigationDelegateImpl(
|
| - getActivity().getActivityTab());
|
| - assertTrue("pdf should be a download, no viewer in Android Chrome",
|
| + mActivityTestRule.getActivity().getActivityTab());
|
| + Assert.assertTrue("pdf should be a download, no viewer in Android Chrome",
|
| delegate.isPdfDownload("http://somesampeleurldne.com/file.pdf"));
|
| - assertFalse("URL is not a file, but web page",
|
| + Assert.assertFalse("URL is not a file, but web page",
|
| delegate.isPdfDownload("http://somesampleurldne.com/index.html"));
|
| - assertFalse("URL is not a file url",
|
| + Assert.assertFalse("URL is not a file url",
|
| delegate.isPdfDownload("http://somesampeleurldne.com/not.a.real.extension"));
|
| - assertFalse("URL is an image, can be viewed in Chrome",
|
| + Assert.assertFalse("URL is an image, can be viewed in Chrome",
|
| delegate.isPdfDownload("http://somesampleurldne.com/image.jpg"));
|
| - assertFalse("URL is a text file can be viewed in Chrome",
|
| + Assert.assertFalse("URL is a text file can be viewed in Chrome",
|
| delegate.isPdfDownload("http://somesampleurldne.com/copy.txt"));
|
| }
|
|
|
| - @Override
|
| - public void startMainActivity() throws InterruptedException {
|
| - startMainActivityOnBlankPage();
|
| + @Before
|
| + public void setUp() throws InterruptedException {
|
| + mActivityTestRule.startMainActivityOnBlankPage();
|
| }
|
| }
|
|
|