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..69b43954a4b8504409dcc0cddce943e67209a19b 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,55 @@ 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; |
+ |
sgurun-gerrit only
2014/02/11 22:48:44
drop the empty line.
hush (inactive)
2014/02/11 23:13:30
Done.
|
+ 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(); |
+ } |
+ |
sgurun-gerrit only
2014/02/11 22:48:44
drop the empty line
hush (inactive)
2014/02/11 23:13:30
Done.
|
+ } |
+ |
@MediumTest |
@Feature({"AndroidWebView"}) |
public void testOnPageFinishedNotCalledForValidSubresources() throws Throwable { |