public void testShouldOverrideUrlLoadingNotCalledForAnchorNavigationsWithNonHierarchicalScheme() { try { final String anchorLinkPath = "/anchor_link.html"; final String anchorLinkUrl = mWebServer.getResponseUrl(anchorLinkPath); addPageToTestServer( mWebServer, anchorLinkPath, CommonResources.makeHtmlPageWithSimpleLinkTo(anchorLinkUrl + "#anchor")); loadDataSync( null, CommonResources.makeHtmlPageWithSimpleLinkTo("#anchor"), "text/html", false); ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); final int shouldOverrideUrlLoadingCallCount = mShouldOverrideUrlLoadingHelper.getCallCount(); clickOnElementId("link", null); loadUrlSync("about:blank"); assertEquals( shouldOverrideUrlLoadingCallCount, mShouldOverrideUrlLoadingHelper.getCallCount()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } catch (Throwable e) { assertTrue(false); e.printStackTrace(); } }
public void testShouldOverrideUrlLoadingOnBackForwardNavigation() { try { final String url = "file:///android_asset/index.html"; final String httpPath = "/test.html"; final String httpPathOnServer = mWebServer.getResponseUrl(httpPath); addPageToTestServer( mWebServer, httpPath, CommonResources.makeHtmlPageWithSimpleLinkTo(httpPathOnServer)); ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); loadUrlSync(httpPathOnServer); loadUrlSync(url); assertEquals(2, mShouldOverrideUrlLoadingHelper.getCallCount()); String oldTitle = getTitleOnUiThread(); goBackSync(1); assertFalse(oldTitle.equals(getTitleOnUiThread())); assertEquals(3, mShouldOverrideUrlLoadingHelper.getCallCount()); oldTitle = getTitleOnUiThread(); goForwardSync(1); assertFalse(oldTitle.equals(getTitleOnUiThread())); assertEquals(4, mShouldOverrideUrlLoadingHelper.getCallCount()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } catch (Throwable e) { assertTrue(false); e.printStackTrace(); } }
public void testShouldOverrideUrlLoadingForDataUrl() { try { final String dataUrl = "data:text/html;base64," + "PGh0bWw+PGhlYWQ+PHRpdGxlPmRhdGFVcmxUZXN0QmFzZTY0PC90aXRsZT48" + "L2hlYWQ+PC9odG1sPg=="; loadDataSync(null, CommonResources.makeHtmlPageWithSimpleLinkTo(dataUrl), "text/html", false); ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); int callCount = mShouldOverrideUrlLoadingHelper.getCallCount(); clickOnElementId("link", null); mShouldOverrideUrlLoadingHelper.waitForCallback(callCount); assertTrue( "Expected URL that starts with 'data:' but got: <" + mShouldOverrideUrlLoadingHelper.getShouldOverrideUrlLoadingUrl() + "> instead.", mShouldOverrideUrlLoadingHelper.getShouldOverrideUrlLoadingUrl().startsWith("data:")); assertEquals(1, mShouldOverrideUrlLoadingHelper.getCallCount()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } catch (Throwable e) { assertTrue(false); e.printStackTrace(); } }
public void testShouldOverrideUrlLoadingWithCorrectUrl() { try { final String redirectTargetUrl = addPageToTestServer( mWebServer, REDIRECT_TARGET_PATH, CommonResources.makeHtmlPageFrom( "<title>" + TITLE + "</title> ", "<div>This is the end of the redirect chain</div>")); loadDataSync( null, CommonResources.makeHtmlPageWithSimpleLinkTo(redirectTargetUrl), "text/html", false); ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); int callCount = mShouldOverrideUrlLoadingHelper.getCallCount(); clickOnElementId("link", null); mShouldOverrideUrlLoadingHelper.waitForCallback(callCount); assertEquals( redirectTargetUrl, mShouldOverrideUrlLoadingHelper.getShouldOverrideUrlLoadingUrl()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } catch (Throwable e) { assertTrue(false); e.printStackTrace(); } }
public void testShouldOverrideUrlLoadingNotCalledOnLoadData() { try { ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); loadDataSync( null, CommonResources.makeHtmlPageWithSimpleLinkTo(DATA_URL), "text/html", false); assertEquals(0, mShouldOverrideUrlLoadingHelper.getCallCount()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } }
public void testShouldOverrideUrlLoadingWhenLinkClicked() { try { loadDataSync( null, CommonResources.makeHtmlPageWithSimpleLinkTo(DATA_URL), "text/html", false); ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); int callCount = mShouldOverrideUrlLoadingHelper.getCallCount(); clickOnElementId("link", null); mShouldOverrideUrlLoadingHelper.waitForCallback(callCount); assertEquals(1, mShouldOverrideUrlLoadingHelper.getCallCount()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } catch (Throwable e) { assertTrue(false); e.printStackTrace(); } }
public void testShouldOverrideUrlLoading_OnPageStarted() { try { OnPageStartedHelper onPageStartedHelper = mTestHelperBridge.getOnPageStartedHelper(); ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); loadDataSync( null, CommonResources.makeHtmlPageWithSimpleLinkTo(DATA_URL), "text/html", false); final int shouldOverrideUrlLoadingCallCount = mShouldOverrideUrlLoadingHelper.getCallCount(); final int onPageStartedCallCount = onPageStartedHelper.getCallCount(); mShouldOverrideUrlLoadingHelper.setShouldOverrideUrlLoadingReturnValue(true); clickOnElementId("link", null); mShouldOverrideUrlLoadingHelper.waitForCallback(shouldOverrideUrlLoadingCallCount); assertEquals(onPageStartedCallCount, onPageStartedHelper.getCallCount()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } catch (Throwable e) { assertTrue(false); e.printStackTrace(); } }
public void testShouldOverrideUrlLoadingWhenSelfLinkClicked() { try { final String httpPath = "/page_with_link_to_self.html"; final String httpPathOnServer = mWebServer.getResponseUrl(httpPath); addPageToTestServer( mWebServer, httpPath, CommonResources.makeHtmlPageWithSimpleLinkTo(httpPathOnServer)); ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); loadUrlSync(httpPathOnServer); int callCount = mShouldOverrideUrlLoadingHelper.getCallCount(); clickOnElementId("link", null); mShouldOverrideUrlLoadingHelper.waitForCallback(callCount); assertEquals( httpPathOnServer, mShouldOverrideUrlLoadingHelper.getShouldOverrideUrlLoadingUrl()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } catch (Throwable e) { assertTrue(false); e.printStackTrace(); } }
public void testShouldOverrideUrlLoadingForUnsupportedSchemes() { try { final String unsupportedSchemeUrl = "foobar://resource/1"; loadDataSync( null, CommonResources.makeHtmlPageWithSimpleLinkTo(unsupportedSchemeUrl), "text/html", false); ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); int callCount = mShouldOverrideUrlLoadingHelper.getCallCount(); clickOnElementId("link", null); mShouldOverrideUrlLoadingHelper.waitForCallback(callCount); assertEquals( unsupportedSchemeUrl, mShouldOverrideUrlLoadingHelper.getShouldOverrideUrlLoadingUrl()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } catch (Throwable e) { assertTrue(false); e.printStackTrace(); } }