Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test for DOM MouseEvent</title>
5 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
7 </head>
8 <body>
9 <p id="display"></p>
10 <div id="content" style="display: none">
12 </div>
13 <pre id="test">
14 <script type="application/javascript">
16 SimpleTest.waitForExplicitFinish();
17 SimpleTest.waitForFocus(runTests, window);
19 function testInitializingUntrustedEvent()
20 {
21 const kTests = [
22 { createEventArg: "MouseEvent",
23 type: "mousedown", bubbles: true, cancelable: true, view: null, detail: 1,
24 screenX: 0, screenY: 0, clientX: 0, clientY: 0,
25 ctrlKey: false, altKey: false, shiftKey: false, metaKey: false,
26 button: 6, relatedTarget: null },
28 { createEventArg: "mouseevent",
29 type: "mouseup", bubbles: false, cancelable: true, view: window, detail: 2,
30 screenX: 0, screenY: 0, clientX: 0, clientY: 400,
31 ctrlKey: true, altKey: false, shiftKey: false, metaKey: false,
32 button: 1, relatedTarget: document.getElementById("content") },
34 { createEventArg: "Mouseevent",
35 type: "click", bubbles: true, cancelable: false, view: null, detail: -5,
36 screenX: 0, screenY: 0, clientX: 300, clientY: 0,
37 ctrlKey: false, altKey: true, shiftKey: false, metaKey: false,
38 button: 2, relatedTarget: document.getElementById("test") },
40 { createEventArg: "mouseEvent",
41 type: "dblclick", bubbles: false, cancelable: false, view: window, detail: -1,
42 screenX: 0, screenY: 200, clientX: 0, clientY: 0,
43 ctrlKey: false, altKey: false, shiftKey: true, metaKey: false,
44 button: 12, relatedTarget: document.getElementById("content") },
46 { createEventArg: "MouseEvents",
47 type: "mouseenter", bubbles: true, cancelable: true, view: null, detail: 111000,
48 screenX: 100, screenY: 0, clientX: 0, clientY: 0,
49 ctrlKey: false, altKey: false, shiftKey: false, metaKey: true,
50 button: 2, relatedTarget: document.getElementById("test") },
52 { createEventArg: "mouseevents",
53 type: "mouseleave", bubbles: false, cancelable: true, view: window, detail: 500,
54 screenX: 100, screenY: 500, clientX: 0, clientY: 0,
55 ctrlKey: true, altKey: true, shiftKey: false, metaKey: false,
56 button: 8, relatedTarget: document.getElementById("content") },
58 { createEventArg: "Mouseevents",
59 type: "mouseover", bubbles: true, cancelable: false, view: null, detail: 3,
60 screenX: 0, screenY: 0, clientX: 200, clientY: 300,
61 ctrlKey: false, altKey: true, shiftKey: false, metaKey: true,
62 button: 7, relatedTarget: document.getElementById("test") },
64 { createEventArg: "mouseEvents",
65 type: "mouseout", bubbles: false, cancelable: false, view: window, detail: 5,
66 screenX: -100, screenY: 300, clientX: 600, clientY: -500,
67 ctrlKey: true, altKey: false, shiftKey: true, metaKey: false,
68 button: 8, relatedTarget: document.getElementById("content") },
70 { createEventArg: "MouseEvent",
71 type: "mousemove", bubbles: false, cancelable: false, view: window, detail: 30,
72 screenX: 500, screenY: -100, clientX: -8888, clientY: -5000,
73 ctrlKey: true, altKey: false, shiftKey: true, metaKey: true,
74 button: 8, relatedTarget: document.getElementById("test") },
76 { createEventArg: "MouseEvent",
77 type: "foo", bubbles: false, cancelable: false, view: window, detail: 100,
78 screenX: 2000, screenY: 6000, clientX: 5000, clientY: 3000,
79 ctrlKey: true, altKey: true, shiftKey: true, metaKey: true,
80 button: 8, relatedTarget: document.getElementById("test") },
81 ];
83 const kOtherModifierName = [
84 "CapsLock", "NumLock", "ScrollLock", "SymbolLock", "Fn", "OS", "AltGraph"
85 ];
87 const kInvalidModifierName = [
88 "shift", "control", "alt", "meta", "capslock", "numlock", "scrolllock",
89 "symbollock", "fn", "os", "altgraph", "Invalid", "Shift Control",
90 "Win", "Scroll"
91 ];
93 for (var i = 0; i < kTests.length; i++) {
94 var description = "testInitializingUntrustedEvent, Index: " + i + ", ";
95 const kTest = kTests[i];
96 var e = document.createEvent(kTest.createEventArg);
97 e.initMouseEvent(kTest.type, kTest.bubbles, kTest.cancelable, kTest.view,
98 kTest.detail, kTest.screenX, kTest.screenY, kTest.clientX, kTest.clientY,
99 kTest.ctrlKey, kTest.altKey, kTest.shiftKey, kTest.metaKey,
100 kTest.button, kTest.relatedTarget);
102 for (var attr in kTest) {
103 if (attr == "createEventArg") {
104 continue;
105 }
106 is(e[attr], kTest[attr], description + attr + " returns wrong value");
107 }
108 is(e.isTrusted, false, description + "isTrusted returns wrong value");
109 is(e.buttons, 0, description + "buttons returns wrong value");
111 // getModifierState() tests
112 is(e.getModifierState("Shift"), kTest.shiftKey,
113 description + "getModifierState(\"Shift\") returns wrong value");
114 is(e.getModifierState("Control"), kTest.ctrlKey,
115 description + "getModifierState(\"Control\") returns wrong value");
116 is(e.getModifierState("Alt"), kTest.altKey,
117 description + "getModifierState(\"Alt\") returns wrong value");
118 is(e.getModifierState("Meta"), kTest.metaKey,
119 description + "getModifierState(\"Meta\") returns wrong value");
121 for (var j = 0; j < kOtherModifierName.length; j++) {
122 ok(!e.getModifierState(kOtherModifierName[j]),
123 description + "getModifierState(\"" + kOtherModifierName[j] + "\") returns wrong value");
124 }
125 for (var k = 0; k < kInvalidModifierName.length; k++) {
126 ok(!e.getModifierState(kInvalidModifierName[k]),
127 description + "getModifierState(\"" + kInvalidModifierName[k] + "\") returns wrong value");
128 }
129 }
130 }
132 function runTests()
133 {
134 testInitializingUntrustedEvent();
135 SimpleTest.finish();
136 }
138 </script>
139 </pre>
140 </body>
141 </html>