diff options
Diffstat (limited to 'dom/events/test/test_bug602962.xul')
-rw-r--r-- | dom/events/test/test_bug602962.xul | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/dom/events/test/test_bug602962.xul b/dom/events/test/test_bug602962.xul new file mode 100644 index 000000000..cc500d132 --- /dev/null +++ b/dom/events/test/test_bug602962.xul @@ -0,0 +1,88 @@ +<?xml version="1.0"?> +<?xml-stylesheet href="chrome://global/skin" type="text/css"?> +<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=602962 +--> +<window title="Mozilla Bug 602962" onload="openWindow()" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + + <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/> + +<body xmlns="http://www.w3.org/1999/xhtml"> + <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=602962">Mozilla Bug 602962</a> + <p id="display"></p> +<div id="content" style="display: none"> +</div> +</body> + +<script class="testbody" type="application/javascript;version=1.8"><![CDATA[ +/** Test for Bug 602962 **/ +var scrollbox, sbo, content; +var scrollX = 0, scrollY = 0; + +var oldWidth = 0, oldHeight = 0; +var win = null; + +function openWindow() { + win = window.open("chrome://mochitests/content/chrome/dom/events/test/bug602962.xul", "_blank", "width=600,height=600"); +} + +function doTest() { + scrollbox = win.document.getElementById("page-scrollbox"); + sbo = scrollbox.boxObject; + content = win.document.getElementById("page-box"); + content.style.width = 400 + "px"; + + win.addEventListener("resize", function() { + win.removeEventListener("resize", arguments.callee, false); + + setTimeout(function(){ + sbo.scrollBy(200, 0); + resize(); + },0); + }, false); + + oldWidth = win.outerWidth; + oldHeight = win.outerHeight; + win.resizeTo(200, 400); +} + +function resize() { + scrollX = sbo.positionX; + scrollY = sbo.positionY; + + win.addEventListener("resize", function() { + content.style.width = (oldWidth + 400) + "px"; + win.removeEventListener("resize", arguments.callee, true); + + setTimeout(function() { + finish(); + }, 0); + }, true); + + win.resizeTo(oldWidth, oldHeight); +} + +function finish() { + if (win.outerWidth != oldWidth || + win.outerHeight != oldHeight) { + // We should eventually get back to the original size. + setTimeout(finish, 0); + return; + } + sbo.scrollBy(scrollX, scrollY); + + is(sbo.positionX, 200, "Scroll X should have been restored to the value before the resize"); + is(sbo.positionY, 0, "Scroll Y should have been restored to the value before the resize"); + + is(win.outerWidth, oldWidth, "Width should be resized"); + is(win.outerHeight, oldHeight, "Height should be resized"); + win.close(); + SimpleTest.finish(); +} + +SimpleTest.waitForExplicitFinish(); +]]></script> + +</window> |