blob: d771f7ce9f10b198c2ffff5afccca7c132fb02b4 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>Resending form on back navigation from POST submissions</title>
<script src="../resources/js-test-pre.js"></script>
</head>
<body onload="runTest()">
<iframe id="frame" onload="nextStep()" src="resources/post-in-iframe-with-back-navigation-page-1.303-to-307-target.py" width=300 height=300></iframe>
<p>Resending form on back navigation from POST submissions<br/><br/>
To test manually, click on the navigation links in the iframe. When going back from page 3, it should navigate to page 2 without requesting to resend the form.
</p>
<div id="console"></div>
<script>
var loaded = false;
function runTest()
{
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
loaded = true;
setTimeout(function() { testRunner.notifyDone(); }, 200);
}
function clickLink()
{
var frame = document.getElementById("frame");
var link = window.frames[0].document.getElementById("link");
if (window.eventSender) {
eventSender.mouseMoveTo(link.offsetLeft + frame.offsetLeft + 10, link.offsetTop + frame.offsetTop + 3);
eventSender.mouseDown();
eventSender.mouseUp();
}
}
function getTitle()
{
return window.frames[0].document.querySelector("h1").innerText;
}
var step = 0;
var step2output;
function nextStep()
{
if (!loaded) {
setTimeout(nextStep, 10);
return;
}
switch (step++) {
case 0:
shouldBeEqualToString("getTitle()", "Page 1");
setTimeout(clickLink, 0);
break;
case 1:
shouldBeEqualToString("getTitle()", "Page 2");
step2output = window.frames[0].document.getElementById("submissionTime").innerText;
setTimeout(clickLink, 0);
break;
case 2:
shouldBeEqualToString("getTitle()", "Page 3");
setTimeout(clickLink, 0);
break;
case 3:
shouldBeEqualToString("getTitle()", "Page 2");
shouldBe("window.frames[0].document.getElementById('submissionTime').innerText", "step2output");
if (window.testRunner);
testRunner.notifyDone();
break;
}
}
successfullyParsed = true;
</script>
<script src="../resources/js-test-post.js"></script>
</body>
</html>