layout/xul/test/window_resizer.xul

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     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>

mercurial