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

Unified Diff: android_webview/javatests/src/org/chromium/android_webview/test/ClientOnPageFinishedTest.java

Issue 281563002: [Android WebView] Filter out error page URL from onPageFinished to un-flake tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Restore import of Runnable Created 6 years, 6 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: android_webview/javatests/src/org/chromium/android_webview/test/ClientOnPageFinishedTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/ClientOnPageFinishedTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/ClientOnPageFinishedTest.java
index 93f07fbe7dbf377f4522f0f806ea6847962fa966..15c0bcd78eb7788912a0b9d5bc3d5e3d41ee7213 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/ClientOnPageFinishedTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/ClientOnPageFinishedTest.java
@@ -51,26 +51,41 @@ public class ClientOnPageFinishedTest extends AwTestBase {
@MediumTest
@Feature({"AndroidWebView"})
public void testOnPageFinishedCalledAfterError() throws Throwable {
- setTestAwContentsClient(new TestAwContentsClient() {
+ class LocalTestClient extends TestAwContentsClient {
private boolean isOnReceivedErrorCalled = false;
private boolean isOnPageFinishedCalled = false;
+ private boolean allowAboutBlank = false;
@Override
public void onReceivedError(int errorCode, String description, String failingUrl) {
+ assertEquals("onReceivedError called twice for " + failingUrl,
+ false, isOnReceivedErrorCalled);
isOnReceivedErrorCalled = true;
- // Make sure onReceivedError is called before onPageFinished
- assertEquals(false, isOnPageFinishedCalled);
+ assertEquals("onPageFinished called before onReceivedError for " + failingUrl,
+ false, isOnPageFinishedCalled);
super.onReceivedError(errorCode, description, failingUrl);
}
@Override
public void onPageFinished(String url) {
+ if (allowAboutBlank && "about:blank".equals(url)) {
+ super.onPageFinished(url);
+ return;
+ }
+ assertEquals("onPageFinished called twice for " + url,
+ false, isOnPageFinishedCalled);
isOnPageFinishedCalled = true;
- // Make sure onReceivedError is called before onPageFinished
- assertEquals(true, isOnReceivedErrorCalled);
+ assertEquals("onReceivedError not called before onPageFinished for " + url,
+ true, isOnReceivedErrorCalled);
super.onPageFinished(url);
}
- });
+
+ void setAllowAboutBlank() {
+ allowAboutBlank = true;
+ }
+ };
+ LocalTestClient testContentsClient = new LocalTestClient();
+ setTestAwContentsClient(testContentsClient);
TestCallbackHelperContainer.OnReceivedErrorHelper onReceivedErrorHelper =
mContentsClient.getOnReceivedErrorHelper();
@@ -78,12 +93,16 @@ public class ClientOnPageFinishedTest extends AwTestBase {
mContentsClient.getOnPageFinishedHelper();
String invalidUrl = "http://localhost:7/non_existent";
- int onReceivedErrorCallCount = onReceivedErrorHelper.getCallCount();
- int onPageFinishedCallCount = onPageFinishedHelper.getCallCount();
loadUrlSync(mAwContents, onPageFinishedHelper, invalidUrl);
assertEquals(invalidUrl, onReceivedErrorHelper.getFailingUrl());
assertEquals(invalidUrl, onPageFinishedHelper.getUrl());
+
+ // Rather than wait a fixed time to see that another onPageFinished callback isn't issued
+ // we load a valid page. Since callbacks arrive sequentially, this will ensure that
+ // any extra calls of onPageFinished / onReceivedError will arrive to our client.
+ testContentsClient.setAllowAboutBlank();
+ loadUrlSync(mAwContents, onPageFinishedHelper, "about:blank");
}
@MediumTest

Powered by Google App Engine
This is Rietveld 408576698