tor-browser

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

test_bug547996-1.html (2492B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=547996
      5 -->
      6 <head>
      7  <title>Test for Bug 547996</title>
      8  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      9  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     10 </head>
     11 <body>
     12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=547996">Mozilla Bug 547996</a>
     13 <p id="display"></p>
     14 <div id="content" style="display: none">
     15  
     16 </div>
     17 <pre id="test">
     18 <script type="application/javascript">
     19 
     20 /** Test for Bug 547996 */
     21 /* mouseEvent.mozInputSource attribute */
     22 
     23 function prepareListener(eventName, expectedValue) {
     24  return function(event) {
     25    is(event.mozInputSource, expectedValue, "Correct .mozInputSource value in " + eventName);
     26  };
     27 }
     28 
     29 const INPUT_SOURCE_UNKNOWN = MouseEvent.MOZ_SOURCE_UNKNOWN;
     30 const INPUT_SOURCE_KEYBOARD = MouseEvent.MOZ_SOURCE_KEYBOARD;
     31 
     32 function doTest() {
     33  var eventNames = [
     34    "mousedown",
     35    "mouseup",
     36    "click",
     37    "dblclick",
     38    "contextmenu",
     39    "DOMMouseScroll",
     40    "dragdrop",
     41    "dragstart",
     42    "dragend",
     43    "dragenter",
     44    "dragleave",
     45    "dragover"
     46  ];
     47 
     48   var target = document.getElementById("testTarget");
     49 
     50  for (var i in eventNames) {
     51    for(var value = INPUT_SOURCE_UNKNOWN; value <= INPUT_SOURCE_KEYBOARD; value++) {
     52      var eventName = eventNames[i];
     53      var listener = prepareListener(eventName, value);
     54 
     55      target.addEventListener(eventName, listener);
     56 
     57      var newEvent = document.createEvent("MouseEvent");
     58      newEvent.initNSMouseEvent(eventName, true, true, window, 0, 0, 0, 0, 0,
     59                                false, false, false, false, 0, null, 0, value);
     60      target.dispatchEvent(newEvent);
     61      target.removeEventListener(eventName, listener);
     62    }
     63 
     64    // Events created by script that do not initialize the mozInputSource
     65    // value should have the value MOZ_SOURCE_UNKNOWN
     66    var listener = prepareListener(eventName, INPUT_SOURCE_UNKNOWN);
     67    target.addEventListener(eventName, listener);
     68 
     69    var newEvent = document.createEvent("MouseEvent");
     70    newEvent.initMouseEvent(eventName, true, true, window, 0, 0, 0, 0, 0,
     71                              false, false, false, false, 0, null);
     72    target.dispatchEvent(newEvent);
     73    target.removeEventListener(eventName, listener);
     74 
     75  }
     76 
     77  SimpleTest.finish();
     78 }
     79 
     80 SimpleTest.waitForExplicitFinish();
     81 addLoadEvent(doTest);
     82 
     83 </script>
     84 </pre>
     85 <span id="testTarget" style="border: 1px solid black;">testTarget</span>
     86 </body>
     87 </html>