Chromium Code Reviews| 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..8127e64dfd6a65606f1b2f7fe672c9b530f0cd21 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 OurTestAwContentsClient extends TestAwContentsClient { |
|
mkosiba (inactive)
2014/06/06 14:25:04
nit: maybe LocalTestAwContentsClient? or just Loca
mnaganov (inactive)
2014/06/16 15:00:41
Done.
|
| 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; |
| + } |
| + }; |
| + OurTestAwContentsClient testContentsClient = new OurTestAwContentsClient(); |
| + 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 |