tor-browser

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

bug977003_inner_3.html (3698B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=977003
      5 -->
      6 <head>
      7  <meta charset="utf-8">
      8  <title>Test for Bug 977003</title>
      9  <meta name="author" content="Maksim Lebedev" />
     10  <script src="/tests/SimpleTest/SimpleTest.js"></script>
     11  <script src="/tests/SimpleTest/EventUtils.js"></script>
     12  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     13  <style>
     14    #target, #mediator, #listener { background: yellow; }
     15  </style>
     16  <script type="application/javascript">
     17    var target = undefined;
     18    var mediator = undefined;
     19    var listener = undefined;
     20    var test_down_got = false;
     21    var test_mediator_got = false;
     22    var test_mediator_lost = false;
     23    var test_listener = false;
     24 
     25    function TargetDownHandler(event) {
     26      logger("Target receive event: " + event.type);
     27      logger("Send pointerCapture to Mediator");
     28      mediator.setPointerCapture(event.pointerId);
     29      logger("setPointerCapture was executed");
     30      test_down_got = true;
     31    }
     32    function MediatorGotPCHandler(event) {
     33      logger("Mediator receive event: " + event.type);
     34      logger("Try send setPointerCapture on listener");
     35      listener.setPointerCapture(event.pointerId);
     36      logger("Try send releasePointerCapture from listener");
     37      listener.releasePointerCapture(event.pointerId);
     38      test_mediator_got = true;
     39    }
     40    function MediatorLostPCHandler(event) {
     41      logger("Mediator receive event: " + event.type);
     42      test_mediator_lost = true;
     43    }
     44    function ListenerHandler(event) {
     45      logger("Receive event on Listener: " + event.type);
     46      test_listener = true;
     47    }
     48    function logger(message) {
     49      console.log(message);
     50      var log = document.getElementById('log');
     51      log.innerHTML = message + "<br>" + log.innerHTML;
     52    }
     53 
     54    function prepareTest() {
     55      SimpleTest.executeSoon(executeTest);
     56    }
     57    function executeTest()
     58    {
     59      logger("executeTest");
     60      target = document.getElementById("target");
     61      mediator = document.getElementById("mediator");
     62      listener = document.getElementById("listener");
     63      target.addEventListener("pointerdown",          TargetDownHandler);
     64      mediator.addEventListener("gotpointercapture",  MediatorGotPCHandler);
     65      mediator.addEventListener("lostpointercapture", MediatorLostPCHandler);
     66      listener.addEventListener("gotpointercapture",  ListenerHandler);
     67      listener.addEventListener("lostpointercapture", ListenerHandler);
     68      var rect = target.getBoundingClientRect();
     69      synthesizeMouse(target, rect.width/2, rect.height/2, {type: "mousedown"});
     70      synthesizeMouse(target, rect.width/3, rect.height/3, {type: "mousemove"});
     71      synthesizeMouse(target, rect.width/4, rect.height/4, {type: "mousemove"});
     72      finishTest();
     73    }
     74    function finishTest() {
     75      parent.is(test_down_got,      true,  "Part 3: pointerdown event should be received");
     76      parent.is(test_mediator_got,  true,  "Part 3: gotpointercapture event should be received by Mediator");
     77      parent.is(test_mediator_lost, true,  "Part 3: lostpointercapture event should be received by Mediator");
     78      parent.is(test_listener,      false, "Part 3: listener should not receive any events");
     79      logger("finishTest");
     80      parent.finishTest();
     81    }
     82  </script>
     83 </head>
     84 <body onload="prepareTest()">
     85  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=977003">Mozilla Bug 977003 Test 3</a>
     86  <p id="display"></p>
     87  <div id="content" style="display: none">
     88  </div>
     89  <div id="listener">div id=listener</div>
     90  <div id="mediator">div id=mediator</div>
     91  <div id="target">div id=target</div>
     92  <pre id="log">
     93  </pre>
     94 </body>
     95 </html>