diff options
Diffstat (limited to 'docshell/test/chrome/bug89419_window.xul')
-rw-r--r-- | docshell/test/chrome/bug89419_window.xul | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/docshell/test/chrome/bug89419_window.xul b/docshell/test/chrome/bug89419_window.xul new file mode 100644 index 000000000..923378ea0 --- /dev/null +++ b/docshell/test/chrome/bug89419_window.xul @@ -0,0 +1,82 @@ +<?xml version="1.0"?> +<?xml-stylesheet href="chrome://global/skin" type="text/css"?> + +<window id="89419Test" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" + width="600" + height="600" + onload="setTimeout(nextTest,0);" + title="bug 89419 test"> + + <script type="application/javascript" src= "chrome://mochikit/content/chrome-harness.js" /> + <script type="text/javascript" + src="chrome://mochikit/content/tests/SimpleTest/specialpowersAPI.js"/> + <script type="text/javascript" + src="chrome://mochikit/content/tests/SimpleTest/SpecialPowersObserverAPI.js"/> + <script type="text/javascript" + src="chrome://mochikit/content/tests/SimpleTest/specialpowers.js"/> + <script type="application/javascript" src="docshell_helpers.js" /> + <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/WindowSnapshot.js"></script> + + <script type="application/javascript"><![CDATA[ + // Define the generator-iterator for the tests. + var tests = testIterator(); + + //// + // Execute the next test in the generator function. + // + function nextTest() { + tests.next(); + } + + //// + // Generator function for test steps for bug 89419: + // A visited link should have the :visited style applied + // to it when displayed on a page which was fetched from + // the bfcache. + // + function testIterator() + { + // Load a test page containing an image referring to the sjs that returns + // a different redirect every time it's loaded. + doPageNavigation({ + uri: getHttpUrl("89419.html"), + onNavComplete: nextTest, + preventBFCache: true + }); + yield undefined; + + var first = snapshotWindow(TestWindow.getWindow()); + + doPageNavigation({ + uri: "about:blank", + onNavComplete: nextTest + }); + yield undefined; + + var second = snapshotWindow(TestWindow.getWindow()); + function snapshotsEqual(snap1, snap2) { + return compareSnapshots(snap1, snap2, true)[0]; + } + ok(!snapshotsEqual(first, second), "about:blank should not be the same as the image web page"); + + doPageNavigation({ + back: true, + onNavComplete: nextTest + }); + yield undefined; + + var third = snapshotWindow(TestWindow.getWindow()); + ok(!snapshotsEqual(third, second), "going back should not be the same as about:blank"); + ok(snapshotsEqual(first, third), "going back should be the same as the initial load"); + + // Tell the framework the test is finished. Include the final 'yield' + // statement to prevent a StopIteration exception from being thrown. + finish(); + yield undefined; + } + + ]]></script> + + <browser type="content-primary" flex="1" id="content" src="about:blank"/> +</window> |