<script src="resources/redirect-updates-history-item.js"></script>
<script>

// Test that we properly update a history item when returning to the history
// item results in a redirect to a different document.  We verify that the
// resulting document is not treated as the same document as the original
// document in history.  See redirect-on-back-updates-history-item.py for more
// details.

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.dumpBackForwardList();
    testRunner.waitUntilDone();
}
onload = function() {
    setTimeout(function() {
        clearLocationCookie();
        location = 'resources/redirect-on-back-updates-history-item.py';
    }, 0);
}
</script>
