tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_bug582771.html (3240B)


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