public void testShouldOverrideUrlLoadingFor302AfterPostNavigations() { try { final String redirectTargetUrl = addPageToTestServer( mWebServer, REDIRECT_TARGET_PATH, CommonResources.makeHtmlPageFrom( "<title>" + TITLE + "</title> ", "<div>This is the end of the redirect chain</div>")); final String postToGetRedirectUrl = mWebServer.setRedirect("/302.html", redirectTargetUrl); final String postLinkUrl = addPageToTestServer( mWebServer, "/page_with_post_link.html", CommonResources.makeHtmlPageWithSimplePostFormTo(postToGetRedirectUrl)); loadUrlSync(postLinkUrl); ShouldOverrideUrlLoadingHelper mShouldOverrideUrlLoadingHelper = mTestHelperBridge.getShouldOverrideUrlLoadingHelper(); final int shouldOverrideUrlLoadingCallCount = mShouldOverrideUrlLoadingHelper.getCallCount(); clickOnElementId("link", null); mShouldOverrideUrlLoadingHelper.waitForCallback(shouldOverrideUrlLoadingCallCount); // Wait for the target URL to be fetched from the server. pollOnUiThread( new Callable<Boolean>() { @Override public Boolean call() throws Exception { return mWebServer.getRequestCount(REDIRECT_TARGET_PATH) == 1; } }); assertEquals( redirectTargetUrl, mShouldOverrideUrlLoadingHelper.getShouldOverrideUrlLoadingUrl()); } catch (Exception e) { assertTrue(false); e.printStackTrace(); } catch (Throwable e) { assertTrue(false); e.printStackTrace(); } }