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

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

Issue 2770193004: (reland) Use stricter checking in UrlOverridingTest (Closed)
Patch Set: fix merging, better error msg Created 3 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/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 84ea6adaccaacf4e0cfe06533188059668b63895..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
@@ -71,14 +71,11 @@ public class UrlOverridingTest extends ChromeActivityTestCaseBase<ChromeActivity
private static class TestTabObserver extends EmptyTabObserver {
private final CallbackHelper mFinishCallback;
- private final CallbackHelper mPageFailCallback;
- private final CallbackHelper mLoadFailCallback;
+ private final CallbackHelper mFailCallback;
- TestTabObserver(final CallbackHelper finishCallback, final CallbackHelper pageFailCallback,
- final CallbackHelper loadFailCallback) {
+ TestTabObserver(final CallbackHelper finishCallback, final CallbackHelper failCallback) {
mFinishCallback = finishCallback;
- mPageFailCallback = pageFailCallback;
- mLoadFailCallback = loadFailCallback;
+ mFailCallback = failCallback;
}
@Override
@@ -86,9 +83,8 @@ public class UrlOverridingTest extends ChromeActivityTestCaseBase<ChromeActivity
boolean isErrorPage, boolean hasCommitted, boolean isSameDocument,
boolean isFragmentNavigation, Integer pageTransition, int errorCode,
int httpStatusCode) {
- if (errorCode != 0) {
- mLoadFailCallback.notifyCalled();
- }
+ if (errorCode == 0) return;
+ mFailCallback.notifyCalled();
}
@Override
@@ -97,20 +93,9 @@ public class UrlOverridingTest extends ChromeActivityTestCaseBase<ChromeActivity
}
@Override
- public void onPageLoadFailed(Tab tab, int errorCode) {
- mPageFailCallback.notifyCalled();
- }
-
- @Override
- public void onDidFailLoad(Tab tab, boolean isMainFrame, int errorCode, String description,
- String failingUrl) {
- mLoadFailCallback.notifyCalled();
- }
-
- @Override
public void onDestroyed(Tab tab) {
// A new tab is destroyed when loading is overridden while opening it.
- mPageFailCallback.notifyCalled();
+ mFailCallback.notifyCalled();
}
}
@@ -147,21 +132,19 @@ public class UrlOverridingTest extends ChromeActivityTestCaseBase<ChromeActivity
int expectedNewTabCount, final boolean shouldLaunchExternalIntent,
final String expectedFinalUrl, boolean isMainFrame) throws InterruptedException {
final CallbackHelper finishCallback = new CallbackHelper();
- final CallbackHelper pageFailCallback = new CallbackHelper();
- final CallbackHelper loadFailCallback = new CallbackHelper();
+ final CallbackHelper failCallback = new CallbackHelper();
final CallbackHelper newTabCallback = new CallbackHelper();
final Tab tab = getActivity().getActivityTab();
final Tab[] latestTabHolder = new Tab[1];
latestTabHolder[0] = tab;
- tab.addObserver(new TestTabObserver(finishCallback, pageFailCallback, loadFailCallback));
+ tab.addObserver(new TestTabObserver(finishCallback, failCallback));
if (expectedNewTabCount > 0) {
getActivity().getTabModelSelector().addObserver(new EmptyTabModelSelectorObserver() {
@Override
public void onNewTabCreated(Tab newTab) {
newTabCallback.notifyCalled();
- newTab.addObserver(new TestTabObserver(
- finishCallback, pageFailCallback, loadFailCallback));
+ newTab.addObserver(new TestTabObserver(finishCallback, failCallback));
latestTabHolder[0] = newTab;
}
});
@@ -190,16 +173,29 @@ public class UrlOverridingTest extends ChromeActivityTestCaseBase<ChromeActivity
singleClickView(tab.getView());
}
- CallbackHelper helper = isMainFrame ? pageFailCallback : loadFailCallback;
- if (helper.getCallCount() == 0) {
+ if (failCallback.getCallCount() == 0) {
try {
- helper.waitForCallback(0, 1, 20, TimeUnit.SECONDS);
+ failCallback.waitForCallback(0, 1, 20, TimeUnit.SECONDS);
} catch (TimeoutException ex) {
- fail();
+ fail("Haven't received navigation failure of intents.");
return;
}
}
+ boolean hasFallbackUrl =
+ expectedFinalUrl != null && !TextUtils.equals(url, expectedFinalUrl);
+
+ if (hasFallbackUrl) {
+ if (finishCallback.getCallCount() == 1) {
+ try {
+ finishCallback.waitForCallback(1, 1, 20, TimeUnit.SECONDS);
+ } catch (TimeoutException ex) {
+ fail("Fallback URL is not loaded");
+ return;
+ }
+ }
+ }
+
assertEquals(expectedNewTabCount, newTabCallback.getCallCount());
// For sub frames, the |loadFailCallback| run through different threads
// from the ExternalNavigationHandler. As a result, there is no guarantee
@@ -225,6 +221,16 @@ public class UrlOverridingTest extends ChromeActivityTestCaseBase<ChromeActivity
|| TextUtils.equals(expectedFinalUrl, tab.getUrl());
}
});
+
+ CriteriaHelper.pollUiThread(
+ Criteria.equals(shouldLaunchExternalIntent ? 1 : 0, new Callable<Integer>() {
+ @Override
+ public Integer call() {
+ return mActivityMonitor.getHits();
+ }
+ }));
+ assertEquals(1 + (hasFallbackUrl ? 1 : 0), finishCallback.getCallCount());
+ assertEquals(1, failCallback.getCallCount());
}
@SmallTest
« 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