Wed, 31 Dec 2014 13:27:57 +0100
Ignore runtime configuration files generated during quality assurance.
1 <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
2 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
3 screenX="200" screenY="200" width="300" height="300"
4 onload="setTimeout(doTest, 0)">
5 <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
6 <script><![CDATA[
7 var is = window.opener.SimpleTest.is;
9 function doTest() {
10 // from test_resizer.xul
11 var expectX = 200;
12 var expectY = 200;
13 var expectXMost = 500;
14 var expectYMost = 500;
15 var screenScale = expectX/window.screenX;
16 var root = document.documentElement;
18 var oldScreenX = window.screenX;
19 var oldScreenY = window.screenY;
20 var oldWidth = window.outerWidth;
21 var oldHeight = window.outerHeight;
23 function testResizer(dx, dy) {
24 var offset = 20;
25 var scale = 5;
26 // target the centre of the resizer
27 var offsetX = window.innerWidth/2 + (window.innerWidth/3)*dx;
28 var offsetY = window.innerHeight/2 + (window.innerHeight/3)*dy;
30 for (var mouseX = -1; mouseX <= 1; ++mouseX) {
31 for (var mouseY = -1; mouseY <= 1; ++mouseY) {
32 var newExpectX = expectX;
33 var newExpectXMost = expectXMost;
34 var newExpectY = expectY;
35 var newExpectYMost = expectYMost;
36 if (dx < 0) {
37 newExpectX += mouseX*scale;
38 } else if (dx > 0) {
39 newExpectXMost += mouseX*scale;
40 }
41 if (dy < 0) {
42 newExpectY += mouseY*scale;
43 } else if (dy > 0) {
44 newExpectYMost += mouseY*scale;
45 }
47 synthesizeMouse(root, offsetX, offsetY, { type:"mousedown" });
48 synthesizeMouse(root, offsetX + mouseX*scale, offsetY + mouseY*scale, { type:"mousemove" });
49 is(window.screenX*screenScale, newExpectX,
50 "Bad x for " + dx + "," + dy + " moving " + mouseX + "," + mouseY);
51 is(window.screenY*screenScale, newExpectY,
52 "Bad y for " + dx + "," + dy + " moving " + mouseX + "," + mouseY);
53 is(window.outerWidth, newExpectXMost - newExpectX,
54 "Bad width for " + dx + "," + dy + " moving " + mouseX + "," + mouseY);
55 is(window.outerHeight, newExpectYMost - newExpectY,
56 "Bad height for " + dx + "," + dy + " moving " + mouseX + "," + mouseY);
58 // move it back before we release! Adjust for any window movement
59 synthesizeMouse(root, offsetX - (newExpectX - expectX),
60 offsetY - (newExpectY - expectY), { type:"mousemove" });
61 synthesizeMouse(root, offsetX, offsetY, { type:"mouseup" });
62 }
63 }
64 }
66 testResizer(-1, -1);
67 testResizer(-1, 0);
68 testResizer(-1, 1);
69 testResizer(0, -1);
70 testResizer(0, 1);
71 testResizer(1, -1);
72 testResizer(1, 0);
73 testResizer(1, 1);
75 var resizers = document.getElementsByTagName("resizer");
76 Array.forEach(resizers, function (element) {
77 is(getComputedStyle(element, "").cursor,
78 element.getAttribute("expectedcursor"),
79 "cursor for " + element.dir);
80 });
82 // now check the cursors in rtl. The bottomend resizer
83 // should be reversed
84 document.getElementById("bottomend").setAttribute("rtl", "true");
85 Array.forEach(resizers, function (element) {
86 is(getComputedStyle(element, "").cursor,
87 element.dir == "bottomend" ? "sw-resize" :
88 element.getAttribute("expectedcursor"),
89 "cursor for " + element.dir);
90 });
92 window.close();
93 window.opener.lastResizerTest();
94 }
95 ]]></script>
96 <hbox id="container" flex="1">
97 <vbox flex="1">
98 <resizer dir="topleft" expectedcursor="nw-resize" flex="1"/>
99 <resizer dir="left" expectedcursor="ew-resize" flex="1"/>
100 <resizer dir="bottomleft" expectedcursor="sw-resize" flex="1"/>
101 </vbox>
102 <vbox flex="1">
103 <resizer dir="top" expectedcursor="ns-resize" flex="1"/>
104 <resizer id="bottomend" dir="bottomend" expectedcursor="se-resize" flex="1"/>
105 <resizer dir="bottom" expectedcursor="ns-resize" flex="1"/>
106 </vbox>
107 <vbox flex="1">
108 <resizer dir="topright" expectedcursor="ne-resize" flex="1"/>
109 <resizer dir="right" expectedcursor="ew-resize" flex="1"/>
110 <resizer dir="bottomright" expectedcursor="se-resize" flex="1"/>
111 </vbox>
112 </hbox>
113 </window>