<html>
<head>
    <script>
        function test2()
        {
            location.href = 'resources/redirect-load.html';
        }
        
        function test()
        {
            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.dumpBackForwardList();
                testRunner.waitUntilDone();
            }
            setTimeout(test2, 0);
        }
    </script>
</head>
<body onload="test()">
    This tests that the old url's document state (including the form state) is not restored for the new url after a redirect.<br>
    <input name="some_name" value="Test Failed">
</body>
</html>
