|
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 type="application/javascript" 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 = SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_UNKNOWN; |
|
30 const INPUT_SOURCE_KEYBOARD = SpecialPowers.Ci.nsIDOMMouseEvent.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, false); |
|
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, false); |
|
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, false); |
|
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, false); |
|
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> |