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>