summaryrefslogtreecommitdiffstats
path: root/layout/generic/test/file_bug514732_window.xhtml
diff options
context:
space:
mode:
Diffstat (limited to 'layout/generic/test/file_bug514732_window.xhtml')
-rw-r--r--layout/generic/test/file_bug514732_window.xhtml95
1 files changed, 95 insertions, 0 deletions
diff --git a/layout/generic/test/file_bug514732_window.xhtml b/layout/generic/test/file_bug514732_window.xhtml
new file mode 100644
index 0000000000..5d7342776f
--- /dev/null
+++ b/layout/generic/test/file_bug514732_window.xhtml
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
+
+<window id="514732Test"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ width="600"
+ height="600"
+ onload="setTimeout(startTests,0);"
+ title="bug 514732 test">
+
+ <script type="application/javascript"><![CDATA[
+ window.opener = window.arguments[0];
+ ]]></script>
+
+ <script type="application/javascript" src="chrome://mochikit/content/chrome-harness.js" />
+ <script src="chrome://mochikit/content/tests/SimpleTest/docshell_helpers.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 514732. The MozScrolledAreaChanged
+ // should be fired when a page is restored from the bfcache as though it had
+ // reloaded.
+ //
+ function* testIterator() {
+ // Make sure bfcache is on.
+ enableBFCache(true);
+
+
+ // Load a wide and tall page, and then another.
+ for (var i = 0; i < 2; ++i) {
+ doPageNavigation( {
+ uri: "data:text/html,<!DOCTYPE html><html>" +
+ "<head><title>bug 514732 bfcache test page " + i + "</title></head>" +
+ "<body>" +
+ '<div style="position: absolute; left: 10000px; top: 10000px; width: 500px; height: 500px;">' +
+ "</body></html>",
+ eventsToListenFor: ["MozScrolledAreaChanged"],
+ expectedEvents: [ { type: "MozScrolledAreaChanged" } ],
+ onNavComplete: nextTest
+ } );
+ yield;
+ }
+
+ // Navigate back to the first page. Don't test for width and height
+ // yet, just make sure we get an event.
+ doPageNavigation( {
+ back: true,
+ eventsToListenFor: ["MozScrolledAreaChanged"],
+ expectedEvents: [ { type: "MozScrolledAreaChanged" } ],
+ onNavComplete: nextTest
+ } );
+ yield;
+
+ // Navigate forth to our wide and tall page, this time testing for
+ // width and height on the event.
+ doPageNavigation( {
+ forward: true,
+ eventsToListenFor: ["MozScrolledAreaChanged"],
+ expectedEvents: [ { type: "MozScrolledAreaChanged" } ],
+ onNavComplete: nextTest
+ } );
+ yield;
+
+ finish();
+ }
+
+ function startTests() {
+ // Flush layout in outer and inner documents (in that order), to be sure
+ // our TestWindow's initial about:blank document doesn't have any
+ // pending reflows. (If we leave these pending reflows un-flushed, then
+ // they might happen after we've set up our MozScrolledAreaChanged
+ // event-listener; and that would confuse our test logic and lead to
+ // timeouts and test-failures.)
+ document.documentElement.offsetHeight;
+ TestWindow.getDocument().documentElement.offsetHeight;
+
+ // Kick off the first test via the generator-iterator.
+ nextTest();
+ }
+ ]]></script>
+
+ <browser type="content" primary="true" flex="1" id="content" src="about:blank"/>
+</window>