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

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

Issue 1909503003: Refactor ExternalNavigationHandlerTest to be easier to parse. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't set user gesture until the next patch Created 4 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
index d0778480e3811583502b1711e57d67a4c43950c0..f84eec7fa9db4591e3c209b0878d8150300286f2 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
@@ -43,14 +43,6 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
private static final int START_FILE = 0x4;
private static final int INTENT_SANITIZATION_EXCEPTION = 0x8;
- private static final int NO_REDIRECT = 0x0;
- private static final int REDIRECT = 0x1;
-
- private static final String NO_REFERRER = null;
-
- private static final boolean NORMAL_PROFILE = false;
- private static final boolean INCOGNITO_PROFILE = true;
-
private static final String SEARCH_RESULT_URL_FOR_TOM_HANKS =
"https://www.google.com/search?q=tom+hanks";
private static final String IMDB_WEBPAGE_FOR_TOM_HANKS = "http://m.imdb.com/name/nm0000158";
@@ -99,345 +91,154 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
@SmallTest
public void testOrdinaryIncognitoUri() {
- check("http://youtube.com/",
- NO_REFERRER,
- INCOGNITO_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION,
- START_INCOGNITO);
+ checkUrl("http://youtube.com/")
+ .withIsIncognito(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION, START_INCOGNITO);
}
@SmallTest
public void testChromeReferrer() {
// http://crbug.com/159153: Don't override http or https URLs from the NTP or bookmarks.
- check("http://youtube.com/",
- "chrome://about", /* referrer */
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
- check("tel:012345678",
- "chrome://about", /* referrer */
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("http://youtube.com/")
+ .withReferrer("chrome://about")
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+ checkUrl("tel:012345678")
+ .withReferrer("chrome://about")
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
}
@SmallTest
public void testForwardBackNavigation() {
// http://crbug.com/164194. We shouldn't show the intent picker on
// forwards or backwards navigations.
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK
- | PageTransition.FORWARD_BACK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://youtube.com/")
+ .withPageTransition(PageTransition.LINK | PageTransition.FORWARD_BACK)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
public void testRedirectFromFormSubmit() {
// http://crbug.com/181186: We need to show the intent picker when we receive a redirect
// following a form submit. OAuth of native applications rely on this.
- check("market://1234",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.FORM_SUBMIT,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
- check("http://youtube.com://",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.FORM_SUBMIT,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("market://1234")
+ .withPageTransition(PageTransition.FORM_SUBMIT)
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
+ checkUrl("http://youtube.com://")
+ .withPageTransition(PageTransition.FORM_SUBMIT)
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
+
// If the page matches the referrer, then continue loading in Chrome.
- check("http://youtube.com://",
- "http://youtube.com", /* referrer */
- NORMAL_PROFILE,
- PageTransition.FORM_SUBMIT,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://youtube.com://")
+ .withReferrer("http://youtube.com")
+ .withPageTransition(PageTransition.FORM_SUBMIT)
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+
// If the page does not match the referrer, then prompt an intent.
- check("http://youtube.com://",
- "http://google.com", /* referrer */
- NORMAL_PROFILE,
- PageTransition.FORM_SUBMIT,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("http://youtube.com://")
+ .withReferrer("http://google.com")
+ .withPageTransition(PageTransition.FORM_SUBMIT)
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
+
// It doesn't make sense to allow intent picker without redirect, since form data
// is not encoded in the intent (although, in theory, it could be passed in as
// an extra data in the intent).
- check("http://youtube.com://",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.FORM_SUBMIT,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://youtube.com://")
+ .withPageTransition(PageTransition.FORM_SUBMIT)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
public void testIgnore() {
// Ensure about: URLs are not broadcast for external navigation.
- check("about:test",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
- check("about:test",
- NO_REFERRER,
- INCOGNITO_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("about:test").expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+ checkUrl("about:test")
+ .withIsIncognito(true)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
// Ensure content: URLs are not broadcast for external navigation.
- check("content:test",
- NO_REFERRER,
- INCOGNITO_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
- check("content:test",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("content:test").expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+ checkUrl("content:test")
+ .withIsIncognito(true)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
// Ensure chrome: URLs are not broadcast for external navigation.
- check("chrome://history",
- NO_REFERRER,
- INCOGNITO_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
- check("chrome://history",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("chrome://history").expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+ checkUrl("chrome://history")
+ .withIsIncognito(true)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
// Ensure chrome-native: URLs are not broadcast for external navigation.
- check("chrome-native://newtab",
- NO_REFERRER,
- INCOGNITO_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
- check("chrome-native://newtab",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("chrome-native://newtab").expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+ checkUrl("chrome-native://newtab")
+ .withIsIncognito(true)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
public void testPageTransitionType() {
// Non-link page transition type are ignored.
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("http://youtube.com/")
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
+ checkUrl("http://youtube.com/")
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
+
// http://crbug.com/143118 - Don't show the picker for directly typed URLs, unless
// the URL results in a redirect.
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.TYPED,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://youtube.com/")
+ .withPageTransition(PageTransition.TYPED)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+
// http://crbug.com/162106 - Don't show the picker on reload.
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.RELOAD,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://youtube.com/")
+ .withPageTransition(PageTransition.RELOAD)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
public void testWtai() {
// Start the telephone application with the given number.
- check("wtai://wp/mc;0123456789",
- NO_REFERRER,
- INCOGNITO_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY | INTENT_SANITIZATION_EXCEPTION);
+ checkUrl("wtai://wp/mc;0123456789")
+ .withIsIncognito(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
+ START_ACTIVITY | INTENT_SANITIZATION_EXCEPTION);
+
// These two cases are currently unimplemented.
- check("wtai://wp/sd;0123456789",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE | INTENT_SANITIZATION_EXCEPTION);
- check("wtai://wp/ap;0123456789",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE | INTENT_SANITIZATION_EXCEPTION);
+ checkUrl("wtai://wp/sd;0123456789")
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE,
+ IGNORE | INTENT_SANITIZATION_EXCEPTION);
+ checkUrl("wtai://wp/ap;0123456789")
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE,
+ IGNORE | INTENT_SANITIZATION_EXCEPTION);
+
// Ignore other WTAI urls.
- check("wtai://wp/invalid",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE | INTENT_SANITIZATION_EXCEPTION);
+ checkUrl("wtai://wp/invalid")
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE,
+ IGNORE | INTENT_SANITIZATION_EXCEPTION);
}
@SmallTest
public void testExternalUri() {
- check("tel:012345678",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("tel:012345678")
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
}
@SmallTest
public void testTypedRedirectToExternalProtocol() {
// http://crbug.com/169549
- check("market://1234",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.TYPED,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("market://1234")
+ .withPageTransition(PageTransition.TYPED)
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
+
// http://crbug.com/143118
- check("market://1234",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.TYPED,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("market://1234")
+ .withPageTransition(PageTransition.TYPED)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
@@ -445,27 +246,15 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
int transitionTypeIncomingIntent = PageTransition.LINK
| PageTransition.FROM_API;
// http://crbug.com/149218
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- transitionTypeIncomingIntent,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://youtube.com/")
+ .withPageTransition(transitionTypeIncomingIntent)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+
// http://crbug.com/170925
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- transitionTypeIncomingIntent,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("http://youtube.com/")
+ .withPageTransition(transitionTypeIncomingIntent)
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
}
@SmallTest
@@ -475,28 +264,12 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
String urlWithSel = "intent:wtai://wp/#Intent;SEL;action=android.settings.SETTINGS;"
+ "component=package/class;end";
- check(url,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl(url)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
// http://crbug.com/370399
- check(urlWithSel,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl(urlWithSel)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
}
@SmallTest
@@ -506,27 +279,14 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
String url = "http://m.youtube.com/watch?v=1234&pairingCode=5678";
// http://crbug/386600 - it makes no sense to switch activities for pairing code URLs.
- check(url,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
-
- check(url,
- NO_REFERRER,
- NORMAL_PROFILE,
- transitionTypeIncomingIntent,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl(url)
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+
+ checkUrl(url)
+ .withPageTransition(transitionTypeIncomingIntent)
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
@@ -542,44 +302,31 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
redirectHandler.updateIntent(ytIntent);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, false, false, 0, 0);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, true, false, 0, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- transTypeLinkFromIntent,
- REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withPageTransition(transTypeLinkFromIntent)
+ .withIsRedirect(true)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+
// Do not ignore if a new intent has any new resolver.
redirectHandler.updateIntent(fooIntent);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, false, false, 0, 0);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, true, false, 0, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- transTypeLinkFromIntent,
- REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("http://m.youtube.com/")
+ .withPageTransition(transTypeLinkFromIntent)
+ .withIsRedirect(true)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
+
// Do not ignore if a new intent cannot be handled by Chrome.
redirectHandler.updateIntent(fooIntent);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, false, false, 0, 0);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, true, false, 0, 0);
- check("intent://myownurl",
- NO_REFERRER,
- NORMAL_PROFILE,
- transTypeLinkFromIntent,
- REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("intent://myownurl")
+ .withPageTransition(transTypeLinkFromIntent)
+ .withIsRedirect(true)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
}
@SmallTest
@@ -595,31 +342,21 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
redirectHandler.updateIntent(fooIntent);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, false, false, 0, 0);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, true, false, 0, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- transTypeLinkFromIntent,
- REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withPageTransition(transTypeLinkFromIntent)
+ .withIsRedirect(true)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
// Do not ignore if the URI has an external protocol.
redirectHandler.updateIntent(fooIntent);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, false, false, 0, 0);
redirectHandler.updateNewUrlLoading(transTypeLinkFromIntent, true, false, 0, 0);
- check("market://1234",
- NO_REFERRER,
- NORMAL_PROFILE,
- transTypeLinkFromIntent,
- REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("market://1234")
+ .withPageTransition(transTypeLinkFromIntent)
+ .withIsRedirect(true)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
}
@SmallTest
@@ -627,16 +364,9 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
// IMDB app is installed.
mDelegate.setCanResolveActivity(true);
- check(INTENT_URL_WITH_FALLBACK_URL,
- SEARCH_RESULT_URL_FOR_TOM_HANKS, /* referrer */
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl(INTENT_URL_WITH_FALLBACK_URL)
+ .withReferrer(SEARCH_RESULT_URL_FOR_TOM_HANKS)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
Intent invokedIntent = mDelegate.startActivityIntent;
assertEquals(IMDB_APP_INTENT_FOR_TOM_HANKS, invokedIntent.getData().toString());
@@ -653,16 +383,9 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
// When intent resolution fails, we should not start an activity, but instead clobber
// the current tab.
- check(INTENT_URL_WITH_FALLBACK_URL,
- SEARCH_RESULT_URL_FOR_TOM_HANKS, /* referrer */
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB,
- IGNORE);
+ checkUrl(INTENT_URL_WITH_FALLBACK_URL)
+ .withReferrer(SEARCH_RESULT_URL_FOR_TOM_HANKS)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB, IGNORE);
assertNull(mDelegate.startActivityIntent);
assertEquals(IMDB_WEBPAGE_FOR_TOM_HANKS, mDelegate.getNewUrlAfterClobbering());
@@ -675,16 +398,9 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
mDelegate.setCanResolveActivity(false);
// Fallback URL should work even when package name isn't given.
- check(INTENT_URL_WITH_FALLBACK_URL_WITHOUT_PACKAGE_NAME,
- SEARCH_RESULT_URL_FOR_TOM_HANKS, /* referrer */
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB,
- IGNORE);
+ checkUrl(INTENT_URL_WITH_FALLBACK_URL_WITHOUT_PACKAGE_NAME)
+ .withReferrer(SEARCH_RESULT_URL_FOR_TOM_HANKS)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB, IGNORE);
assertNull(mDelegate.startActivityIntent);
assertEquals(IMDB_WEBPAGE_FOR_TOM_HANKS, mDelegate.getNewUrlAfterClobbering());
@@ -696,16 +412,10 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
// IMDB app isn't installed.
mDelegate.setCanResolveActivity(false);
- check(INTENT_URL_WITH_FALLBACK_URL,
- SEARCH_RESULT_URL_FOR_TOM_HANKS,
- INCOGNITO_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB,
- IGNORE);
+ checkUrl(INTENT_URL_WITH_FALLBACK_URL)
+ .withReferrer(SEARCH_RESULT_URL_FOR_TOM_HANKS)
+ .withIsIncognito(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB, IGNORE);
assertNull(mDelegate.startActivityIntent);
assertEquals(IMDB_WEBPAGE_FOR_TOM_HANKS, mDelegate.getNewUrlAfterClobbering());
@@ -718,16 +428,10 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
mDelegate.setCanResolveActivity(false);
// Will be redirected market since package is given.
- check(INTENT_URL_WITH_JAVASCRIPT_FALLBACK_URL,
- SEARCH_RESULT_URL_FOR_TOM_HANKS,
- INCOGNITO_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl(INTENT_URL_WITH_JAVASCRIPT_FALLBACK_URL)
+ .withReferrer(SEARCH_RESULT_URL_FOR_TOM_HANKS)
+ .withIsIncognito(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
Intent invokedIntent = mDelegate.startActivityIntent;
assertTrue(invokedIntent.getData().toString().startsWith("market://"));
@@ -740,23 +444,21 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
TabRedirectHandler redirectHandler = new TabRedirectHandler(null);
redirectHandler.updateNewUrlLoading(PageTransition.TYPED, false, false, 0, 0);
- check("http://goo.gl/abcdefg", NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.TYPED, NO_REDIRECT, true, false, redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+ checkUrl("http://goo.gl/abcdefg")
+ .withPageTransition(PageTransition.TYPED)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, false, 0, 0);
- check(INTENT_URL_WITH_FALLBACK_URL_WITHOUT_PACKAGE_NAME, NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK, NO_REDIRECT, true, false, redirectHandler,
- OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB, IGNORE);
+ checkUrl(INTENT_URL_WITH_FALLBACK_URL_WITHOUT_PACKAGE_NAME)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB, IGNORE);
// Now the user opens a link.
redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, true, 0, 1);
- check("http://m.youtube.com/", NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK, NO_REDIRECT, true, false, redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
@@ -767,32 +469,18 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
TabRedirectHandler redirectHandler = new TabRedirectHandler(null);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, true, 0, 0);
- check(INTENT_URL_WITH_CHAIN_FALLBACK_URL,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB,
- IGNORE);
+ checkUrl(INTENT_URL_WITH_CHAIN_FALLBACK_URL)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB, IGNORE);
// As a result of intent resolution fallback, we have clobberred the current tab.
// The fall-back URL was HTTP-schemed, but it was effectively redirected to a new intent
// URL using javascript. However, we do not allow chained fallback intent, so we do NOT
// override URL loading here.
redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, false, 0, 0);
- check(INTENT_URL_WITH_FALLBACK_URL,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl(INTENT_URL_WITH_FALLBACK_URL)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
// Now enough time (2 seconds) have passed.
// New URL loading should not be affected.
@@ -802,16 +490,9 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
long lastUserInteractionTimeInMillis = SystemClock.elapsedRealtime() + 2 * 1000L;
redirectHandler.updateNewUrlLoading(
PageTransition.LINK, false, true, lastUserInteractionTimeInMillis, 1);
- check(INTENT_URL_WITH_FALLBACK_URL,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB,
- IGNORE);
+ checkUrl(INTENT_URL_WITH_FALLBACK_URL)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB, IGNORE);
}
@SmallTest
@@ -819,40 +500,22 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
TabRedirectHandler redirectHandler = new TabRedirectHandler(null);
redirectHandler.updateNewUrlLoading(PageTransition.TYPED, false, false, 0, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.TYPED,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withPageTransition(PageTransition.TYPED)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
redirectHandler.updateNewUrlLoading(PageTransition.TYPED, true, false, 0, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.TYPED,
- REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withPageTransition(PageTransition.TYPED)
+ .withIsRedirect(true)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, false, 0, 1);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
@@ -860,70 +523,34 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
TabRedirectHandler redirectHandler = new TabRedirectHandler(null);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, false, 1, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, true, false, 1, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withIsRedirect(true)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, false, 1, 1);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
public void testChromeAppInBackground() {
mDelegate.setIsChromeAppInForeground(false);
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://youtube.com/").expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
public void testNotChromeAppInForegroundRequired() {
mDelegate.setIsChromeAppInForeground(false);
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- false,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("http://youtube.com/")
+ .withChromeAppInForegroundRequired(false)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
}
@SmallTest
@@ -954,73 +581,41 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
@SmallTest
public void testPlusAppRefresh() {
- check(PLUS_STREAM_URL,
- PLUS_STREAM_URL,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl(PLUS_STREAM_URL)
+ .withReferrer(PLUS_STREAM_URL)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
public void testSameDomainDifferentApps() {
- check(CALENDAR_URL,
- KEEP_URL,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl(CALENDAR_URL)
+ .withReferrer(KEEP_URL)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
}
@SmallTest
public void testFormSubmitSameDomain() {
- check(CALENDAR_URL,
- KEEP_URL,
- NORMAL_PROFILE,
- PageTransition.FORM_SUBMIT,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl(CALENDAR_URL)
+ .withReferrer(KEEP_URL)
+ .withPageTransition(PageTransition.FORM_SUBMIT)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
public void testBackgroundTabNavigation() {
- check("http://youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- true,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://youtube.com/")
+ .withIsBackgroundTabNavigation(true)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
public void testReferrerExtra() {
String referrer = "http://www.google.com";
- check("http://youtube.com:90/foo/bar",
- referrer,
- NORMAL_PROFILE,
- PageTransition.FORM_SUBMIT,
- REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("http://youtube.com:90/foo/bar")
+ .withReferrer(referrer)
+ .withPageTransition(PageTransition.FORM_SUBMIT)
+ .withIsRedirect(true)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
assertEquals(Uri.parse(referrer),
mDelegate.startActivityIntent.getParcelableExtra(Intent.EXTRA_REFERRER));
assertEquals(1, mDelegate.startActivityIntent.getIntExtra(
@@ -1032,40 +627,20 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
TabRedirectHandler redirectHandler = new TabRedirectHandler(null);
redirectHandler.updateNewUrlLoading(PageTransition.RELOAD, false, false, 1, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, true, false, 1, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withIsRedirect(true)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, false, 1, 1);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SmallTest
@@ -1074,40 +649,20 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
redirectHandler.updateNewUrlLoading(
PageTransition.FORM_SUBMIT | PageTransition.FORWARD_BACK, false, false, 1, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, true, false, 1, 0);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withIsRedirect(true)
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, false, 1, 1);
- check("http://m.youtube.com/",
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- redirectHandler,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl("http://m.youtube.com/")
+ .withRedirectHandler(redirectHandler)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
}
@SuppressLint("SdCardPath")
@@ -1117,49 +672,19 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
mDelegate.shouldRequestFileAccess = false;
// Verify no overrides if file access is allowed (under different load conditions).
- check(fileUrl,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
- check(fileUrl,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.RELOAD,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
- check(fileUrl,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.AUTO_TOPLEVEL,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.NO_OVERRIDE,
- IGNORE);
+ checkUrl(fileUrl).expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+ checkUrl(fileUrl)
+ .withPageTransition(PageTransition.RELOAD)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
+ checkUrl(fileUrl)
+ .withPageTransition(PageTransition.AUTO_TOPLEVEL)
+ .expecting(OverrideUrlLoadingResult.NO_OVERRIDE, IGNORE);
mDelegate.shouldRequestFileAccess = true;
// Verify that the file intent action is triggered if file access is not allowed.
- check(fileUrl,
- NO_REFERRER,
- NORMAL_PROFILE,
- PageTransition.AUTO_TOPLEVEL,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION,
- START_FILE);
+ checkUrl(fileUrl)
+ .withPageTransition(PageTransition.AUTO_TOPLEVEL)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION, START_FILE);
}
@SmallTest
@@ -1167,16 +692,9 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
final String referer = "https://www.google.com/";
mDelegate.defaultSmsPackageName = TEXT_APP_2_PACKAGE_NAME;
- check("sms:+012345678?body=hello%20there",
- referer,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("sms:+012345678?body=hello%20there")
+ .withReferrer(referer)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
assertNotNull(mDelegate.startActivityIntent);
assertEquals(TEXT_APP_2_PACKAGE_NAME, mDelegate.startActivityIntent.getPackage());
@@ -1188,16 +706,9 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
// Note that this package does not resolve the intent.
mDelegate.defaultSmsPackageName = "text_app_3";
- check("sms:+012345678?body=hello%20there",
- referer,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("sms:+012345678?body=hello%20there")
+ .withReferrer(referer)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
assertNotNull(mDelegate.startActivityIntent);
assertNull(mDelegate.startActivityIntent.getPackage());
@@ -1208,16 +719,9 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
final String referer = "https://www.google.com/";
mDelegate.defaultSmsPackageName = TEXT_APP_2_PACKAGE_NAME;
- check("intent://012345678?body=hello%20there/#Intent;scheme=sms;end",
- referer,
- NORMAL_PROFILE,
- PageTransition.LINK,
- NO_REDIRECT,
- true,
- false,
- null,
- OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT,
- START_ACTIVITY);
+ checkUrl("intent://012345678?body=hello%20there/#Intent;scheme=sms;end")
+ .withReferrer(referer)
+ .expecting(OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT, START_ACTIVITY);
assertNotNull(mDelegate.startActivityIntent);
assertEquals(TEXT_APP_2_PACKAGE_NAME, mDelegate.startActivityIntent.getPackage());
@@ -1392,43 +896,100 @@ public class ExternalNavigationHandlerTest extends InstrumentationTestCase {
intent.getComponent());
}
- public void check(String url,
- String referrerUrl,
- boolean isIncognito,
- int pageTransition,
- int isRedirect,
- boolean chromeAppInForegroundRequired,
- boolean isBackgroundTabNavigation,
- TabRedirectHandler redirectHandler,
- OverrideUrlLoadingResult expectedOverrideResult,
- int otherExpectation) {
- boolean expectStartIncognito = (otherExpectation & START_INCOGNITO) != 0;
- boolean expectStartActivity = (otherExpectation & START_ACTIVITY) != 0;
- boolean expectStartFile = (otherExpectation & START_FILE) != 0;
- boolean expectSaneIntent = (otherExpectation & INTENT_SANITIZATION_EXCEPTION) == 0;
-
- mDelegate.reset();
-
- ExternalNavigationParams params = new ExternalNavigationParams.Builder(url, isIncognito,
- referrerUrl, pageTransition, isRedirect == REDIRECT)
- .setApplicationMustBeInForeground(chromeAppInForegroundRequired)
- .setRedirectHandler(redirectHandler)
- .setIsBackgroundTabNavigation(isBackgroundTabNavigation)
- .setIsMainFrame(true)
- .build();
- OverrideUrlLoadingResult result = mUrlHandler.shouldOverrideUrlLoading(params);
- boolean startActivityCalled = mDelegate.startActivityIntent != null;
-
- assertEquals(expectedOverrideResult, result);
- assertEquals(expectStartIncognito, mDelegate.startIncognitoIntentCalled);
- assertEquals(expectStartActivity, startActivityCalled);
- assertEquals(expectStartFile, mDelegate.startFileIntentCalled);
-
- if (startActivityCalled && expectSaneIntent) {
- checkIntentSanity(mDelegate.startActivityIntent, "Intent");
- if (mDelegate.startActivityIntent.getSelector() != null) {
- checkIntentSanity(mDelegate.startActivityIntent.getSelector(),
- "Intent's selector");
+ private ExternalNavigationTestParams checkUrl(String url) {
+ return new ExternalNavigationTestParams(url);
+ }
+
+ private class ExternalNavigationTestParams {
+ private final String mUrl;
+
+ private String mReferrerUrl;
+ private boolean mIsIncognito;
+ private int mPageTransition = PageTransition.LINK;
+ private boolean mIsRedirect;
+ private boolean mChromeAppInForegroundRequired = true;
+ private boolean mIsBackgroundTabNavigation;
+ private boolean mHasUserGesture;
+ private TabRedirectHandler mRedirectHandler;
+
+ private ExternalNavigationTestParams(String url) {
+ mUrl = url;
+ }
+
+ public ExternalNavigationTestParams withReferrer(String referrerUrl) {
+ mReferrerUrl = referrerUrl;
+ return this;
+ }
+
+ public ExternalNavigationTestParams withIsIncognito(boolean isIncognito) {
+ mIsIncognito = isIncognito;
+ return this;
+ }
+
+ public ExternalNavigationTestParams withPageTransition(int pageTransition) {
+ mPageTransition = pageTransition;
+ return this;
+ }
+
+ public ExternalNavigationTestParams withIsRedirect(boolean isRedirect) {
+ mIsRedirect = isRedirect;
+ return this;
+ }
+
+ public ExternalNavigationTestParams withChromeAppInForegroundRequired(
+ boolean foregroundRequired) {
+ mChromeAppInForegroundRequired = foregroundRequired;
+ return this;
+ }
+
+ public ExternalNavigationTestParams withIsBackgroundTabNavigation(
+ boolean isBackgroundTabNavigation) {
+ mIsBackgroundTabNavigation = isBackgroundTabNavigation;
+ return this;
+ }
+
+ public ExternalNavigationTestParams withHasUserGesture(boolean hasUserGesture) {
+ mHasUserGesture = hasUserGesture;
+ return this;
+ }
+
+ public ExternalNavigationTestParams withRedirectHandler(TabRedirectHandler handler) {
+ mRedirectHandler = handler;
+ return this;
+ }
+
+ public void expecting(OverrideUrlLoadingResult expectedOverrideResult,
+ int otherExpectation) {
+ boolean expectStartIncognito = (otherExpectation & START_INCOGNITO) != 0;
+ boolean expectStartActivity = (otherExpectation & START_ACTIVITY) != 0;
+ boolean expectStartFile = (otherExpectation & START_FILE) != 0;
+ boolean expectSaneIntent = (otherExpectation & INTENT_SANITIZATION_EXCEPTION) == 0;
+
+ mDelegate.reset();
+
+ ExternalNavigationParams params = new ExternalNavigationParams.Builder(
+ mUrl, mIsIncognito, mReferrerUrl,
+ mPageTransition, mIsRedirect)
+ .setApplicationMustBeInForeground(mChromeAppInForegroundRequired)
+ .setRedirectHandler(mRedirectHandler)
+ .setIsBackgroundTabNavigation(mIsBackgroundTabNavigation)
+ .setIsMainFrame(true)
+ .setHasUserGesture(mHasUserGesture)
+ .build();
+ OverrideUrlLoadingResult result = mUrlHandler.shouldOverrideUrlLoading(params);
+ boolean startActivityCalled = mDelegate.startActivityIntent != null;
+
+ assertEquals(expectedOverrideResult, result);
+ assertEquals(expectStartIncognito, mDelegate.startIncognitoIntentCalled);
+ assertEquals(expectStartActivity, startActivityCalled);
+ assertEquals(expectStartFile, mDelegate.startFileIntentCalled);
+
+ if (startActivityCalled && expectSaneIntent) {
+ checkIntentSanity(mDelegate.startActivityIntent, "Intent");
+ if (mDelegate.startActivityIntent.getSelector() != null) {
+ checkIntentSanity(mDelegate.startActivityIntent.getSelector(),
+ "Intent's selector");
+ }
}
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698