summaryrefslogtreecommitdiffstats
path: root/dom/events/test/test_bug602962.xul
blob: cc500d132680dd846c9318202f3974e070972427 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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>