| Index: android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldIgnoreNavigationTest.java
|
| diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldIgnoreNavigationTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldIgnoreNavigationTest.java
|
| index 971a579ba1bee2712eed45d69a1ee5f81b4a277d..182c82b1eeb217016c6fbd20de480704125e297c 100644
|
| --- a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldIgnoreNavigationTest.java
|
| +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldIgnoreNavigationTest.java
|
| @@ -39,7 +39,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
| private final static String TITLE = "TITLE";
|
|
|
| private static final long TEST_TIMEOUT = 20000L;
|
| - private static final int CHECK_INTERVAL = 100;
|
| + private static final long CHECK_INTERVAL = 100;
|
|
|
| private static class TestAwContentsClient
|
| extends org.chromium.android_webview.test.TestAwContentsClient {
|
| @@ -189,7 +189,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationNotCalledOnLoadUrl() throws Throwable {
|
| + public void testNotCalledOnLoadUrl() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -205,7 +205,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCantBlockLoads() throws Throwable {
|
| + public void testCantBlockLoads() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -223,7 +223,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledBeforeOnPageStarted() throws Throwable {
|
| + public void testCalledBeforeOnPageStarted() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -247,7 +247,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationDoesNotCauseOnReceivedError() throws Throwable {
|
| + public void testDoesNotCauseOnReceivedError() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -279,7 +279,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationNotCalledForAnchorNavigations() throws Throwable {
|
| + public void testNotCalledForAnchorNavigations() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -309,7 +309,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledWhenLinkClicked() throws Throwable {
|
| + public void testCalledWhenLinkClicked() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -331,7 +331,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledWhenSelfLinkClicked() throws Throwable {
|
| + public void testCalledWhenSelfLinkClicked() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -358,7 +358,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledWhenNavigatingFromJavaScriptUsingAssign()
|
| + public void testCalledWhenNavigatingFromJavaScriptUsingAssign()
|
| throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| @@ -381,7 +381,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledWhenNavigatingFromJavaScriptUsingReplace()
|
| + public void testCalledWhenNavigatingFromJavaScriptUsingReplace()
|
| throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| @@ -402,7 +402,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationPassesCorrectUrl() throws Throwable {
|
| + public void testPassesCorrectUrl() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -423,7 +423,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCanIgnoreLoading() throws Throwable {
|
| + public void testCanIgnoreLoading() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -467,7 +467,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledForDataUrl() throws Throwable {
|
| + public void testCalledForDataUrl() throws Throwable {
|
| final String dataUrl =
|
| "data:text/html;base64," +
|
| "PGh0bWw+PGhlYWQ+PHRpdGxlPmRhdGFVcmxUZXN0QmFzZTY0PC90aXRsZT48" +
|
| @@ -493,7 +493,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledForUnsupportedSchemes() throws Throwable {
|
| + public void testCalledForUnsupportedSchemes() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -514,7 +514,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationNotCalledForPostNavigations() throws Throwable {
|
| + public void testNotCalledForPostNavigations() throws Throwable {
|
| // The reason POST requests are excluded is BUG 155250.
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| @@ -532,6 +532,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
| final int shouldIgnoreNavigationCallCount =
|
| shouldIgnoreNavigationHelper.getCallCount();
|
|
|
| + assertEquals(0, mWebServer.getRequestCount(REDIRECT_TARGET_PATH));
|
| clickOnLinkUsingJs(awContents, contentsClient);
|
|
|
| // Wait for the target URL to be fetched from the server.
|
| @@ -540,7 +541,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
| public boolean isSatisfied() {
|
| return mWebServer.getRequestCount(REDIRECT_TARGET_PATH) == 1;
|
| }
|
| - }, WAIT_TIMEOUT_SECONDS * 1000, CHECK_INTERVAL));
|
| + }, WAIT_TIMEOUT_SECONDS * 1000L, CHECK_INTERVAL));
|
|
|
| // Since the targetURL was loaded from the test server it means all processing related
|
| // to dispatching a shouldIgnoreNavigation callback had finished and checking the call
|
| @@ -551,7 +552,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationNotCalledForIframeNavigations() throws Throwable {
|
| + public void testNotCalledForIframeHttpNavigations() throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(contentsClient);
|
| @@ -569,15 +570,44 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
| final int shouldIgnoreNavigationCallCount =
|
| shouldIgnoreNavigationHelper.getCallCount();
|
|
|
| + assertEquals(0, mWebServer.getRequestCount(REDIRECT_TARGET_PATH));
|
| loadUrlSync(awContents, contentsClient.getOnPageFinishedHelper(), pageWithIframeUrl);
|
|
|
| - // After we load this URL we're certain that any in-flight callbacks for the previous
|
| - // navigation have been delivered.
|
| - loadUrlSync(awContents, contentsClient.getOnPageFinishedHelper(), ABOUT_BLANK_URL);
|
| + // Wait for the redirect target URL to be fetched from the server.
|
| + assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
|
| + @Override
|
| + public boolean isSatisfied() {
|
| + return mWebServer.getRequestCount(REDIRECT_TARGET_PATH) == 1;
|
| + }
|
| + }, WAIT_TIMEOUT_SECONDS * 1000L, CHECK_INTERVAL));
|
|
|
| assertEquals(shouldIgnoreNavigationCallCount,
|
| shouldIgnoreNavigationHelper.getCallCount());
|
| - assertEquals(1, mWebServer.getRequestCount(REDIRECT_TARGET_PATH));
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"AndroidWebView", "Navigation"})
|
| + public void testCalledForIframeUnsupportedSchemeNavigations() throws Throwable {
|
| + final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| + final AwTestContainerView testContainerView =
|
| + createAwTestContainerViewOnMainSync(contentsClient);
|
| + final AwContents awContents = testContainerView.getAwContents();
|
| + final TestAwContentsClient.ShouldIgnoreNavigationHelper shouldIgnoreNavigationHelper =
|
| + contentsClient.getShouldIgnoreNavigationHelper();
|
| +
|
| + final String unsupportedSchemeUrl = "foobar://resource/1";
|
| + final String pageWithIframeUrl =
|
| + addPageToTestServer(mWebServer, "/iframe_intercept.html",
|
| + makeHtmlPageFrom("", "<iframe src=\"" + unsupportedSchemeUrl + "\" />"));
|
| +
|
| + final int shouldIgnoreNavigationCallCount =
|
| + shouldIgnoreNavigationHelper.getCallCount();
|
| +
|
| + loadUrlSync(awContents, contentsClient.getOnPageFinishedHelper(), pageWithIframeUrl);
|
| +
|
| + shouldIgnoreNavigationHelper.waitForCallback(shouldIgnoreNavigationCallCount);
|
| + assertEquals(unsupportedSchemeUrl,
|
| + shouldIgnoreNavigationHelper.getShouldIgnoreNavigationUrl());
|
| }
|
|
|
| /**
|
| @@ -588,7 +618,7 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
| * The second part of the test loads a page that contains a link which points at the redirect
|
| * URL. We expect two callbacks - one for the redirect link and another for the destination.
|
| */
|
| - private void doTestShouldIgnoreNavigationCalledOnRedirect(TestWebServer webServer,
|
| + private void doTestCalledOnRedirect(TestWebServer webServer,
|
| String redirectUrl, String redirectTarget) throws Throwable {
|
| final TestAwContentsClient contentsClient = new TestAwContentsClient();
|
| final AwTestContainerView testContainerView =
|
| @@ -632,66 +662,60 @@ public class AwContentsClientShouldIgnoreNavigationTest extends AndroidWebViewTe
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledOn302Redirect() throws Throwable {
|
| + public void testCalledOn302Redirect() throws Throwable {
|
| final String redirectTargetUrl = createRedirectTargetPage(mWebServer);
|
| final String redirectUrl = mWebServer.setRedirect("/302.html", redirectTargetUrl);
|
|
|
| - doTestShouldIgnoreNavigationCalledOnRedirect(mWebServer, redirectUrl,
|
| - redirectTargetUrl);
|
| + doTestCalledOnRedirect(mWebServer, redirectUrl, redirectTargetUrl);
|
| }
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledOnMetaRefreshRedirect() throws Throwable {
|
| + public void testCalledOnMetaRefreshRedirect() throws Throwable {
|
| final String redirectTargetUrl = createRedirectTargetPage(mWebServer);
|
| final String redirectUrl = addPageToTestServer(mWebServer, "/meta_refresh.html",
|
| getHtmlForPageWithMetaRefreshRedirectTo(redirectTargetUrl));
|
| - doTestShouldIgnoreNavigationCalledOnRedirect(mWebServer, redirectUrl,
|
| - redirectTargetUrl);
|
| + doTestCalledOnRedirect(mWebServer, redirectUrl, redirectTargetUrl);
|
| }
|
|
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledOnJavaScriptLocationImmediateAssignRedirect()
|
| + public void testCalledOnJavaScriptLocationImmediateAssignRedirect()
|
| throws Throwable {
|
| final String redirectTargetUrl = createRedirectTargetPage(mWebServer);
|
| final String redirectUrl = addPageToTestServer(mWebServer, "/js_immediate_assign.html",
|
| getHtmlForPageWithJsRedirectTo(redirectTargetUrl, "Assign", 0));
|
| - doTestShouldIgnoreNavigationCalledOnRedirect(mWebServer, redirectUrl,
|
| - redirectTargetUrl);
|
| + doTestCalledOnRedirect(mWebServer, redirectUrl, redirectTargetUrl);
|
| }
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledOnJavaScriptLocationImmediateReplaceRedirect()
|
| + public void testCalledOnJavaScriptLocationImmediateReplaceRedirect()
|
| throws Throwable {
|
| final String redirectTargetUrl = createRedirectTargetPage(mWebServer);
|
| final String redirectUrl = addPageToTestServer(mWebServer, "/js_immediate_replace.html",
|
| getHtmlForPageWithJsRedirectTo(redirectTargetUrl, "Replace", 0));
|
| - doTestShouldIgnoreNavigationCalledOnRedirect(mWebServer, redirectUrl,
|
| - redirectTargetUrl);
|
| + doTestCalledOnRedirect(mWebServer, redirectUrl, redirectTargetUrl);
|
| }
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledOnJavaScriptLocationDelayedAssignRedirect()
|
| + public void testCalledOnJavaScriptLocationDelayedAssignRedirect()
|
| throws Throwable {
|
| final String redirectTargetUrl = createRedirectTargetPage(mWebServer);
|
| final String redirectUrl = addPageToTestServer(mWebServer, "/js_delayed_assign.html",
|
| getHtmlForPageWithJsRedirectTo(redirectTargetUrl, "Assign", 100));
|
| - doTestShouldIgnoreNavigationCalledOnRedirect(mWebServer, redirectUrl,
|
| - redirectTargetUrl);
|
| + doTestCalledOnRedirect(mWebServer, redirectUrl, redirectTargetUrl);
|
| }
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Navigation"})
|
| - public void testShouldIgnoreNavigationCalledOnJavaScriptLocationDelayedReplaceRedirect()
|
| + public void testCalledOnJavaScriptLocationDelayedReplaceRedirect()
|
| throws Throwable {
|
| final String redirectTargetUrl = createRedirectTargetPage(mWebServer);
|
| final String redirectUrl = addPageToTestServer(mWebServer, "/js_delayed_replace.html",
|
| getHtmlForPageWithJsRedirectTo(redirectTargetUrl, "Replace", 100));
|
| - doTestShouldIgnoreNavigationCalledOnRedirect(mWebServer, redirectUrl,
|
| - redirectTargetUrl);
|
| + doTestCalledOnRedirect(mWebServer, redirectUrl, redirectTargetUrl);
|
| }
|
| }
|
|
|