73 lines
1.9 KiB
HTML
73 lines
1.9 KiB
HTML
<head>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<pre id="console"></pre>
|
|
<script>
|
|
description('Verifies that we can go back and forward from the top level of a frame set where a window changes its name after the initial load.');
|
|
|
|
var testWindow;
|
|
|
|
onload = function()
|
|
{
|
|
if (window.testRunner) {
|
|
testRunner.setCanOpenWindows();
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
}
|
|
|
|
testWindow = window.open('resources/history-subframe-with-name-container.html');
|
|
if (!testWindow)
|
|
testFailed('Could not open test window');
|
|
}
|
|
|
|
var State = {
|
|
0: 'INITIAL',
|
|
1: 'FRAME_LOADED_INITIAL',
|
|
2: 'FRAME_LOADED_NAV',
|
|
3: 'FRAME_LOADED_BACK',
|
|
4: 'FRAME_LOADED_FORWARD'
|
|
};
|
|
|
|
var currentState = 0;
|
|
var currentPageId;
|
|
|
|
function onFrameLoaded(pageId)
|
|
{
|
|
// The page ID is put in a global so that the eval() inside of shouldBe can
|
|
// see it
|
|
currentPageId = pageId;
|
|
currentState++;
|
|
|
|
switch (currentState) {
|
|
case 1:
|
|
shouldBe('2', 'currentPageId');
|
|
// Make sure we generate a history entry.
|
|
setTimeout(function() { testWindow.frames[0].location.href = 'resources/history-subframe-with-name-3.html' }, 0);
|
|
break;
|
|
case 2:
|
|
shouldBe('3', 'currentPageId');
|
|
testWindow.history.back();
|
|
break;
|
|
case 3:
|
|
shouldBe('2', 'currentPageId');
|
|
testWindow.history.forward();
|
|
break;
|
|
case 4:
|
|
shouldBe('3', 'currentPageId');
|
|
break;
|
|
default:
|
|
testFailed('Should not be in state ' + currentState + ". currentPageId is " + currentPageId);
|
|
break;
|
|
}
|
|
|
|
if (currentState == 4) {
|
|
testPassed('Complete: navigated through all the states');
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|