tor-browser

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

bug1080361_inner.html (4259B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=1080361
      5 -->
      6 <head>
      7  <meta charset="utf-8">
      8  <title>Test for Bug 1080361</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; margin: 10px; }
     15  </style>
     16  <script type="application/javascript">
     17    var target = undefined;
     18    var mediator = undefined;
     19    var listener = undefined;
     20    var test_target_down = false;
     21    var test_target_up = false;
     22    var test_first_exc = false;
     23    var test_second_exc = false;
     24    var test_third_exc = false;
     25    var test_fourth_exc = false;
     26    var test_listener = false;
     27 
     28    function TargetDownHandler(event) {
     29      logger("Target receive event: " + event.type);
     30      test_target_down = true;
     31      try {
     32        logger("target.setPointerCapture()");
     33        target.setPointerCapture(31415);
     34      } catch(exc) {
     35        test_first_exc = true;
     36        parent.is(exc.name, "NotFoundError", "Exception NotFoundError should be fired");
     37      }
     38      try {
     39        logger("mediator.setPointerCapture()");
     40        mediator.remove();
     41        mediator.setPointerCapture(event.pointerId);
     42      } catch(exc) {
     43        test_second_exc = true;
     44        parent.is(exc.name, "InvalidStateError", "Exception InvalidStateError should be fired");
     45      }
     46      try {
     47        logger("listener.setPointerCapture()");
     48        listener.setPointerCapture(event.pointerId);
     49      } catch(exc) {
     50        test_third_exc = true;
     51      }
     52    }
     53    function TargetUpHandler(event) {
     54      logger("Target receive event: " + event.type);
     55      test_target_up = true;
     56      try {
     57        logger("target.setPointerCapture()");
     58        target.setPointerCapture(event.pointerId);
     59      } catch(exc) {
     60        test_fourth_exc = true;
     61      }
     62    }
     63    function ListenerHandler(event) {
     64      logger("Listener receive event: " + event.type);
     65      test_listener = true;
     66      listener.releasePointerCapture(event.pointerId);
     67    }
     68    function logger(message) {
     69      console.log(message);
     70      var log = document.getElementById('log');
     71      log.innerHTML = message + "<br>" + log.innerHTML;
     72    }
     73 
     74    function prepareTest() {
     75      SimpleTest.executeSoon(executeTest);
     76    }
     77    function executeTest()
     78    {
     79      logger("executeTest");
     80      target = document.getElementById("target");
     81      mediator = document.getElementById("mediator");
     82      listener = document.getElementById("listener");
     83      target.addEventListener("pointerdown",          TargetDownHandler);
     84      target.addEventListener("pointerup",            TargetUpHandler);
     85      listener.addEventListener("gotpointercapture",  ListenerHandler);
     86      var rect = target.getBoundingClientRect();
     87      synthesizeMouse(target, rect.width/2, rect.height/2, {type: "mousedown"});
     88      synthesizeMouse(target, rect.width/2, rect.height/2, {type: "mousemove"});
     89      synthesizeMouse(target, rect.width/2, rect.height/2, {type: "mouseup"});
     90      finishTest();
     91    }
     92    function finishTest() {
     93      SimpleTest.executeSoon(function() {
     94        parent.is(test_target_down, true,   "pointerdown event should be received by target");
     95        parent.is(test_target_up,   true,   "pointerup event should be received by target");
     96        parent.is(test_first_exc,   true,   "first exception should be thrown");
     97        parent.is(test_second_exc,  true,   "second exception should be thrown");
     98        parent.is(test_third_exc,   false,  "third exception should not be thrown");
     99        parent.is(test_fourth_exc,  false,  "fourth exception should not be thrown");
    100        parent.is(test_listener,    true,   "listener should receive gotpointercapture event");
    101        logger("finishTest");
    102        parent.finishTest();
    103      });
    104    }
    105  </script>
    106 </head>
    107 <body onload="prepareTest()">
    108  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1080361">Mozilla Bug 1080361</a>
    109  <div id="target">div id=target</div>
    110  <div id="mediator">div id=mediator</div>
    111  <div id="listener">div id=listener</div>
    112  <pre id="log"></pre>
    113 </body>
    114 </html>