| <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.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> |