gecko/content/events/test/test_bug602962.xul

94 lines
2.9 KiB
XML

<?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">
<title>Test for Bug 602962</title>
<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 mozBeforeResizeHasFired = false;
var oldWidth = 0, oldHeight = 0;
var win = null;
function openWindow() {
win = window.open("chrome://mochitests/content/chrome/content/events/test/bug602962.xul", "_blank", "width=600,height=600");
}
function doTest() {
scrollbox = win.document.getElementById("page-scrollbox");
sbo = scrollbox.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject);
content = win.document.getElementById("page-box");
content.style.width = 400 + "px";
win.addEventListener("resize", function() {
win.removeEventListener("resize", arguments.callee, false);
sbo.scrollBy(200, 0);
setTimeout(function() { resize(); }, 0);
}, false);
oldWidth = win.outerWidth;
oldHeight = win.outerHeight;
win.resizeTo(200, 400);
}
function resize() {
win.addEventListener("MozBeforeResize", function() {
win.removeEventListener("MozBeforeResize", arguments.callee, false);
mozBeforeResizeHasFired = true;
let x = {}, y = {};
sbo.getPosition(x, y);
scrollX = x.value, scrollY = y.value;
is(scrollX, 200, "Scroll X should not have changed yet");
is(scrollY, 0, "Scroll Y should not have changed yet");
}, false);
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() {
is(mozBeforeResizeHasFired, true, "The MozBeforeResize event should already have fired");
sbo.scrollBy(scrollX, scrollY);
let x = {}, y = {};
sbo.getPosition(x, y);
is(x.value, 200, "Scroll X should have been restored to the value before the resize");
is(y.value, 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>