layout/base/tests/test_bug582771.html

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 <!DOCTYPE HTML>
     2 <html>
     3 <!--
     4 https://bugzilla.mozilla.org/show_bug.cgi?id=582771
     5 -->
     6 <head>
     7   <title>Test for Bug 582771</title>
     8   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     9   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    10   <style>
    11   .test {
    12     width: 20px;
    13     height: 20px;
    14     border: 1px solid black;
    15     -moz-user-select: none;
    16   }
    17   </style>
    18 </head>
    19 <body onload="setTimeout('runTest()', 0)">
    20 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=582771">Mozilla Bug 582771</a>
    21 <p id="display"></p>
    22 <div id="content" style="display: none">
    24 </div>
    25 <pre id="test">
    26 <script type="application/javascript">
    28 /** Test for Bug 582771 **/
    30 SimpleTest.waitForExplicitFinish();
    31 var d1;
    32 var d2;
    33 var d1mousemovecount = 0;
    34 var d2mousemovecount = 0;
    36 function sendMouseMove(el) {
    37   var rect = el.getBoundingClientRect();
    38   var utils = SpecialPowers.getDOMWindowUtils(window);
    39   utils.sendMouseEvent('mousemove', rect.left + 5, rect.top + 5, 0, 0, 0);
    40 }
    42 function sendMouseDown(el) {
    43   var rect = el.getBoundingClientRect();
    44   var utils = SpecialPowers.getDOMWindowUtils(window);
    45   utils.sendMouseEvent('mousedown', rect.left + 5, rect.top + 5, 0, 1, 0);
    46 }
    48 function sendMouseUp(el) {
    49   var rect = el.getBoundingClientRect();
    50   var utils = SpecialPowers.getDOMWindowUtils(window);
    51   utils.sendMouseEvent('mouseup', rect.left + 5, rect.top + 5, 0, 1, 0);
    52 }
    54 function log(s) {
    55   document.getElementById("l").textContent += s + "\n";
    56 }
    58 function d2Listener(e) {
    59   log(e.type + ", " + e.target.id);
    60   is(e.target, d2, "d2 should have got mousemove.");
    61   ++d2mousemovecount;
    62 }
    64 function d1Listener(e) {
    65   log(e.type + ", " + e.target.id);
    66   d1.setCapture(true);
    67 }
    69 function d1Listener2(e) {
    70   log(e.type + ", " + e.target.id);
    71   d2.setCapture(true);
    72 }
    74 function d1MouseMoveListener(e) {
    75   log(e.type + ", " + e.target.id);
    76   ++d1mousemovecount;
    77 }
    79 function runTest() {
    80   d1 = document.getElementById("d1");
    81   d2 = document.getElementById("d2");
    82   d2.addEventListener("mousemove", d2Listener, true);
    83   document.body.offsetLeft;
    84   sendMouseMove(d2);
    85   is(d2mousemovecount, 1, "Should have got mousemove");
    87   // This shouldn't enable capturing, since we're not in a right kind of 
    88   // event listener.
    89   d1.setCapture(true);
    90   sendMouseDown(d1);
    91   sendMouseMove(d2);
    92   sendMouseUp(d1);
    93   is(d2mousemovecount, 2, "Should have got mousemove");
    95   d1.addEventListener("mousedown", d1Listener, true);
    96   d1.addEventListener("mousemove", d1MouseMoveListener, true);
    97   sendMouseDown(d1);
    98   sendMouseMove(d2);
    99   is(d2mousemovecount, 2, "Shouldn't have got mousemove");
   100   is(d1mousemovecount, 1, "Should have got mousemove");
   101   sendMouseUp(d1);
   102   d1.removeEventListener("mousedown", d1Listener, true);
   103   d1.removeEventListener("mousemove", d1MouseMoveListener, true);
   105   // Nothing should be capturing the event.
   106   sendMouseMove(d2);
   107   is(d2mousemovecount, 3, "Should have got mousemove");
   110   d1.addEventListener("mousemove", d1Listener2, true);
   111   sendMouseDown(d1);
   112   sendMouseMove(d1); // This should call setCapture to d2!
   113   d1.removeEventListener("mousemove", d1Listener2, true);
   114   d1.addEventListener("mousemove", d1MouseMoveListener, true);
   115   sendMouseMove(d1); // This should send mouse event to d2.
   116   is(d1mousemovecount, 1, "Shouldn't have got mousemove");
   117   is(d2mousemovecount, 4, "Should have got mousemove");
   118   sendMouseUp(d1);
   120   SimpleTest.finish();
   121 }
   123 </script>
   124 </pre>
   125 <div class="test" id="d1">&nbsp;</div><br><div class="test" id="d2">&nbsp;</div>
   126 <pre id="l"></pre>
   127 </body>
   128 </html>

mercurial