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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImplTest.java

Issue 2026953002: Disable external navigation for file downloads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 7 months 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
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 3fb510c8fc3f93aa7d37a9968e7cdb5e483dec32..9dc032e5f9ce3d795b2a10e6ae64489e9ddd383c 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
@@ -7,18 +7,24 @@ package org.chromium.chrome.browser.externalnav;
import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
import android.content.pm.ResolveInfo;
-import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.SmallTest;
+import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.chrome.browser.ChromeActivity;
+import org.chromium.chrome.test.ChromeActivityTestCaseBase;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-
/**
* Instrumentation tests for {@link ExternalNavigationHandler}.
*/
-public class ExternalNavigationDelegateImplTest extends InstrumentationTestCase {
+public class ExternalNavigationDelegateImplTest extends ChromeActivityTestCaseBase<ChromeActivity> {
+
+ public ExternalNavigationDelegateImplTest() {
+ super(ChromeActivity.class);
+ }
private static List<ResolveInfo> makeResolveInfos(ResolveInfo... infos) {
return Arrays.asList(infos);
@@ -89,4 +95,35 @@ public class ExternalNavigationDelegateImplTest extends InstrumentationTestCase
assertFalse(ExternalNavigationDelegateImpl
.isPackageSpecializedHandler(resolveInfos, packageName));
}
+
+ @SmallTest
+ @CommandLineFlags.Add({"disable-features=SystemDownloadManager"})
+ public void testIsDownload_noSystemDownloadManager() throws Exception {
+ ExternalNavigationDelegateImpl delegate = new ExternalNavigationDelegateImpl(
+ getActivity().getActivityTab());
+ 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",
+ delegate.isPdfDownload("http://somesampleurldne.com/index.html"));
+ 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",
+ delegate.isPdfDownload("http://somesampleurldne.com/image.jpg"));
+ assertFalse("URL is a text file can be viewed in Chrome",
+ delegate.isPdfDownload("http://somesampleurldne.com/copy.txt"));
+ }
+
+ @SmallTest
+ @CommandLineFlags.Add({"enable-features=SystemDownloadManager"})
+ public void testIsDownload_withSystemDownloadManager() throws Exception {
+ ExternalNavigationDelegateImpl delegate = new ExternalNavigationDelegateImpl(
+ getActivity().getActivityTab());
+ assertFalse("isDownload should return false with SystemDownloadManager enabled",
+ delegate.isPdfDownload("http://somesampeleurldne.com/file.pdf"));
+ }
+
+ @Override
+ public void startMainActivity() throws InterruptedException {
+ startMainActivityOnBlankPage();
+ }
}

Powered by Google App Engine
This is Rietveld 408576698