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();
    }
  }