| 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 aaaa6cc5860a6e385f7a1200c59f7d26345145a0..722e09d59d991c01295574b7d756fdb2060e1cfb 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
|
| @@ -72,6 +72,53 @@ public class ClientOnPageFinishedTest extends AwTestBase {
|
| assertEquals(1, onReceivedErrorHelper.getCallCount());
|
| }
|
|
|
| + /**
|
| + * If url1 is redirected url2, and url2 load is overridden, onPageFinished should still be
|
| + * called for url2.
|
| + * Steps:
|
| + * 1. load url1. url1 onPageStarted
|
| + * 2. server redirects url1 to url2. url2 onPageStarted
|
| + * 3. shouldOverridedUrlLoading called for url2 and returns true
|
| + * 4. url2 onPageFinishedCalled
|
| + */
|
| + @MediumTest
|
| + @Feature({"AndroidWebView"})
|
| + public void testOnPageFinishedCalledAfterRedirectedUrlIsOverridden() throws Throwable {
|
| + TestWebServer webServer = null;
|
| + try {
|
| + webServer = new TestWebServer(false);
|
| + final String redirectTargetPath = "/redirect_target.html";
|
| + // If you visit redirectUrl, you will be redirected to redirectTargetUrl
|
| + final String redirectTargetUrl = webServer.setResponse(redirectTargetPath,
|
| + "<html><body>hello world</body></html>", null);
|
| + final String redirectUrl = webServer.setRedirect("/302.html", redirectTargetUrl);
|
| +
|
| + mContentsClient = new TestAwContentsClient() {
|
| + @Override
|
| + public boolean shouldOverrideUrlLoading(String url) {
|
| + if (url.equals(redirectTargetUrl)) {
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| + };
|
| + final AwTestContainerView testContainerView =
|
| + createAwTestContainerViewOnMainSync(mContentsClient);
|
| + mAwContents = testContainerView.getAwContents();
|
| +
|
| + TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper =
|
| + mContentsClient.getOnPageFinishedHelper();
|
| +
|
| + loadUrlSync(mAwContents, onPageFinishedHelper, redirectUrl);
|
| +
|
| + // onPageFinished needs to be called for redirectTargetUrl, but not for redirectUrl
|
| + assertEquals(1, onPageFinishedHelper.getCallCount());
|
| + assertEquals(redirectTargetUrl, onPageFinishedHelper.getUrl());
|
| + } finally {
|
| + if (webServer != null) webServer.shutdown();
|
| + }
|
| + }
|
| +
|
| @MediumTest
|
| @Feature({"AndroidWebView"})
|
| public void testOnPageFinishedNotCalledForValidSubresources() throws Throwable {
|
|
|