<html>
<head>
    <script>
    var i = 0;
    function test() {
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
            var button = document.getElementById("button");
            eventSender.mouseMoveTo(button.offsetParent.offsetLeft + button.offsetLeft + button.offsetWidth / 2, button.offsetParent.offsetTop +  button.offsetTop + button.offsetHeight / 2);
            eventSender.mouseDown();
            eventSender.mouseUp();
        }
    }
    function openWindow() {
        var newWindow = window.open('resources/history_reload_window.html');
    }

    </script>
</head>
<body onload="test()">
    This tests that history.go(0) will force a page reload.<br>
    <input id="button" type="button" onclick="openWindow()" value="click"></input>
    <div id="console"></div>
</body>
</html>
