Index: chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/UrlOverridingTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/UrlOverridingTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/UrlOverridingTest.java |
index 859228eefc1695ce4657121179f6515db225f1e9..39363a6e060e6e5ea4f6445bf55a4efd6f55f554 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/UrlOverridingTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/UrlOverridingTest.java |
@@ -12,35 +12,23 @@ |
import android.content.IntentFilter; |
import android.net.Uri; |
import android.os.SystemClock; |
-import android.support.test.InstrumentationRegistry; |
import android.support.test.filters.SmallTest; |
import android.text.TextUtils; |
import android.util.Base64; |
-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.test.util.CallbackHelper; |
-import org.chromium.base.test.util.CommandLineFlags; |
import org.chromium.base.test.util.Restriction; |
import org.chromium.base.test.util.RetryOnFailure; |
import org.chromium.chrome.browser.ChromeActivity; |
-import org.chromium.chrome.browser.ChromeSwitches; |
import org.chromium.chrome.browser.document.ChromeLauncherActivity; |
import org.chromium.chrome.browser.externalnav.ExternalNavigationHandler.OverrideUrlLoadingResult; |
import org.chromium.chrome.browser.tab.EmptyTabObserver; |
import org.chromium.chrome.browser.tab.Tab; |
import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; |
-import org.chromium.chrome.test.ChromeActivityTestRule; |
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
+import org.chromium.chrome.test.ChromeActivityTestCaseBase; |
import org.chromium.chrome.test.util.ChromeRestriction; |
import org.chromium.content.browser.test.util.Criteria; |
import org.chromium.content.browser.test.util.CriteriaHelper; |
-import org.chromium.content.browser.test.util.TouchCommon; |
import org.chromium.content_public.browser.LoadUrlParams; |
import org.chromium.net.test.EmbeddedTestServer; |
import org.chromium.ui.base.PageTransition; |
@@ -53,14 +41,7 @@ |
/** |
* Test suite for verifying the behavior of various URL overriding actions. |
*/ |
-@RunWith(ChromeJUnit4ClassRunner.class) |
-@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
- ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG}) |
-public class UrlOverridingTest { |
- @Rule |
- public ChromeActivityTestRule<ChromeActivity> mActivityTestRule = |
- new ChromeActivityTestRule<>(ChromeActivity.class); |
- |
+public class UrlOverridingTest extends ChromeActivityTestCaseBase<ChromeActivity> { |
private static final String BASE_PATH = "/chrome/test/data/android/url_overriding/"; |
private static final String NAVIGATION_FROM_TIMEOUT_PAGE = |
BASE_PATH + "navigation_from_timer.html"; |
@@ -121,21 +102,25 @@ |
private ActivityMonitor mActivityMonitor; |
private EmbeddedTestServer mTestServer; |
- @Before |
- public void setUp() throws Exception { |
- mActivityTestRule.startMainActivityOnBlankPage(); |
+ public UrlOverridingTest() { |
+ super(ChromeActivity.class); |
+ } |
+ |
+ @Override |
+ protected void setUp() throws Exception { |
+ super.setUp(); |
IntentFilter filter = new IntentFilter(Intent.ACTION_VIEW); |
filter.addCategory(Intent.CATEGORY_BROWSABLE); |
filter.addDataScheme("market"); |
- mActivityMonitor = InstrumentationRegistry.getInstrumentation().addMonitor( |
+ mActivityMonitor = getInstrumentation().addMonitor( |
filter, new Instrumentation.ActivityResult(Activity.RESULT_OK, null), true); |
- mTestServer = EmbeddedTestServer.createAndStartServer( |
- InstrumentationRegistry.getInstrumentation().getContext()); |
- } |
- |
- @After |
- public void tearDown() throws Exception { |
+ mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext()); |
+ } |
+ |
+ @Override |
+ protected void tearDown() throws Exception { |
mTestServer.stopAndDestroyServer(); |
+ super.tearDown(); |
} |
private void loadUrlAndWaitForIntentUrl(final String url, boolean needClick, |
@@ -150,24 +135,23 @@ |
final CallbackHelper failCallback = new CallbackHelper(); |
final CallbackHelper newTabCallback = new CallbackHelper(); |
- final Tab tab = mActivityTestRule.getActivity().getActivityTab(); |
+ final Tab tab = getActivity().getActivityTab(); |
final Tab[] latestTabHolder = new Tab[1]; |
latestTabHolder[0] = tab; |
tab.addObserver(new TestTabObserver(finishCallback, failCallback)); |
if (expectedNewTabCount > 0) { |
- mActivityTestRule.getActivity().getTabModelSelector().addObserver( |
- new EmptyTabModelSelectorObserver() { |
- @Override |
- public void onNewTabCreated(Tab newTab) { |
- newTabCallback.notifyCalled(); |
- newTab.addObserver(new TestTabObserver(finishCallback, failCallback)); |
- latestTabHolder[0] = newTab; |
- } |
- }); |
- } |
- |
- mActivityTestRule.getActivity().onUserInteraction(); |
- InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() { |
+ getActivity().getTabModelSelector().addObserver(new EmptyTabModelSelectorObserver() { |
+ @Override |
+ public void onNewTabCreated(Tab newTab) { |
+ newTabCallback.notifyCalled(); |
+ newTab.addObserver(new TestTabObserver(finishCallback, failCallback)); |
+ latestTabHolder[0] = newTab; |
+ } |
+ }); |
+ } |
+ |
+ getActivity().onUserInteraction(); |
+ getInstrumentation().runOnMainSync(new Runnable() { |
@Override |
public void run() { |
tab.loadUrl(new LoadUrlParams(url, PageTransition.LINK)); |
@@ -178,22 +162,22 @@ |
try { |
finishCallback.waitForCallback(0, 1, 20, TimeUnit.SECONDS); |
} catch (TimeoutException ex) { |
- Assert.fail(); |
+ fail(); |
return; |
} |
} |
SystemClock.sleep(1); |
- mActivityTestRule.getActivity().onUserInteraction(); |
+ getActivity().onUserInteraction(); |
if (needClick) { |
- TouchCommon.singleClickView(tab.getView()); |
+ singleClickView(tab.getView()); |
} |
if (failCallback.getCallCount() == 0) { |
try { |
failCallback.waitForCallback(0, 1, 20, TimeUnit.SECONDS); |
} catch (TimeoutException ex) { |
- Assert.fail("Haven't received navigation failure of intents."); |
+ fail("Haven't received navigation failure of intents."); |
return; |
} |
} |
@@ -206,13 +190,13 @@ |
try { |
finishCallback.waitForCallback(1, 1, 20, TimeUnit.SECONDS); |
} catch (TimeoutException ex) { |
- Assert.fail("Fallback URL is not loaded"); |
+ fail("Fallback URL is not loaded"); |
return; |
} |
} |
} |
- Assert.assertEquals(expectedNewTabCount, newTabCallback.getCallCount()); |
+ assertEquals(expectedNewTabCount, newTabCallback.getCallCount()); |
// For sub frames, the |loadFailCallback| run through different threads |
// from the ExternalNavigationHandler. As a result, there is no guarantee |
// when url override result would come. |
@@ -245,11 +229,10 @@ |
return mActivityMonitor.getHits(); |
} |
})); |
- Assert.assertEquals(1 + (hasFallbackUrl ? 1 : 0), finishCallback.getCallCount()); |
- Assert.assertEquals(1, failCallback.getCallCount()); |
- } |
- |
- @Test |
+ assertEquals(1 + (hasFallbackUrl ? 1 : 0), finishCallback.getCallCount()); |
+ assertEquals(1, failCallback.getCallCount()); |
+ } |
+ |
@SmallTest |
@RetryOnFailure |
public void testNavigationFromTimer() throws InterruptedException { |
@@ -257,7 +240,6 @@ |
mTestServer.getURL(NAVIGATION_FROM_TIMEOUT_PAGE), false, false, true); |
} |
- @Test |
@SmallTest |
@RetryOnFailure |
public void testNavigationFromTimerInSubFrame() throws InterruptedException { |
@@ -266,7 +248,6 @@ |
false, false); |
} |
- @Test |
@SmallTest |
@RetryOnFailure |
public void testNavigationFromUserGesture() throws InterruptedException { |
@@ -274,7 +255,6 @@ |
mTestServer.getURL(NAVIGATION_FROM_USER_GESTURE_PAGE), true, true, true); |
} |
- @Test |
@SmallTest |
public void testNavigationFromUserGestureInSubFrame() throws InterruptedException { |
loadUrlAndWaitForIntentUrl( |
@@ -282,7 +262,6 @@ |
true, false); |
} |
- @Test |
@SmallTest |
@RetryOnFailure |
public void testNavigationFromXHRCallback() throws InterruptedException { |
@@ -290,7 +269,6 @@ |
mTestServer.getURL(NAVIGATION_FROM_XHR_CALLBACK_PAGE), true, true, true); |
} |
- @Test |
@SmallTest |
@RetryOnFailure |
public void testNavigationFromXHRCallbackInSubFrame() throws InterruptedException { |
@@ -299,7 +277,6 @@ |
true, false); |
} |
- @Test |
@SmallTest |
@RetryOnFailure |
public void testNavigationFromXHRCallbackAndShortTimeout() throws InterruptedException { |
@@ -308,7 +285,6 @@ |
true, true, true); |
} |
- @Test |
@SmallTest |
@RetryOnFailure |
public void testNavigationFromXHRCallbackAndLongTimeout() throws InterruptedException { |
@@ -317,7 +293,6 @@ |
true, false, true); |
} |
- @Test |
@SmallTest |
@RetryOnFailure |
public void testNavigationWithFallbackURL() |
@@ -330,7 +305,6 @@ |
loadUrlAndWaitForIntentUrl(originalUrl, true, 0, false, fallbackUrl, true); |
} |
- @Test |
@SmallTest |
@RetryOnFailure |
public void testNavigationWithFallbackURLInSubFrame() |
@@ -358,7 +332,6 @@ |
loadUrlAndWaitForIntentUrl(originalUrl, true, false, false); |
} |
- @Test |
@SmallTest |
@Restriction(ChromeRestriction.RESTRICTION_TYPE_TABLET) |
public void testOpenWindowFromUserGesture() throws InterruptedException { |
@@ -366,13 +339,12 @@ |
true, 1, true, null, true); |
} |
- @Test |
@SmallTest |
@RetryOnFailure |
public void testRedirectionFromIntent() { |
Intent intent = new Intent(Intent.ACTION_VIEW, |
Uri.parse(mTestServer.getURL(NAVIGATION_FROM_JAVA_REDIRECTION_PAGE))); |
- Context targetContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); |
+ Context targetContext = getInstrumentation().getTargetContext(); |
intent.setClassName(targetContext, ChromeLauncherActivity.class.getName()); |
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
targetContext.startActivity(intent); |
@@ -384,4 +356,9 @@ |
} |
})); |
} |
+ |
+ @Override |
+ public void startMainActivity() throws InterruptedException { |
+ startMainActivityOnBlankPage(); |
+ } |
} |