Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 <!DOCTYPE HTML>
2 <html style="font-size: 32px;">
3 <head>
4 <title>Test for D3E WheelEvent</title>
5 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
6 <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
8 </head>
9 <body>
10 <p id="display"></p>
11 <div id="scrollable" style="font-family:monospace; font-size: 18px; line-height: 1; overflow: auto; width: 200px; height: 200px;">
12 <div id="scrolled" style="font-size: 64px; width: 5000px; height: 5000px;">
13 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
14 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
15 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
16 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
17 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
18 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
19 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
20 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
21 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
22 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
23 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
24 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
25 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
26 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
27 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
28 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
29 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
30 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
31 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
32 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
33 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
34 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
35 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
36 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
37 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
38 Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text. Tere is a lot of text.<br>
39 </div>
40 </div>
41 <div id="content" style="display: none">
43 </div>
44 <pre id="test">
45 <script type="application/javascript">
47 SimpleTest.waitForExplicitFinish();
48 SimpleTest.waitForFocus(runTests, window);
50 var gScrollableElement = document.getElementById("scrollable");
51 var gScrolledElement = document.getElementById("scrolled");
53 var gLineHeight = 0;
54 var gHorizontalLine = 0;
55 var gPageHeight = 0;
56 var gPageWidth = 0;
58 function prepareScrollUnits()
59 {
60 var result = -1;
61 function handler(aEvent)
62 {
63 result = aEvent.detail;
64 aEvent.preventDefault();
65 }
66 window.addEventListener("MozMousePixelScroll", handler, true);
68 synthesizeWheel(gScrollableElement, 10, 10,
69 { deltaMode: WheelEvent.DOM_DELTA_LINE,
70 deltaY: 1.0, lineOrPageDeltaY: 1 });
71 gLineHeight = result;
72 ok(gLineHeight > 10 && gLineHeight < 25, "prepareScrollUnits: gLineHeight may be illegal value, got " + gLineHeight);
74 result = -1;
75 synthesizeWheel(gScrollableElement, 10, 10,
76 { deltaMode: WheelEvent.DOM_DELTA_LINE,
77 deltaX: 1.0, lineOrPageDeltaX: 1 });
78 gHorizontalLine = result;
79 ok(gHorizontalLine > 5 && gHorizontalLine < 16, "prepareScrollUnits: gHorizontalLine may be illegal value, got " + gHorizontalLine);
81 result = -1;
82 synthesizeWheel(gScrollableElement, 10, 10,
83 { deltaMode: WheelEvent.DOM_DELTA_PAGE,
84 deltaY: 1.0, lineOrPageDeltaY: 1 });
85 gPageHeight = result;
86 // XXX Cannot we know the actual scroll port size?
87 ok(gPageHeight >= 150 && gPageHeight <= 200,
88 "prepareScrollUnits: gPageHeight is strange value, got " + gPageHeight);
90 result = -1;
91 synthesizeWheel(gScrollableElement, 10, 10,
92 { deltaMode: WheelEvent.DOM_DELTA_PAGE,
93 deltaX: 1.0, lineOrPageDeltaX: 1 });
94 gPageWidth = result;
95 ok(gPageWidth >= 150 && gPageWidth <= 200,
96 "prepareScrollUnits: gPageWidth is strange value, got " + gPageWidth);
98 window.removeEventListener("MozMousePixelScroll", handler, true);
99 }
101 // Tests continuous trusted wheel events. Trusted wheel events should cause
102 // legacy mouse scroll events when its lineOrPageDelta value is not zero or
103 // accumulated delta values of pixel scroll events of pixel only device
104 // become over the line height.
105 function testContinuousTrustedEvents()
106 {
107 const kSynthesizedWheelEventTests = [
108 { description: "Simple horizontal wheel event by pixels (16.0 - 1) #1",
109 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
110 deltaX: 16.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
111 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
112 isCustomizedByPrefs: false,
113 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
114 wheel: {
115 expected: true, preventDefault: false,
116 deltaX: 16.0, deltaY: 0.0, deltaZ: 0.0
117 },
118 DOMMouseScroll: {
119 horizontal: { expected: true, preventDefault: false, detail: 1 },
120 vertical: { expected: false, preventDefault: false, detail: 0 } },
121 MozMousePixelScroll: {
122 horizontal: { expected: true, preventDefault: false, detail: 16 },
123 vertical: { expected: false, preventDefault: false, detail: 0 } }
124 },
125 { description: "Simple horizontal wheel event by pixels (16.0 - 1) #2",
126 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
127 deltaX: 16.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
128 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
129 isCustomizedByPrefs: false,
130 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
131 wheel: {
132 expected: true, preventDefault: false,
133 deltaX: 16.0, deltaY: 0.0, deltaZ: 0.0
134 },
135 DOMMouseScroll: {
136 horizontal: { expected: true, preventDefault: false, detail: 1 },
137 vertical: { expected: false, preventDefault: false, detail: 0 } },
138 MozMousePixelScroll: {
139 horizontal: { expected: true, preventDefault: false, detail: 16 },
140 vertical: { expected: false, preventDefault: false, detail: 0 } }
141 },
142 { description: "Simple horizontal wheel event by pixels (16.0 - 1) #3",
143 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
144 deltaX: 16.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
145 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
146 isCustomizedByPrefs: false,
147 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
148 wheel: {
149 expected: true, preventDefault: false,
150 deltaX: 16.0, deltaY: 0.0, deltaZ: 0.0
151 },
152 DOMMouseScroll: {
153 horizontal: { expected: true, preventDefault: false, detail: 1 },
154 vertical: { expected: false, preventDefault: false, detail: 0 } },
155 MozMousePixelScroll: {
156 horizontal: { expected: true, preventDefault: false, detail: 16 },
157 vertical: { expected: false, preventDefault: false, detail: 0 } }
158 },
160 { description: "Simple vertical wheel event by pixels (16.0 - 1) #1",
161 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
162 deltaX: 0.0, deltaY: 16.0, deltaZ: 0.0, isMomentum: false,
163 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
164 isCustomizedByPrefs: false,
165 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
166 wheel: {
167 expected: true, preventDefault: false,
168 deltaX: 0.0, deltaY: 16.0, deltaZ: 0.0
169 },
170 DOMMouseScroll: {
171 horizontal: { expected: false, preventDefault: false, detail: 0 },
172 vertical: { expected: true, preventDefault: false, detail: 1 } },
173 MozMousePixelScroll: {
174 horizontal: { expected: false, preventDefault: false, detail: 0 },
175 vertical: { expected: true, preventDefault: false, detail: 16 } }
176 },
177 { description: "Simple vertical wheel event by pixels (16.0 - 1) #2",
178 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
179 deltaX: 0.0, deltaY: 16.0, deltaZ: 0.0, isMomentum: false,
180 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
181 isCustomizedByPrefs: false,
182 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
183 wheel: {
184 expected: true, preventDefault: false,
185 deltaX: 0.0, deltaY: 16.0, deltaZ: 0.0
186 },
187 DOMMouseScroll: {
188 horizontal: { expected: false, preventDefault: false, detail: 0 },
189 vertical: { expected: true, preventDefault: false, detail: 1 } },
190 MozMousePixelScroll: {
191 horizontal: { expected: false, preventDefault: false, detail: 0 },
192 vertical: { expected: true, preventDefault: false, detail: 16 } }
193 },
194 { description: "Simple vertical wheel event by pixels (16.0 - 1) #3",
195 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
196 deltaX: 0.0, deltaY: 16.0, deltaZ: 0.0, isMomentum: false,
197 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
198 isCustomizedByPrefs: false,
199 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
200 wheel: {
201 expected: true, preventDefault: false,
202 deltaX: 0.0, deltaY: 16.0, deltaZ: 0.0
203 },
204 DOMMouseScroll: {
205 horizontal: { expected: false, preventDefault: false, detail: 0 },
206 vertical: { expected: true, preventDefault: false, detail: 1 } },
207 MozMousePixelScroll: {
208 horizontal: { expected: false, preventDefault: false, detail: 0 },
209 vertical: { expected: true, preventDefault: false, detail: 16 } }
210 },
212 { description: "Simple z-direction wheel event by pixels (16.0 - 1)",
213 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
214 deltaX: 0.0, deltaY: 0.0, deltaZ: 16.0, isMomentum: false,
215 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
216 isCustomizedByPrefs: false,
217 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
218 wheel: {
219 expected: true, preventDefault: false,
220 deltaX: 0.0, deltaY: 0.0, deltaZ: 16.0
221 },
222 DOMMouseScroll: {
223 horizontal: { expected: false, preventDefault: false, detail: 0 },
224 vertical: { expected: false, preventDefault: false, detail: 0 } },
225 MozMousePixelScroll: {
226 horizontal: { expected: false, preventDefault: false, detail: 0 },
227 vertical: { expected: false, preventDefault: false, detail: 0 } }
228 },
230 { description: "Simple horizontal wheel event by pixels (-16.0 - -1) #1",
231 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
232 deltaX: -16.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
233 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
234 isCustomizedByPrefs: false,
235 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
236 wheel: {
237 expected: true, preventDefault: false,
238 deltaX: -16.0, deltaY: 0.0, deltaZ: 0.0
239 },
240 DOMMouseScroll: {
241 horizontal: { expected: true, preventDefault: false, detail: -1 },
242 vertical: { expected: false, preventDefault: false, detail: 0 } },
243 MozMousePixelScroll: {
244 horizontal: { expected: true, preventDefault: false, detail: -16 },
245 vertical: { expected: false, preventDefault: false, detail: 0 } }
246 },
247 { description: "Simple horizontal wheel event by pixels (-16.0 - -1) #2",
248 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
249 deltaX: -16.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
250 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
251 isCustomizedByPrefs: false,
252 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
253 wheel: {
254 expected: true, preventDefault: false,
255 deltaX: -16.0, deltaY: 0.0, deltaZ: 0.0
256 },
257 DOMMouseScroll: {
258 horizontal: { expected: true, preventDefault: false, detail: -1 },
259 vertical: { expected: false, preventDefault: false, detail: 0 } },
260 MozMousePixelScroll: {
261 horizontal: { expected: true, preventDefault: false, detail: -16 },
262 vertical: { expected: false, preventDefault: false, detail: 0 } }
263 },
264 { description: "Simple horizontal wheel event by pixels (-16.0 - -1) #3",
265 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
266 deltaX: -16.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
267 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
268 isCustomizedByPrefs: false,
269 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
270 wheel: {
271 expected: true, preventDefault: false,
272 deltaX: -16.0, deltaY: 0.0, deltaZ: 0.0
273 },
274 DOMMouseScroll: {
275 horizontal: { expected: true, preventDefault: false, detail: -1 },
276 vertical: { expected: false, preventDefault: false, detail: 0 } },
277 MozMousePixelScroll: {
278 horizontal: { expected: true, preventDefault: false, detail: -16 },
279 vertical: { expected: false, preventDefault: false, detail: 0 } }
280 },
282 { description: "Simple vertical wheel event by pixels (-16.0 - -1) #1",
283 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
284 deltaX: 0.0, deltaY: -16.0, deltaZ: 0.0, isMomentum: false,
285 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
286 isCustomizedByPrefs: false,
287 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
288 wheel: {
289 expected: true, preventDefault: false,
290 deltaX: 0.0, deltaY: -16.0, deltaZ: 0.0
291 },
292 DOMMouseScroll: {
293 horizontal: { expected: false, preventDefault: false, detail: 0 },
294 vertical: { expected: true, preventDefault: false, detail: -1 } },
295 MozMousePixelScroll: {
296 horizontal: { expected: false, preventDefault: false, detail: 0 },
297 vertical: { expected: true, preventDefault: false, detail: -16 } }
298 },
299 { description: "Simple vertical wheel event by pixels (-16.0 - -1) #2",
300 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
301 deltaX: 0.0, deltaY: -16.0, deltaZ: 0.0, isMomentum: false,
302 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
303 isCustomizedByPrefs: false,
304 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
305 wheel: {
306 expected: true, preventDefault: false,
307 deltaX: 0.0, deltaY: -16.0, deltaZ: 0.0
308 },
309 DOMMouseScroll: {
310 horizontal: { expected: false, preventDefault: false, detail: 0 },
311 vertical: { expected: true, preventDefault: false, detail: -1 } },
312 MozMousePixelScroll: {
313 horizontal: { expected: false, preventDefault: false, detail: 0 },
314 vertical: { expected: true, preventDefault: false, detail: -16 } }
315 },
316 { description: "Simple vertical wheel event by pixels (-16.0 - -1) #3",
317 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
318 deltaX: 0.0, deltaY: -16.0, deltaZ: 0.0, isMomentum: false,
319 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
320 isCustomizedByPrefs: false,
321 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
322 wheel: {
323 expected: true, preventDefault: false,
324 deltaX: 0.0, deltaY: -16.0, deltaZ: 0.0
325 },
326 DOMMouseScroll: {
327 horizontal: { expected: false, preventDefault: false, detail: 0 },
328 vertical: { expected: true, preventDefault: false, detail: -1 } },
329 MozMousePixelScroll: {
330 horizontal: { expected: false, preventDefault: false, detail: 0 },
331 vertical: { expected: true, preventDefault: false, detail: -16 } }
332 },
334 { description: "Simple z-direction wheel event by pixels (-16.0 - -1)",
335 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
336 deltaX: 0.0, deltaY: 0.0, deltaZ: -16.0, isMomentum: false,
337 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
338 isCustomizedByPrefs: false,
339 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
340 wheel: {
341 expected: true, preventDefault: false,
342 deltaX: 0.0, deltaY: 0.0, deltaZ: -16.0
343 },
344 DOMMouseScroll: {
345 horizontal: { expected: false, preventDefault: false, detail: 0 },
346 vertical: { expected: false, preventDefault: false, detail: 0 } },
347 MozMousePixelScroll: {
348 horizontal: { expected: false, preventDefault: false, detail: 0 },
349 vertical: { expected: false, preventDefault: false, detail: 0 } }
350 },
352 // 3 scroll events per line, and legacy line scroll will be fired first.
353 { description: "Horizontal wheel event by pixels (5.3 - 1) #1",
354 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
355 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
356 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
357 isCustomizedByPrefs: false,
358 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
359 wheel: {
360 expected: true, preventDefault: false,
361 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0
362 },
363 DOMMouseScroll: {
364 horizontal: { expected: true, preventDefault: false, detail: 1 },
365 vertical: { expected: false, preventDefault: false, detail: 0 } },
366 MozMousePixelScroll: {
367 horizontal: { expected: true, preventDefault: false, detail: 5 },
368 vertical: { expected: false, preventDefault: false, detail: 0 } }
369 },
370 { description: "Horizontal wheel event by pixels (5.3 - 0) #2",
371 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
372 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
373 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
374 isCustomizedByPrefs: false,
375 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
376 wheel: {
377 expected: true, preventDefault: false,
378 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0
379 },
380 DOMMouseScroll: {
381 horizontal: { expected: false, preventDefault: false, detail: 1 },
382 vertical: { expected: false, preventDefault: false, detail: 0 } },
383 MozMousePixelScroll: {
384 horizontal: { expected: true, preventDefault: false, detail: 5 },
385 vertical: { expected: false, preventDefault: false, detail: 0 } }
386 },
387 { description: "Vertical wheel event by pixels (5.3 - 1) #1",
388 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
389 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
390 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
391 isCustomizedByPrefs: false,
392 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
393 wheel: {
394 expected: true, preventDefault: false,
395 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
396 },
397 DOMMouseScroll: {
398 horizontal: { expected: false, preventDefault: false, detail: 0 },
399 vertical: { expected: true, preventDefault: false, detail: 1 } },
400 MozMousePixelScroll: {
401 horizontal: { expected: false, preventDefault: false, detail: 0 },
402 vertical: { expected: true, preventDefault: false, detail: 5 } }
403 },
404 { description: "Vertical wheel event by pixels (5.3 - 0) #2",
405 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
406 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
407 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
408 isCustomizedByPrefs: false,
409 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
410 wheel: {
411 expected: true, preventDefault: false,
412 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
413 },
414 DOMMouseScroll: {
415 horizontal: { expected: false, preventDefault: false, detail: 0 },
416 vertical: { expected: false, preventDefault: false, detail: 0 } },
417 MozMousePixelScroll: {
418 horizontal: { expected: false, preventDefault: false, detail: 0 },
419 vertical: { expected: true, preventDefault: false, detail: 5 } }
420 },
421 { description: "Vertical wheel event by pixels (5.3 - 0) #3",
422 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
423 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
424 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
425 isCustomizedByPrefs: false,
426 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
427 wheel: {
428 expected: true, preventDefault: false,
429 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
430 },
431 DOMMouseScroll: {
432 horizontal: { expected: false, preventDefault: false, detail: 0 },
433 vertical: { expected: false, preventDefault: false, detail: 0 } },
434 MozMousePixelScroll: {
435 horizontal: { expected: false, preventDefault: false, detail: 0 },
436 vertical: { expected: true, preventDefault: false, detail: 5 } }
437 },
439 { description: "Horizontal wheel event by pixels (-5.3 - -1) #1",
440 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
441 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
442 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
443 isCustomizedByPrefs: false,
444 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
445 wheel: {
446 expected: true, preventDefault: false,
447 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0
448 },
449 DOMMouseScroll: {
450 horizontal: { expected: true, preventDefault: false, detail: -1 },
451 vertical: { expected: false, preventDefault: false, detail: 0 } },
452 MozMousePixelScroll: {
453 horizontal: { expected: true, preventDefault: false, detail: -5 },
454 vertical: { expected: false, preventDefault: false, detail: 0 } }
455 },
456 { description: "Horizontal wheel event by pixels (-5.3 - 0) #2",
457 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
458 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
459 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
460 isCustomizedByPrefs: false,
461 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
462 wheel: {
463 expected: true, preventDefault: false,
464 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0
465 },
466 DOMMouseScroll: {
467 horizontal: { expected: false, preventDefault: false, detail: 0 },
468 vertical: { expected: false, preventDefault: false, detail: 0 } },
469 MozMousePixelScroll: {
470 horizontal: { expected: true, preventDefault: false, detail: -5 },
471 vertical: { expected: false, preventDefault: false, detail: 0 } }
472 },
473 { description: "Horizontal wheel event by pixels (-5.3 - 0) #3",
474 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
475 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
476 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
477 isCustomizedByPrefs: false,
478 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
479 wheel: {
480 expected: true, preventDefault: false,
481 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0
482 },
483 DOMMouseScroll: {
484 horizontal: { expected: false, preventDefault: false, detail: 0 },
485 vertical: { expected: false, preventDefault: false, detail: 0 } },
486 MozMousePixelScroll: {
487 horizontal: { expected: true, preventDefault: false, detail: -5 },
488 vertical: { expected: false, preventDefault: false, detail: 0 } }
489 },
491 { description: "Vertical wheel event by pixels (-5.3 - -1) #1",
492 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
493 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
494 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
495 isCustomizedByPrefs: false,
496 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
497 wheel: {
498 expected: true, preventDefault: false,
499 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
500 },
501 DOMMouseScroll: {
502 horizontal: { expected: false, preventDefault: false, detail: 0 },
503 vertical: { expected: true, preventDefault: false, detail: -1 } },
504 MozMousePixelScroll: {
505 horizontal: { expected: false, preventDefault: false, detail: 0 },
506 vertical: { expected: true, preventDefault: false, detail: -5 } }
507 },
508 { description: "Vertical wheel event by pixels (-5.3 - 0) #2",
509 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
510 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
511 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
512 isCustomizedByPrefs: false,
513 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
514 wheel: {
515 expected: true, preventDefault: false,
516 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
517 },
518 DOMMouseScroll: {
519 horizontal: { expected: false, preventDefault: false, detail: 0 },
520 vertical: { expected: false, preventDefault: false, detail: 0 } },
521 MozMousePixelScroll: {
522 horizontal: { expected: false, preventDefault: false, detail: 0 },
523 vertical: { expected: true, preventDefault: false, detail: -5 } }
524 },
525 { description: "Vertical wheel event by pixels (-5.3 - 0) #3",
526 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
527 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
528 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
529 isCustomizedByPrefs: false,
530 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
531 wheel: {
532 expected: true, preventDefault: false,
533 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
534 },
535 DOMMouseScroll: {
536 horizontal: { expected: false, preventDefault: false, detail: 0 },
537 vertical: { expected: false, preventDefault: false, detail: 0 } },
538 MozMousePixelScroll: {
539 horizontal: { expected: false, preventDefault: false, detail: 0 },
540 vertical: { expected: true, preventDefault: false, detail: -5 } }
541 },
543 // 3 scroll events per line, and legacy line scroll will be fired last.
544 { description: "Horizontal wheel event by pixels (5.3 - 0) #1",
545 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
546 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
547 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
548 isCustomizedByPrefs: false,
549 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
550 wheel: {
551 expected: true, preventDefault: false,
552 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0
553 },
554 DOMMouseScroll: {
555 horizontal: { expected: false, preventDefault: false, detail: 0 },
556 vertical: { expected: false, preventDefault: false, detail: 0 } },
557 MozMousePixelScroll: {
558 horizontal: { expected: true, preventDefault: false, detail: 5 },
559 vertical: { expected: false, preventDefault: false, detail: 0 } }
560 },
561 { description: "Horizontal wheel event by pixels (5.3 - 0) #2",
562 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
563 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
564 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
565 isCustomizedByPrefs: false,
566 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
567 wheel: {
568 expected: true, preventDefault: false,
569 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0
570 },
571 DOMMouseScroll: {
572 horizontal: { expected: false, preventDefault: false, detail: 0 },
573 vertical: { expected: false, preventDefault: false, detail: 0 } },
574 MozMousePixelScroll: {
575 horizontal: { expected: true, preventDefault: false, detail: 5 },
576 vertical: { expected: false, preventDefault: false, detail: 0 } }
577 },
578 { description: "Horizontal wheel event by pixels (5.3 - 1) #3",
579 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
580 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
581 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
582 isCustomizedByPrefs: false,
583 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
584 wheel: {
585 expected: true, preventDefault: false,
586 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0
587 },
588 DOMMouseScroll: {
589 horizontal: { expected: true, preventDefault: false, detail: 1 },
590 vertical: { expected: false, preventDefault: false, detail: 0 } },
591 MozMousePixelScroll: {
592 horizontal: { expected: true, preventDefault: false, detail: 5 },
593 vertical: { expected: false, preventDefault: false, detail: 0 } }
594 },
596 { description: "Vertical wheel event by pixels (5.3 - 0) #1",
597 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
598 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
599 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
600 isCustomizedByPrefs: false,
601 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
602 wheel: {
603 expected: true, preventDefault: false,
604 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
605 },
606 DOMMouseScroll: {
607 horizontal: { expected: false, preventDefault: false, detail: 0 },
608 vertical: { expected: false, preventDefault: false, detail: 0 } },
609 MozMousePixelScroll: {
610 horizontal: { expected: false, preventDefault: false, detail: 0 },
611 vertical: { expected: true, preventDefault: false, detail: 5 } }
612 },
613 { description: "Vertical wheel event by pixels (5.3 - 0) #2",
614 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
615 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
616 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
617 isCustomizedByPrefs: false,
618 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
619 wheel: {
620 expected: true, preventDefault: false,
621 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
622 },
623 DOMMouseScroll: {
624 horizontal: { expected: false, preventDefault: false, detail: 0 },
625 vertical: { expected: false, preventDefault: false, detail: 0 } },
626 MozMousePixelScroll: {
627 horizontal: { expected: false, preventDefault: false, detail: 0 },
628 vertical: { expected: true, preventDefault: false, detail: 5 } }
629 },
630 { description: "Vertical wheel event by pixels (5.3 - 1) #3",
631 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
632 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
633 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
634 isCustomizedByPrefs: false,
635 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
636 wheel: {
637 expected: true, preventDefault: false,
638 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
639 },
640 DOMMouseScroll: {
641 horizontal: { expected: false, preventDefault: false, detail: 0 },
642 vertical: { expected: true, preventDefault: false, detail: 1 } },
643 MozMousePixelScroll: {
644 horizontal: { expected: false, preventDefault: false, detail: 0 },
645 vertical: { expected: true, preventDefault: false, detail: 5 } }
646 },
648 { description: "Horizontal wheel event by pixels (-5.3 - 0) #1",
649 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
650 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
651 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
652 isCustomizedByPrefs: false,
653 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
654 wheel: {
655 expected: true, preventDefault: false,
656 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0
657 },
658 DOMMouseScroll: {
659 horizontal: { expected: false, preventDefault: false, detail: 0 },
660 vertical: { expected: false, preventDefault: false, detail: 0 } },
661 MozMousePixelScroll: {
662 horizontal: { expected: true, preventDefault: false, detail: -5 },
663 vertical: { expected: false, preventDefault: false, detail: 0 } }
664 },
665 { description: "Horizontal wheel event by pixels (-5.3 - 0) #2",
666 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
667 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
668 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
669 isCustomizedByPrefs: false,
670 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
671 wheel: {
672 expected: true, preventDefault: false,
673 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0
674 },
675 DOMMouseScroll: {
676 horizontal: { expected: false, preventDefault: false, detail: 0 },
677 vertical: { expected: false, preventDefault: false, detail: 0 } },
678 MozMousePixelScroll: {
679 horizontal: { expected: true, preventDefault: false, detail: -5 },
680 vertical: { expected: false, preventDefault: false, detail: 0 } }
681 },
682 { description: "Horizontal wheel event by pixels (-5.3 - 1) #3",
683 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
684 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
685 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
686 isCustomizedByPrefs: false,
687 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
688 wheel: {
689 expected: true, preventDefault: false,
690 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0
691 },
692 DOMMouseScroll: {
693 horizontal: { expected: true, preventDefault: false, detail: -1 },
694 vertical: { expected: false, preventDefault: false, detail: 0 } },
695 MozMousePixelScroll: {
696 horizontal: { expected: true, preventDefault: false, detail: -5 },
697 vertical: { expected: false, preventDefault: false, detail: 0 } }
698 },
700 { description: "Vertical wheel event by pixels (-5.3 - 0) #1",
701 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
702 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
703 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
704 isCustomizedByPrefs: false,
705 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
706 wheel: {
707 expected: true, preventDefault: false,
708 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
709 },
710 DOMMouseScroll: {
711 horizontal: { expected: false, preventDefault: false, detail: 0 },
712 vertical: { expected: false, preventDefault: false, detail: 0 } },
713 MozMousePixelScroll: {
714 horizontal: { expected: false, preventDefault: false, detail: 0 },
715 vertical: { expected: true, preventDefault: false, detail: -5 } }
716 },
717 { description: "Vertical wheel event by pixels (-5.3 - 0) #2",
718 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
719 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
720 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
721 isCustomizedByPrefs: false,
722 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
723 wheel: {
724 expected: true, preventDefault: false,
725 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
726 },
727 DOMMouseScroll: {
728 horizontal: { expected: false, preventDefault: false, detail: 0 },
729 vertical: { expected: false, preventDefault: false, detail: 0 } },
730 MozMousePixelScroll: {
731 horizontal: { expected: false, preventDefault: false, detail: 0 },
732 vertical: { expected: true, preventDefault: false, detail: -5 } }
733 },
734 { description: "Vertical wheel event by pixels (-5.3 - -1) #3",
735 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
736 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
737 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
738 isCustomizedByPrefs: false,
739 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
740 wheel: {
741 expected: true, preventDefault: false,
742 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
743 },
744 DOMMouseScroll: {
745 horizontal: { expected: false, preventDefault: false, detail: 0 },
746 vertical: { expected: true, preventDefault: false, detail: -1 } },
747 MozMousePixelScroll: {
748 horizontal: { expected: false, preventDefault: false, detail: 0 },
749 vertical: { expected: true, preventDefault: false, detail: -5 } }
750 },
752 // Oblique scroll.
753 { description: "To bottom-right wheel event by pixels (5.3/5.2 - 1/1) #1",
754 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
755 deltaX: 5.3, deltaY: 5.2, deltaZ: 0.0, isMomentum: false,
756 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
757 isCustomizedByPrefs: false,
758 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
759 wheel: {
760 expected: true, preventDefault: false,
761 deltaX: 5.3, deltaY: 5.2, deltaZ: 0.0
762 },
763 DOMMouseScroll: {
764 horizontal: { expected: true, preventDefault: false, detail: 1 },
765 vertical: { expected: true, preventDefault: false, detail: 1 } },
766 MozMousePixelScroll: {
767 horizontal: { expected: true, preventDefault: false, detail: 5 },
768 vertical: { expected: true, preventDefault: false, detail: 5 } }
769 },
770 { description: "To bottom-right wheel event by pixels (5.3/5.2 - 0/0) #2",
771 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
772 deltaX: 5.3, deltaY: 5.2, deltaZ: 0.0, isMomentum: false,
773 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
774 isCustomizedByPrefs: false,
775 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
776 wheel: {
777 expected: true, preventDefault: false,
778 deltaX: 5.3, deltaY: 5.2, deltaZ: 0.0
779 },
780 DOMMouseScroll: {
781 horizontal: { expected: false, preventDefault: false, detail: 0 },
782 vertical: { expected: false, preventDefault: false, detail: 0 } },
783 MozMousePixelScroll: {
784 horizontal: { expected: true, preventDefault: false, detail: 5 },
785 vertical: { expected: true, preventDefault: false, detail: 5 } }
786 },
787 { description: "To bottom-right wheel event by pixels (5.3/5.2 - 0/0) #3",
788 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
789 deltaX: 5.3, deltaY: 5.2, deltaZ: 0.0, isMomentum: false,
790 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
791 isCustomizedByPrefs: false,
792 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
793 wheel: {
794 expected: true, preventDefault: false,
795 deltaX: 5.3, deltaY: 5.2, deltaZ: 0.0
796 },
797 DOMMouseScroll: {
798 horizontal: { expected: false, preventDefault: false, detail: 0 },
799 vertical: { expected: false, preventDefault: false, detail: 0 } },
800 MozMousePixelScroll: {
801 horizontal: { expected: true, preventDefault: false, detail: 5 },
802 vertical: { expected: true, preventDefault: false, detail: 5 } }
803 },
805 { description: "To bottom-left wheel event by pixels (-5.3/5.3 - -1/1) #1",
806 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
807 deltaX: -5.3, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
808 lineOrPageDeltaX: -1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
809 isCustomizedByPrefs: false,
810 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
811 wheel: {
812 expected: true, preventDefault: false,
813 deltaX: -5.3, deltaY: 5.3, deltaZ: 0.0
814 },
815 DOMMouseScroll: {
816 horizontal: { expected: true, preventDefault: false, detail: -1 },
817 vertical: { expected: true, preventDefault: false, detail: 1 } },
818 MozMousePixelScroll: {
819 horizontal: { expected: true, preventDefault: false, detail: -5 },
820 vertical: { expected: true, preventDefault: false, detail: 5 } }
821 },
822 { description: "To bottom-left wheel event by pixels (-5.3/5.3 - 0/0) #2",
823 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
824 deltaX: -5.3, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
825 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
826 isCustomizedByPrefs: false,
827 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
828 wheel: {
829 expected: true, preventDefault: false,
830 deltaX: -5.3, deltaY: 5.3, deltaZ: 0.0
831 },
832 DOMMouseScroll: {
833 horizontal: { expected: false, preventDefault: false, detail: 0 },
834 vertical: { expected: false, preventDefault: false, detail: 0 } },
835 MozMousePixelScroll: {
836 horizontal: { expected: true, preventDefault: false, detail: -5 },
837 vertical: { expected: true, preventDefault: false, detail: 5 } }
838 },
839 { description: "To bottom-left wheel event by pixels (-5.3/5.3 - 0/0) #3",
840 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
841 deltaX: -5.3, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
842 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
843 isCustomizedByPrefs: false,
844 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
845 wheel: {
846 expected: true, preventDefault: false,
847 deltaX: -5.3, deltaY: 5.3, deltaZ: 0.0
848 },
849 DOMMouseScroll: {
850 horizontal: { expected: false, preventDefault: false, detail: 0 },
851 vertical: { expected: false, preventDefault: false, detail: 0 } },
852 MozMousePixelScroll: {
853 horizontal: { expected: true, preventDefault: false, detail: -5 },
854 vertical: { expected: true, preventDefault: false, detail: 5 } }
855 },
857 { description: "To top-left wheel event by pixels (-5.2/-5.3 - -1/-1) #1",
858 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
859 deltaX: -5.2, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
860 lineOrPageDeltaX: -1, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
861 isCustomizedByPrefs: false,
862 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
863 wheel: {
864 expected: true, preventDefault: false,
865 deltaX: -5.2, deltaY: -5.3, deltaZ: 0.0
866 },
867 DOMMouseScroll: {
868 horizontal: { expected: true, preventDefault: false, detail: -1 },
869 vertical: { expected: true, preventDefault: false, detail: -1 } },
870 MozMousePixelScroll: {
871 horizontal: { expected: true, preventDefault: false, detail: -5 },
872 vertical: { expected: true, preventDefault: false, detail: -5 } }
873 },
874 { description: "To top-left wheel event by pixels (-5.2/-5.3 - 0/0) #2",
875 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
876 deltaX: -5.2, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
877 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
878 isCustomizedByPrefs: false,
879 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
880 wheel: {
881 expected: true, preventDefault: false,
882 deltaX: -5.2, deltaY: -5.3, deltaZ: 0.0
883 },
884 DOMMouseScroll: {
885 horizontal: { expected: false, preventDefault: false, detail: 0 },
886 vertical: { expected: false, preventDefault: false, detail: 0 } },
887 MozMousePixelScroll: {
888 horizontal: { expected: true, preventDefault: false, detail: -5 },
889 vertical: { expected: true, preventDefault: false, detail: -5 } }
890 },
891 { description: "To top-left wheel event by pixels (-5.2/-5.3 - 0/0) #3",
892 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
893 deltaX: -5.2, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
894 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
895 isCustomizedByPrefs: false,
896 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
897 wheel: {
898 expected: true, preventDefault: false,
899 deltaX: -5.2, deltaY: -5.3, deltaZ: 0.0
900 },
901 DOMMouseScroll: {
902 horizontal: { expected: false, preventDefault: false, detail: 0 },
903 vertical: { expected: false, preventDefault: false, detail: 0 } },
904 MozMousePixelScroll: {
905 horizontal: { expected: true, preventDefault: false, detail: -5 },
906 vertical: { expected: true, preventDefault: false, detail: -5 } }
907 },
909 { description: "To top-right wheel event by pixels (5.3/-5.3 - 1/-1) #1",
910 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
911 deltaX: 5.3, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
912 lineOrPageDeltaX: 1, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
913 isCustomizedByPrefs: false,
914 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
915 wheel: {
916 expected: true, preventDefault: false,
917 deltaX: 5.3, deltaY: -5.3, deltaZ: 0.0
918 },
919 DOMMouseScroll: {
920 horizontal: { expected: true, preventDefault: false, detail: 1 },
921 vertical: { expected: true, preventDefault: false, detail: -1 } },
922 MozMousePixelScroll: {
923 horizontal: { expected: true, preventDefault: false, detail: 5 },
924 vertical: { expected: true, preventDefault: false, detail: -5 } }
925 },
926 { description: "To top-right wheel event by pixels (5.3/-5.3 - 0/0) #2",
927 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
928 deltaX: 5.3, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
929 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
930 isCustomizedByPrefs: false,
931 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
932 wheel: {
933 expected: true, preventDefault: false,
934 deltaX: 5.3, deltaY: -5.3, deltaZ: 0.0
935 },
936 DOMMouseScroll: {
937 horizontal: { expected: false, preventDefault: false, detail: 0 },
938 vertical: { expected: false, preventDefault: false, detail: 0 } },
939 MozMousePixelScroll: {
940 horizontal: { expected: true, preventDefault: false, detail: 5 },
941 vertical: { expected: true, preventDefault: false, detail: -5 } }
942 },
944 // Pixel scroll only device's test. the lineOrPageDelta values should be computed
945 // by ESM. When changing the direction for each delta value, it should be
946 // reset at that time.
947 { description: "Pixel only device's horizontal wheel event by pixels (5.3 - 0) #1",
948 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
949 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
950 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
951 isCustomizedByPrefs: false,
952 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
953 wheel: {
954 expected: true, preventDefault: false,
955 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0
956 },
957 DOMMouseScroll: {
958 horizontal: { expected: false, preventDefault: false, detail: 0 },
959 vertical: { expected: false, preventDefault: false, detail: 0 } },
960 MozMousePixelScroll: {
961 horizontal: { expected: true, preventDefault: false, detail: 5 },
962 vertical: { expected: false, preventDefault: false, detail: 0 } }
963 },
964 { description: "Pixel only device's horizontal wheel event by pixels (5.3 - 0) #2",
965 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
966 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
967 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
968 isCustomizedByPrefs: false,
969 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
970 wheel: {
971 expected: true, preventDefault: false,
972 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0
973 },
974 DOMMouseScroll: {
975 horizontal: { expected: false, preventDefault: false, detail: 0 },
976 vertical: { expected: false, preventDefault: false, detail: 0 } },
977 MozMousePixelScroll: {
978 horizontal: { expected: true, preventDefault: false, detail: 5 },
979 vertical: { expected: false, preventDefault: false, detail: 0 } }
980 },
981 { description: "Pixel only device's horizontal wheel event by pixels (5.3 - 0) #3",
982 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
983 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
984 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
985 isCustomizedByPrefs: false,
986 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
987 wheel: {
988 expected: true, preventDefault: false,
989 deltaX: 5.3, deltaY: 0.0, deltaZ: 0.0
990 },
991 DOMMouseScroll: {
992 horizontal: { expected: true, preventDefault: false, detail: 1 },
993 vertical: { expected: false, preventDefault: false, detail: 0 } },
994 MozMousePixelScroll: {
995 horizontal: { expected: true, preventDefault: false, detail: 5 },
996 vertical: { expected: false, preventDefault: false, detail: 0 } }
997 },
998 { description: "Pixel only device's Vertical wheel event by pixels (5.3 - 0) #1",
999 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1000 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
1001 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1002 isCustomizedByPrefs: false,
1003 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1004 wheel: {
1005 expected: true, preventDefault: false,
1006 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
1007 },
1008 DOMMouseScroll: {
1009 horizontal: { expected: false, preventDefault: false, detail: 0 },
1010 vertical: { expected: false, preventDefault: false, detail: 0 } },
1011 MozMousePixelScroll: {
1012 horizontal: { expected: false, preventDefault: false, detail: 0 },
1013 vertical: { expected: true, preventDefault: false, detail: 5 } }
1014 },
1015 { description: "Pixel only device's Vertical wheel event by pixels (5.3 - 0) #2",
1016 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1017 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
1018 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1019 isCustomizedByPrefs: false,
1020 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1021 wheel: {
1022 expected: true, preventDefault: false,
1023 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
1024 },
1025 DOMMouseScroll: {
1026 horizontal: { expected: false, preventDefault: false, detail: 0 },
1027 vertical: { expected: false, preventDefault: false, detail: 0 } },
1028 MozMousePixelScroll: {
1029 horizontal: { expected: false, preventDefault: false, detail: 0 },
1030 vertical: { expected: true, preventDefault: false, detail: 5 } }
1031 },
1032 { description: "Pixel only device's Vertical wheel event by pixels (5.3 - 0) #3",
1033 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1034 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
1035 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1036 isCustomizedByPrefs: false,
1037 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1038 wheel: {
1039 expected: true, preventDefault: false,
1040 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
1041 },
1042 DOMMouseScroll: {
1043 horizontal: { expected: false, preventDefault: false, detail: 0 },
1044 vertical: { expected: false, preventDefault: false, detail: 0 } },
1045 MozMousePixelScroll: {
1046 horizontal: { expected: false, preventDefault: false, detail: 0 },
1047 vertical: { expected: true, preventDefault: false, detail: 5 } }
1048 },
1049 { description: "Pixel only device's Vertical wheel event by pixels (5.3 - 0) #4",
1050 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1051 deltaX: 0.0, deltaY: 1.3, deltaZ: 0.0, isMomentum: false,
1052 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1053 isCustomizedByPrefs: false,
1054 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1055 wheel: {
1056 expected: true, preventDefault: false,
1057 deltaX: 0.0, deltaY: 1.3, deltaZ: 0.0
1058 },
1059 DOMMouseScroll: {
1060 horizontal: { expected: false, preventDefault: false, detail: 0 },
1061 vertical: { expected: false, preventDefault: false, detail: 0 } },
1062 MozMousePixelScroll: {
1063 horizontal: { expected: false, preventDefault: false, detail: 0 },
1064 vertical: { expected: true, preventDefault: false, detail: 1 } }
1065 },
1066 { description: "Pixel only device's Vertical wheel event by pixels (5.3 - 1) #5",
1067 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1068 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0, isMomentum: false,
1069 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1070 isCustomizedByPrefs: false,
1071 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1072 wheel: {
1073 expected: true, preventDefault: false,
1074 deltaX: 0.0, deltaY: 5.3, deltaZ: 0.0
1075 },
1076 DOMMouseScroll: {
1077 horizontal: { expected: false, preventDefault: false, detail: 0 },
1078 vertical: { expected: true, preventDefault: false, detail: 1 } },
1079 MozMousePixelScroll: {
1080 horizontal: { expected: false, preventDefault: false, detail: 0 },
1081 vertical: { expected: true, preventDefault: false, detail: 5 } }
1082 },
1084 { description: "Pixel only device's horizontal wheel event by pixels (-5.3 - 0) #1",
1085 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1086 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1087 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1088 isCustomizedByPrefs: false,
1089 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1090 wheel: {
1091 expected: true, preventDefault: false,
1092 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0
1093 },
1094 DOMMouseScroll: {
1095 horizontal: { expected: false, preventDefault: false, detail: -1 },
1096 vertical: { expected: false, preventDefault: false, detail: 0 } },
1097 MozMousePixelScroll: {
1098 horizontal: { expected: true, preventDefault: false, detail: -5 },
1099 vertical: { expected: false, preventDefault: false, detail: 0 } }
1100 },
1101 { description: "Pixel only device's horizontal wheel event by pixels (-5.3 - 0) #2",
1102 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1103 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1104 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1105 isCustomizedByPrefs: false,
1106 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1107 wheel: {
1108 expected: true, preventDefault: false,
1109 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0
1110 },
1111 DOMMouseScroll: {
1112 horizontal: { expected: false, preventDefault: false, detail: 0 },
1113 vertical: { expected: false, preventDefault: false, detail: 0 } },
1114 MozMousePixelScroll: {
1115 horizontal: { expected: true, preventDefault: false, detail: -5 },
1116 vertical: { expected: false, preventDefault: false, detail: 0 } }
1117 },
1118 { description: "Pixel only device's horizontal wheel event by pixels (-5.3 - 0) #3",
1119 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1120 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1121 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1122 isCustomizedByPrefs: false,
1123 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1124 wheel: {
1125 expected: true, preventDefault: false,
1126 deltaX: -5.3, deltaY: 0.0, deltaZ: 0.0
1127 },
1128 DOMMouseScroll: {
1129 horizontal: { expected: true, preventDefault: false, detail: -1 },
1130 vertical: { expected: false, preventDefault: false, detail: 0 } },
1131 MozMousePixelScroll: {
1132 horizontal: { expected: true, preventDefault: false, detail: -5 },
1133 vertical: { expected: false, preventDefault: false, detail: 0 } }
1134 },
1136 { description: "Pixel only device's Vertical wheel event by pixels (-5.3 - 0) #1",
1137 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1138 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
1139 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1140 isCustomizedByPrefs: false,
1141 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1142 wheel: {
1143 expected: true, preventDefault: false,
1144 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
1145 },
1146 DOMMouseScroll: {
1147 horizontal: { expected: false, preventDefault: false, detail: 0 },
1148 vertical: { expected: false, preventDefault: false, detail: 0 } },
1149 MozMousePixelScroll: {
1150 horizontal: { expected: false, preventDefault: false, detail: 0 },
1151 vertical: { expected: true, preventDefault: false, detail: -5 } }
1152 },
1153 { description: "Pixel only device's Vertical wheel event by pixels (-5.3 - 0) #2",
1154 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1155 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
1156 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1157 isCustomizedByPrefs: false,
1158 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1159 wheel: {
1160 expected: true, preventDefault: false,
1161 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
1162 },
1163 DOMMouseScroll: {
1164 horizontal: { expected: false, preventDefault: false, detail: 0 },
1165 vertical: { expected: false, preventDefault: false, detail: 0 } },
1166 MozMousePixelScroll: {
1167 horizontal: { expected: false, preventDefault: false, detail: 0 },
1168 vertical: { expected: true, preventDefault: false, detail: -5 } }
1169 },
1170 { description: "Pixel only device's Vertical wheel event by pixels (-5.3 - 0) #3",
1171 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1172 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
1173 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1174 isCustomizedByPrefs: false,
1175 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1176 wheel: {
1177 expected: true, preventDefault: false,
1178 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
1179 },
1180 DOMMouseScroll: {
1181 horizontal: { expected: false, preventDefault: false, detail: 0 },
1182 vertical: { expected: false, preventDefault: false, detail: 0 } },
1183 MozMousePixelScroll: {
1184 horizontal: { expected: false, preventDefault: false, detail: 0 },
1185 vertical: { expected: true, preventDefault: false, detail: -5 } }
1186 },
1187 { description: "Pixel only device's Vertical wheel event by pixels (-5.3 - 0) #4",
1188 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1189 deltaX: 0.0, deltaY: -1.3, deltaZ: 0.0, isMomentum: false,
1190 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1191 isCustomizedByPrefs: false,
1192 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1193 wheel: {
1194 expected: true, preventDefault: false,
1195 deltaX: 0.0, deltaY: -1.3, deltaZ: 0.0
1196 },
1197 DOMMouseScroll: {
1198 horizontal: { expected: false, preventDefault: false, detail: 0 },
1199 vertical: { expected: false, preventDefault: false, detail: 0 } },
1200 MozMousePixelScroll: {
1201 horizontal: { expected: false, preventDefault: false, detail: 0 },
1202 vertical: { expected: true, preventDefault: false, detail: -1 } }
1203 },
1204 { description: "Pixel only device's Vertical wheel event by pixels (-5.3 - -1) #5",
1205 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1206 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0, isMomentum: false,
1207 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1208 isCustomizedByPrefs: false,
1209 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1210 wheel: {
1211 expected: true, preventDefault: false,
1212 deltaX: 0.0, deltaY: -5.3, deltaZ: 0.0
1213 },
1214 DOMMouseScroll: {
1215 horizontal: { expected: false, preventDefault: false, detail: 0 },
1216 vertical: { expected: true, preventDefault: false, detail: -1 } },
1217 MozMousePixelScroll: {
1218 horizontal: { expected: false, preventDefault: false, detail: 0 },
1219 vertical: { expected: true, preventDefault: false, detail: -5 } }
1220 },
1222 // ESM should reset an accumulated delta value only when the direction of it
1223 // is changed but shouldn't reset the other delta.
1224 { description: "Pixel only device's bottom-right wheel event by pixels (5.3/4.9 - 0/0) #1",
1225 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1226 deltaX: 5.3, deltaY: 4.9, deltaZ: 0.0, isMomentum: false,
1227 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1228 isCustomizedByPrefs: false,
1229 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1230 wheel: {
1231 expected: true, preventDefault: false,
1232 deltaX: 5.3, deltaY: 4.9, deltaZ: 0.0
1233 },
1234 DOMMouseScroll: {
1235 horizontal: { expected: false, preventDefault: false, detail: 0 },
1236 vertical: { expected: false, preventDefault: false, detail: 0 } },
1237 MozMousePixelScroll: {
1238 horizontal: { expected: true, preventDefault: false, detail: 5 },
1239 vertical: { expected: true, preventDefault: false, detail: 4 } }
1240 },
1241 { description: "Pixel only device's bottom-right wheel event by pixels (5.3/4.9 - 0/0) #2",
1242 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1243 deltaX: 5.3, deltaY: 4.9, deltaZ: 0.0, isMomentum: false,
1244 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1245 isCustomizedByPrefs: false,
1246 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1247 wheel: {
1248 expected: true, preventDefault: false,
1249 deltaX: 5.3, deltaY: 4.9, deltaZ: 0.0
1250 },
1251 DOMMouseScroll: {
1252 horizontal: { expected: false, preventDefault: false, detail: 0 },
1253 vertical: { expected: false, preventDefault: false, detail: 0 } },
1254 MozMousePixelScroll: {
1255 horizontal: { expected: true, preventDefault: false, detail: 5 },
1256 vertical: { expected: true, preventDefault: false, detail: 4 } }
1257 },
1258 { description: "Pixel only device's bottom-left wheel event by pixels (-5.3/4.9 - 0/0) #4",
1259 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1260 deltaX: -5.3, deltaY: 4.9, deltaZ: 0.0, isMomentum: false,
1261 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1262 isCustomizedByPrefs: false,
1263 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1264 wheel: {
1265 expected: true, preventDefault: false,
1266 deltaX: -5.3, deltaY: 4.9, deltaZ: 0.0
1267 },
1268 DOMMouseScroll: {
1269 horizontal: { expected: false, preventDefault: false, detail: 0 },
1270 vertical: { expected: false, preventDefault: false, detail: 0 } },
1271 MozMousePixelScroll: {
1272 horizontal: { expected: true, preventDefault: false, detail: -5 },
1273 vertical: { expected: true, preventDefault: false, detail: 4 } }
1274 },
1275 // the accumulated X should be 0 here, but Y shouldn't be reset.
1276 { description: "Pixel only device's bottom-right wheel event by pixels (5.3/4.9 - 0/0) #5",
1277 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1278 deltaX: 5.3, deltaY: 1.9, deltaZ: 0.0, isMomentum: false,
1279 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1280 isCustomizedByPrefs: false,
1281 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1282 wheel: {
1283 expected: true, preventDefault: false,
1284 deltaX: 5.3, deltaY: 1.9, deltaZ: 0.0
1285 },
1286 DOMMouseScroll: {
1287 horizontal: { expected: false, preventDefault: false, detail: 0 },
1288 vertical: { expected: false, preventDefault: false, detail: 0 } },
1289 MozMousePixelScroll: {
1290 horizontal: { expected: true, preventDefault: false, detail: 5 },
1291 vertical: { expected: true, preventDefault: false, detail: 1 } }
1292 },
1294 { description: "Pixel only device's top-left wheel event by pixels (-5.3/-4.9 - 0/0) #1",
1295 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1296 deltaX: -5.3, deltaY: -4.9, deltaZ: 0.0, isMomentum: false,
1297 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1298 isCustomizedByPrefs: false,
1299 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1300 wheel: {
1301 expected: true, preventDefault: false,
1302 deltaX: -5.3, deltaY: -4.9, deltaZ: 0.0
1303 },
1304 DOMMouseScroll: {
1305 horizontal: { expected: false, preventDefault: false, detail: 0 },
1306 vertical: { expected: false, preventDefault: false, detail: 0 } },
1307 MozMousePixelScroll: {
1308 horizontal: { expected: true, preventDefault: false, detail: -5 },
1309 vertical: { expected: true, preventDefault: false, detail: -4 } }
1310 },
1311 { description: "Pixel only device's top-left wheel event by pixels (-5.3/-4.9 - 0/0) #2",
1312 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1313 deltaX: -5.3, deltaY: -4.9, deltaZ: 0.0, isMomentum: false,
1314 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1315 isCustomizedByPrefs: false,
1316 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1317 wheel: {
1318 expected: true, preventDefault: false,
1319 deltaX: -5.3, deltaY: -4.9, deltaZ: 0.0
1320 },
1321 DOMMouseScroll: {
1322 horizontal: { expected: false, preventDefault: false, detail: 0 },
1323 vertical: { expected: false, preventDefault: false, detail: 0 } },
1324 MozMousePixelScroll: {
1325 horizontal: { expected: true, preventDefault: false, detail: -5 },
1326 vertical: { expected: true, preventDefault: false, detail: -4 } }
1327 },
1328 { description: "Pixel only device's bottom-left wheel event by pixels (-5.3/4.9 - 0/0) #4",
1329 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1330 deltaX: -5.3, deltaY: 4.9, deltaZ: 0.0, isMomentum: false,
1331 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1332 isCustomizedByPrefs: false,
1333 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1334 wheel: {
1335 expected: true, preventDefault: false,
1336 deltaX: -5.3, deltaY: 4.9, deltaZ: 0.0
1337 },
1338 DOMMouseScroll: {
1339 horizontal: { expected: true, preventDefault: false, detail: -1 },
1340 vertical: { expected: false, preventDefault: false, detail: 0 } },
1341 MozMousePixelScroll: {
1342 horizontal: { expected: true, preventDefault: false, detail: -5 },
1343 vertical: { expected: true, preventDefault: false, detail: 4 } }
1344 },
1345 // the accumulated Y should be 0 here, but X shouldn't be reset.
1346 { description: "Pixel only device's top-left wheel event by pixels (-5.3/-4.9 - 0/0) #5",
1347 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
1348 deltaX: -5.3, deltaY: -4.9, deltaZ: 0.0, isMomentum: false,
1349 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: true,
1350 isCustomizedByPrefs: false,
1351 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1352 wheel: {
1353 expected: true, preventDefault: false,
1354 deltaX: -5.3, deltaY: -4.9, deltaZ: 0.0
1355 },
1356 DOMMouseScroll: {
1357 horizontal: { expected: false, preventDefault: false, detail: 0 },
1358 vertical: { expected: false, preventDefault: false, detail: 0 } },
1359 MozMousePixelScroll: {
1360 horizontal: { expected: true, preventDefault: false, detail: -5 },
1361 vertical: { expected: true, preventDefault: false, detail: -4 } }
1362 },
1364 // Simple line scroll tests.
1365 { description: "Simple horizontal wheel event by lines (1.0 - 1) #1",
1366 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1367 deltaX: 1.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1368 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1369 isCustomizedByPrefs: false,
1370 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1371 wheel: {
1372 expected: true, preventDefault: false,
1373 deltaX: 1.0, deltaY: 0.0, deltaZ: 0.0
1374 },
1375 DOMMouseScroll: {
1376 horizontal: { expected: true, preventDefault: false, detail: 1 },
1377 vertical: { expected: false, preventDefault: false, detail: 0 } },
1378 MozMousePixelScroll: {
1379 horizontal: { expected: true, preventDefault: false, detail: gHorizontalLine },
1380 vertical: { expected: false, preventDefault: false, detail: 0 } }
1381 },
1382 { description: "Simple horizontal wheel event by lines (1.0 - 1) #2",
1383 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1384 deltaX: 1.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1385 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1386 isCustomizedByPrefs: false,
1387 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1388 wheel: {
1389 expected: true, preventDefault: false,
1390 deltaX: 1.0, deltaY: 0.0, deltaZ: 0.0
1391 },
1392 DOMMouseScroll: {
1393 horizontal: { expected: true, preventDefault: false, detail: 1 },
1394 vertical: { expected: false, preventDefault: false, detail: 0 } },
1395 MozMousePixelScroll: {
1396 horizontal: { expected: true, preventDefault: false, detail: gHorizontalLine },
1397 vertical: { expected: false, preventDefault: false, detail: 0 } }
1398 },
1400 { description: "Simple horizontal wheel event by lines (-1.0 - -1) #1",
1401 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1402 deltaX: -1.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1403 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1404 isCustomizedByPrefs: false,
1405 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1406 wheel: {
1407 expected: true, preventDefault: false,
1408 deltaX: -1.0, deltaY: 0.0, deltaZ: 0.0
1409 },
1410 DOMMouseScroll: {
1411 horizontal: { expected: true, preventDefault: false, detail: -1 },
1412 vertical: { expected: false, preventDefault: false, detail: 0 } },
1413 MozMousePixelScroll: {
1414 horizontal: { expected: true, preventDefault: false, detail: -gHorizontalLine },
1415 vertical: { expected: false, preventDefault: false, detail: 0 } }
1416 },
1417 { description: "Simple horizontal wheel event by lines (-1.0 - -1) #2",
1418 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1419 deltaX: -1.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1420 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1421 isCustomizedByPrefs: false,
1422 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1423 wheel: {
1424 expected: true, preventDefault: false,
1425 deltaX: -1.0, deltaY: 0.0, deltaZ: 0.0
1426 },
1427 DOMMouseScroll: {
1428 horizontal: { expected: true, preventDefault: false, detail: -1 },
1429 vertical: { expected: false, preventDefault: false, detail: 0 } },
1430 MozMousePixelScroll: {
1431 horizontal: { expected: true, preventDefault: false, detail: -gHorizontalLine },
1432 vertical: { expected: false, preventDefault: false, detail: 0 } }
1433 },
1435 { description: "Simple vertical wheel event by lines (-1.0 - -1) #1",
1436 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1437 deltaX: 0.0, deltaY: -1.0, deltaZ: 0.0, isMomentum: false,
1438 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
1439 isCustomizedByPrefs: false,
1440 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1441 wheel: {
1442 expected: true, preventDefault: false,
1443 deltaX: 0.0, deltaY: -1.0, deltaZ: 0.0
1444 },
1445 DOMMouseScroll: {
1446 horizontal: { expected: false, preventDefault: false, detail: 0 },
1447 vertical: { expected: true, preventDefault: false, detail: -1 } },
1448 MozMousePixelScroll: {
1449 horizontal: { expected: false, preventDefault: false, detail: 0 },
1450 vertical: { expected: true, preventDefault: false, detail: -gLineHeight } }
1451 },
1452 { description: "Simple vertical wheel event by lines (-1.0 - -1) #2",
1453 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1454 deltaX: 0.0, deltaY: -1.0, deltaZ: 0.0, isMomentum: false,
1455 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
1456 isCustomizedByPrefs: false,
1457 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1458 wheel: {
1459 expected: true, preventDefault: false,
1460 deltaX: 0.0, deltaY: -1.0, deltaZ: 0.0
1461 },
1462 DOMMouseScroll: {
1463 horizontal: { expected: false, preventDefault: false, detail: 0 },
1464 vertical: { expected: true, preventDefault: false, detail: -1 } },
1465 MozMousePixelScroll: {
1466 horizontal: { expected: false, preventDefault: false, detail: 0 },
1467 vertical: { expected: true, preventDefault: false, detail: -gLineHeight } }
1468 },
1470 { description: "Simple vertical wheel event by lines (1.0 - 1) #1",
1471 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1472 deltaX: 0.0, deltaY: 1.0, deltaZ: 0.0, isMomentum: false,
1473 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
1474 isCustomizedByPrefs: false,
1475 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1476 wheel: {
1477 expected: true, preventDefault: false,
1478 deltaX: 0.0, deltaY: 1.0, deltaZ: 0.0
1479 },
1480 DOMMouseScroll: {
1481 horizontal: { expected: false, preventDefault: false, detail: 0 },
1482 vertical: { expected: true, preventDefault: false, detail: 1 } },
1483 MozMousePixelScroll: {
1484 horizontal: { expected: false, preventDefault: false, detail: 0 },
1485 vertical: { expected: true, preventDefault: false, detail: gLineHeight } }
1486 },
1487 { description: "Simple vertical wheel event by lines (1.0 - 1) #2",
1488 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1489 deltaX: 0.0, deltaY: 1.0, deltaZ: 0.0, isMomentum: false,
1490 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
1491 isCustomizedByPrefs: false,
1492 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1493 wheel: {
1494 expected: true, preventDefault: false,
1495 deltaX: 0.0, deltaY: 1.0, deltaZ: 0.0
1496 },
1497 DOMMouseScroll: {
1498 horizontal: { expected: false, preventDefault: false, detail: 0 },
1499 vertical: { expected: true, preventDefault: false, detail: 1 } },
1500 MozMousePixelScroll: {
1501 horizontal: { expected: false, preventDefault: false, detail: 0 },
1502 vertical: { expected: true, preventDefault: false, detail: gLineHeight } }
1503 },
1505 // high resolution line scroll
1506 { description: "High resolution horizontal wheel event by lines (0.333... - 0) #1",
1507 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1508 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1509 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1510 isCustomizedByPrefs: false,
1511 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1512 wheel: {
1513 expected: true, preventDefault: false,
1514 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0
1515 },
1516 DOMMouseScroll: {
1517 horizontal: { expected: false, preventDefault: false, detail: 0 },
1518 vertical: { expected: false, preventDefault: false, detail: 0 } },
1519 MozMousePixelScroll: {
1520 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine / 3) },
1521 vertical: { expected: false, preventDefault: false, detail: 0 } }
1522 },
1523 { description: "High resolution horizontal wheel event by lines (0.333... - 0) #2",
1524 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1525 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1526 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1527 isCustomizedByPrefs: false,
1528 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1529 wheel: {
1530 expected: true, preventDefault: false,
1531 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0
1532 },
1533 DOMMouseScroll: {
1534 horizontal: { expected: false, preventDefault: false, detail: 0 },
1535 vertical: { expected: false, preventDefault: false, detail: 0 } },
1536 MozMousePixelScroll: {
1537 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine / 3) },
1538 vertical: { expected: false, preventDefault: false, detail: 0 } }
1539 },
1540 { description: "High resolution horizontal wheel event by lines (0.333... - 1) #3",
1541 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1542 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1543 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1544 isCustomizedByPrefs: false,
1545 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1546 wheel: {
1547 expected: true, preventDefault: false,
1548 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0
1549 },
1550 DOMMouseScroll: {
1551 horizontal: { expected: true, preventDefault: false, detail: 1 },
1552 vertical: { expected: false, preventDefault: false, detail: 0 } },
1553 MozMousePixelScroll: {
1554 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine / 3) },
1555 vertical: { expected: false, preventDefault: false, detail: 0 } }
1556 },
1558 { description: "High resolution horizontal wheel event by lines (-0.333... - 0) #1",
1559 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1560 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1561 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1562 isCustomizedByPrefs: false,
1563 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1564 wheel: {
1565 expected: true, preventDefault: false,
1566 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0
1567 },
1568 DOMMouseScroll: {
1569 horizontal: { expected: false, preventDefault: false, detail: 0 },
1570 vertical: { expected: false, preventDefault: false, detail: 0 } },
1571 MozMousePixelScroll: {
1572 horizontal: { expected: true, preventDefault: false, detail: -Math.floor(gHorizontalLine / 3) },
1573 vertical: { expected: false, preventDefault: false, detail: 0 } }
1574 },
1575 { description: "High resolution horizontal wheel event by lines (-0.333... - 0) #2",
1576 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1577 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1578 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1579 isCustomizedByPrefs: false,
1580 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1581 wheel: {
1582 expected: true, preventDefault: false,
1583 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0
1584 },
1585 DOMMouseScroll: {
1586 horizontal: { expected: false, preventDefault: false, detail: 0 },
1587 vertical: { expected: false, preventDefault: false, detail: 0 } },
1588 MozMousePixelScroll: {
1589 horizontal: { expected: true, preventDefault: false, detail: -Math.floor(gHorizontalLine / 3) },
1590 vertical: { expected: false, preventDefault: false, detail: 0 } }
1591 },
1592 { description: "High resolution horizontal wheel event by lines (-0.333... - -1) #3",
1593 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1594 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1595 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1596 isCustomizedByPrefs: false,
1597 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1598 wheel: {
1599 expected: true, preventDefault: false,
1600 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0
1601 },
1602 DOMMouseScroll: {
1603 horizontal: { expected: true, preventDefault: false, detail: -1 },
1604 vertical: { expected: false, preventDefault: false, detail: 0 } },
1605 MozMousePixelScroll: {
1606 horizontal: { expected: true, preventDefault: false, detail: -Math.floor(gHorizontalLine / 3) },
1607 vertical: { expected: false, preventDefault: false, detail: 0 } }
1608 },
1610 { description: "High resolution vertical wheel event by lines (0.333... - 0) #1",
1611 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1612 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0, isMomentum: false,
1613 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1614 isCustomizedByPrefs: false,
1615 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1616 wheel: {
1617 expected: true, preventDefault: false,
1618 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0
1619 },
1620 DOMMouseScroll: {
1621 horizontal: { expected: false, preventDefault: false, detail: 0 },
1622 vertical: { expected: false, preventDefault: false, detail: 0 } },
1623 MozMousePixelScroll: {
1624 horizontal: { expected: false, preventDefault: false, detail: 0 },
1625 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight / 3) } }
1626 },
1627 { description: "High resolution vertical wheel event by lines (0.333... - 0) #2",
1628 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1629 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0, isMomentum: false,
1630 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1631 isCustomizedByPrefs: false,
1632 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1633 wheel: {
1634 expected: true, preventDefault: false,
1635 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0
1636 },
1637 DOMMouseScroll: {
1638 horizontal: { expected: false, preventDefault: false, detail: 0 },
1639 vertical: { expected: false, preventDefault: false, detail: 0 } },
1640 MozMousePixelScroll: {
1641 horizontal: { expected: false, preventDefault: false, detail: 0 },
1642 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight / 3) } }
1643 },
1644 { description: "High resolution vertical wheel event by lines (0.333... - 1) #3",
1645 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1646 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0, isMomentum: false,
1647 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
1648 isCustomizedByPrefs: false,
1649 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1650 wheel: {
1651 expected: true, preventDefault: false,
1652 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0
1653 },
1654 DOMMouseScroll: {
1655 horizontal: { expected: false, preventDefault: false, detail: 0 },
1656 vertical: { expected: true, preventDefault: false, detail: 1 } },
1657 MozMousePixelScroll: {
1658 horizontal: { expected: false, preventDefault: false, detail: 0 },
1659 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight / 3) } }
1660 },
1662 { description: "High resolution vertical wheel event by lines (-0.333... - 0) #1",
1663 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1664 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0, isMomentum: false,
1665 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1666 isCustomizedByPrefs: false,
1667 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1668 wheel: {
1669 expected: true, preventDefault: false,
1670 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0
1671 },
1672 DOMMouseScroll: {
1673 horizontal: { expected: false, preventDefault: false, detail: 0 },
1674 vertical: { expected: false, preventDefault: false, detail: 0 } },
1675 MozMousePixelScroll: {
1676 horizontal: { expected: false, preventDefault: false, detail: 0 },
1677 vertical: { expected: true, preventDefault: false, detail: -Math.floor(gLineHeight / 3) } }
1678 },
1679 { description: "High resolution vertical wheel event by lines (-0.333... - 0) #2",
1680 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1681 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0, isMomentum: false,
1682 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1683 isCustomizedByPrefs: false,
1684 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1685 wheel: {
1686 expected: true, preventDefault: false,
1687 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0
1688 },
1689 DOMMouseScroll: {
1690 horizontal: { expected: false, preventDefault: false, detail: 0 },
1691 vertical: { expected: false, preventDefault: false, detail: 0 } },
1692 MozMousePixelScroll: {
1693 horizontal: { expected: false, preventDefault: false, detail: 0 },
1694 vertical: { expected: true, preventDefault: false, detail: -Math.floor(gLineHeight / 3) } }
1695 },
1696 { description: "High resolution vertical wheel event by lines (-0.333... - -1) #3",
1697 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1698 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0, isMomentum: false,
1699 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
1700 isCustomizedByPrefs: false,
1701 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1702 wheel: {
1703 expected: true, preventDefault: false,
1704 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0
1705 },
1706 DOMMouseScroll: {
1707 horizontal: { expected: false, preventDefault: false, detail: 0 },
1708 vertical: { expected: true, preventDefault: false, detail: -1 } },
1709 MozMousePixelScroll: {
1710 horizontal: { expected: false, preventDefault: false, detail: 0 },
1711 vertical: { expected: true, preventDefault: false, detail: -Math.floor(gLineHeight / 3) } }
1712 },
1714 // Oblique line scroll
1715 { description: "Oblique wheel event by lines (-1.0/2.0 - -1/2)",
1716 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1717 deltaX: -1.0, deltaY: 2.0, deltaZ: 0.0, isMomentum: false,
1718 lineOrPageDeltaX: -1, lineOrPageDeltaY: 2, isPixelOnlyDevice: false,
1719 isCustomizedByPrefs: false,
1720 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1721 wheel: {
1722 expected: true, preventDefault: false,
1723 deltaX: -1.0, deltaY: 2.0, deltaZ: 0.0
1724 },
1725 DOMMouseScroll: {
1726 horizontal: { expected: true, preventDefault: false, detail: -1 },
1727 vertical: { expected: true, preventDefault: false, detail: 2 } },
1728 MozMousePixelScroll: {
1729 horizontal: { expected: true, preventDefault: false, detail: -gHorizontalLine },
1730 vertical: { expected: true, preventDefault: false, detail: gLineHeight * 2 } }
1731 },
1733 { description: "Oblique wheel event by lines (1.0/-2.0 - 1/-2)",
1734 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1735 deltaX: 1.0, deltaY: -2.0, deltaZ: 0.0, isMomentum: false,
1736 lineOrPageDeltaX: 1, lineOrPageDeltaY: -2, isPixelOnlyDevice: false,
1737 isCustomizedByPrefs: false,
1738 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1739 wheel: {
1740 expected: true, preventDefault: false,
1741 deltaX: 1.0, deltaY: -2.0, deltaZ: 0.0
1742 },
1743 DOMMouseScroll: {
1744 horizontal: { expected: true, preventDefault: false, detail: 1 },
1745 vertical: { expected: true, preventDefault: false, detail: -2 } },
1746 MozMousePixelScroll: {
1747 horizontal: { expected: true, preventDefault: false, detail: gHorizontalLine },
1748 vertical: { expected: true, preventDefault: false, detail: -gLineHeight * 2 } }
1749 },
1751 { description: "High resolution oblique wheel event by lines (0.5/0.333.../-0.8 - 0/0) #1",
1752 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1753 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8, isMomentum: false,
1754 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1755 isCustomizedByPrefs: false,
1756 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1757 wheel: {
1758 expected: true, preventDefault: false,
1759 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8
1760 },
1761 DOMMouseScroll: {
1762 horizontal: { expected: false, preventDefault: false, detail: 0 },
1763 vertical: { expected: false, preventDefault: false, detail: 0 } },
1764 MozMousePixelScroll: {
1765 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine / 2) },
1766 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight / 3) } }
1767 },
1768 { description: "High resolution oblique wheel event by lines (0.5/0.333.../-0.8 - 1/0) #2",
1769 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1770 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8, isMomentum: false,
1771 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1772 isCustomizedByPrefs: false,
1773 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1774 wheel: {
1775 expected: true, preventDefault: false,
1776 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8
1777 },
1778 DOMMouseScroll: {
1779 horizontal: { expected: true, preventDefault: false, detail: 1 },
1780 vertical: { expected: false, preventDefault: false, detail: 0 } },
1781 MozMousePixelScroll: {
1782 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine / 2) },
1783 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight / 3) } }
1784 },
1785 { description: "High resolution oblique wheel event by lines (0.5/0.333.../-0.8 - 0/1) #3",
1786 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
1787 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8, isMomentum: false,
1788 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
1789 isCustomizedByPrefs: false,
1790 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1791 wheel: {
1792 expected: true, preventDefault: false,
1793 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8
1794 },
1795 DOMMouseScroll: {
1796 horizontal: { expected: false, preventDefault: false, detail: 0 },
1797 vertical: { expected: true, preventDefault: false, detail: 1 } },
1798 MozMousePixelScroll: {
1799 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine / 2) },
1800 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight / 3) } }
1801 },
1803 // Simple page scroll tests.
1804 { description: "Simple horizontal wheel event by pages (1.0 - 1) #1",
1805 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1806 deltaX: 1.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1807 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1808 isCustomizedByPrefs: false,
1809 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1810 wheel: {
1811 expected: true, preventDefault: false,
1812 deltaX: 1.0, deltaY: 0.0, deltaZ: 0.0
1813 },
1814 DOMMouseScroll: {
1815 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
1816 vertical: { expected: false, preventDefault: false, detail: 0 } },
1817 MozMousePixelScroll: {
1818 horizontal: { expected: true, preventDefault: false, detail: gPageWidth },
1819 vertical: { expected: false, preventDefault: false, detail: 0 } }
1820 },
1821 { description: "Simple horizontal wheel event by pages (1.0 - 1) #2",
1822 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1823 deltaX: 1.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1824 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1825 isCustomizedByPrefs: false,
1826 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1827 wheel: {
1828 expected: true, preventDefault: false,
1829 deltaX: 1.0, deltaY: 0.0, deltaZ: 0.0
1830 },
1831 DOMMouseScroll: {
1832 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
1833 vertical: { expected: false, preventDefault: false, detail: 0 } },
1834 MozMousePixelScroll: {
1835 horizontal: { expected: true, preventDefault: false, detail: gPageWidth },
1836 vertical: { expected: false, preventDefault: false, detail: 0 } }
1837 },
1839 { description: "Simple horizontal wheel event by pages (-1.0 - -1) #1",
1840 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1841 deltaX: -1.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1842 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1843 isCustomizedByPrefs: false,
1844 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1845 wheel: {
1846 expected: true, preventDefault: false,
1847 deltaX: -1.0, deltaY: 0.0, deltaZ: 0.0
1848 },
1849 DOMMouseScroll: {
1850 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP },
1851 vertical: { expected: false, preventDefault: false, detail: 0 } },
1852 MozMousePixelScroll: {
1853 horizontal: { expected: true, preventDefault: false, detail: -gPageWidth },
1854 vertical: { expected: false, preventDefault: false, detail: 0 } }
1855 },
1856 { description: "Simple horizontal wheel event by pages (-1.0 - -1) #2",
1857 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1858 deltaX: -1.0, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1859 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1860 isCustomizedByPrefs: false,
1861 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1862 wheel: {
1863 expected: true, preventDefault: false,
1864 deltaX: -1.0, deltaY: 0.0, deltaZ: 0.0
1865 },
1866 DOMMouseScroll: {
1867 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP },
1868 vertical: { expected: false, preventDefault: false, detail: 0 } },
1869 MozMousePixelScroll: {
1870 horizontal: { expected: true, preventDefault: false, detail: -gPageWidth },
1871 vertical: { expected: false, preventDefault: false, detail: 0 } }
1872 },
1874 { description: "Simple vertical wheel event by pages (-1.0 - -1) #1",
1875 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1876 deltaX: 0.0, deltaY: -1.0, deltaZ: 0.0, isMomentum: false,
1877 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
1878 isCustomizedByPrefs: false,
1879 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1880 wheel: {
1881 expected: true, preventDefault: false,
1882 deltaX: 0.0, deltaY: -1.0, deltaZ: 0.0
1883 },
1884 DOMMouseScroll: {
1885 horizontal: { expected: false, preventDefault: false, detail: 0 },
1886 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP } },
1887 MozMousePixelScroll: {
1888 horizontal: { expected: false, preventDefault: false, detail: 0 },
1889 vertical: { expected: true, preventDefault: false, detail: -gPageHeight } }
1890 },
1891 { description: "Simple vertical wheel event by pages (-1.0 - -1) #2",
1892 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1893 deltaX: 0.0, deltaY: -1.0, deltaZ: 0.0, isMomentum: false,
1894 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
1895 isCustomizedByPrefs: false,
1896 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1897 wheel: {
1898 expected: true, preventDefault: false,
1899 deltaX: 0.0, deltaY: -1.0, deltaZ: 0.0
1900 },
1901 DOMMouseScroll: {
1902 horizontal: { expected: false, preventDefault: false, detail: 0 },
1903 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP } },
1904 MozMousePixelScroll: {
1905 horizontal: { expected: false, preventDefault: false, detail: 0 },
1906 vertical: { expected: true, preventDefault: false, detail: -gPageHeight } }
1907 },
1909 { description: "Simple vertical wheel event by pages (1.0 - 1) #1",
1910 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1911 deltaX: 0.0, deltaY: 1.0, deltaZ: 0.0, isMomentum: false,
1912 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
1913 isCustomizedByPrefs: false,
1914 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1915 wheel: {
1916 expected: true, preventDefault: false,
1917 deltaX: 0.0, deltaY: 1.0, deltaZ: 0.0
1918 },
1919 DOMMouseScroll: {
1920 horizontal: { expected: false, preventDefault: false, detail: 0 },
1921 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
1922 MozMousePixelScroll: {
1923 horizontal: { expected: false, preventDefault: false, detail: 0 },
1924 vertical: { expected: true, preventDefault: false, detail: gPageHeight } }
1925 },
1926 { description: "Simple vertical wheel event by pages (1.0 - 1) #2",
1927 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1928 deltaX: 0.0, deltaY: 1.0, deltaZ: 0.0, isMomentum: false,
1929 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
1930 isCustomizedByPrefs: false,
1931 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1932 wheel: {
1933 expected: true, preventDefault: false,
1934 deltaX: 0.0, deltaY: 1.0, deltaZ: 0.0
1935 },
1936 DOMMouseScroll: {
1937 horizontal: { expected: false, preventDefault: false, detail: 0 },
1938 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
1939 MozMousePixelScroll: {
1940 horizontal: { expected: false, preventDefault: false, detail: 0 },
1941 vertical: { expected: true, preventDefault: false, detail: gPageHeight } }
1942 },
1944 // high resolution page scroll
1945 { description: "High resolution horizontal wheel event by pages (0.333... - 0) #1",
1946 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1947 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1948 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1949 isCustomizedByPrefs: false,
1950 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1951 wheel: {
1952 expected: true, preventDefault: false,
1953 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0
1954 },
1955 DOMMouseScroll: {
1956 horizontal: { expected: false, preventDefault: false, detail: 0 },
1957 vertical: { expected: false, preventDefault: false, detail: 0 } },
1958 MozMousePixelScroll: {
1959 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gPageWidth / 3) },
1960 vertical: { expected: false, preventDefault: false, detail: 0 } }
1961 },
1962 { description: "High resolution horizontal wheel event by pages (0.333... - 0) #2",
1963 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1964 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1965 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1966 isCustomizedByPrefs: false,
1967 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1968 wheel: {
1969 expected: true, preventDefault: false,
1970 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0
1971 },
1972 DOMMouseScroll: {
1973 horizontal: { expected: false, preventDefault: false, detail: 0 },
1974 vertical: { expected: false, preventDefault: false, detail: 0 } },
1975 MozMousePixelScroll: {
1976 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gPageWidth / 3) },
1977 vertical: { expected: false, preventDefault: false, detail: 0 } }
1978 },
1979 { description: "High resolution horizontal wheel event by pages (0.333... - 1) #3",
1980 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1981 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
1982 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
1983 isCustomizedByPrefs: false,
1984 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
1985 wheel: {
1986 expected: true, preventDefault: false,
1987 deltaX: 1.0 / 3, deltaY: 0.0, deltaZ: 0.0
1988 },
1989 DOMMouseScroll: {
1990 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
1991 vertical: { expected: false, preventDefault: false, detail: 0 } },
1992 MozMousePixelScroll: {
1993 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gPageWidth / 3) },
1994 vertical: { expected: false, preventDefault: false, detail: 0 } }
1995 },
1997 { description: "High resolution horizontal wheel event by pages (-0.333... - 0) #1",
1998 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
1999 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
2000 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
2001 isCustomizedByPrefs: false,
2002 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2003 wheel: {
2004 expected: true, preventDefault: false,
2005 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0
2006 },
2007 DOMMouseScroll: {
2008 horizontal: { expected: false, preventDefault: false, detail: 0 },
2009 vertical: { expected: false, preventDefault: false, detail: 0 } },
2010 MozMousePixelScroll: {
2011 horizontal: { expected: true, preventDefault: false, detail: -Math.floor(gPageWidth / 3) },
2012 vertical: { expected: false, preventDefault: false, detail: 0 } }
2013 },
2014 { description: "High resolution horizontal wheel event by pages (-0.333... - 0) #2",
2015 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2016 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
2017 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
2018 isCustomizedByPrefs: false,
2019 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2020 wheel: {
2021 expected: true, preventDefault: false,
2022 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0
2023 },
2024 DOMMouseScroll: {
2025 horizontal: { expected: false, preventDefault: false, detail: 0 },
2026 vertical: { expected: false, preventDefault: false, detail: 0 } },
2027 MozMousePixelScroll: {
2028 horizontal: { expected: true, preventDefault: false, detail: -Math.floor(gPageWidth / 3) },
2029 vertical: { expected: false, preventDefault: false, detail: 0 } }
2030 },
2031 { description: "High resolution horizontal wheel event by pages (-0.333... - -1) #3",
2032 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2033 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0, isMomentum: false,
2034 lineOrPageDeltaX: -1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
2035 isCustomizedByPrefs: false,
2036 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2037 wheel: {
2038 expected: true, preventDefault: false,
2039 deltaX: -1.0 / 3, deltaY: 0.0, deltaZ: 0.0
2040 },
2041 DOMMouseScroll: {
2042 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP },
2043 vertical: { expected: false, preventDefault: false, detail: 0 } },
2044 MozMousePixelScroll: {
2045 horizontal: { expected: true, preventDefault: false, detail: -Math.floor(gPageWidth / 3) },
2046 vertical: { expected: false, preventDefault: false, detail: 0 } }
2047 },
2049 { description: "High resolution vertical wheel event by pages (0.333... - 0) #1",
2050 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2051 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0, isMomentum: false,
2052 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
2053 isCustomizedByPrefs: false,
2054 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2055 wheel: {
2056 expected: true, preventDefault: false,
2057 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0
2058 },
2059 DOMMouseScroll: {
2060 horizontal: { expected: false, preventDefault: false, detail: 0 },
2061 vertical: { expected: false, preventDefault: false, detail: 0 } },
2062 MozMousePixelScroll: {
2063 horizontal: { expected: false, preventDefault: false, detail: 0 },
2064 vertical: { expected: true, preventDefault: false, detail: Math.floor(gPageHeight / 3) } }
2065 },
2066 { description: "High resolution vertical wheel event by pages (0.333... - 0) #2",
2067 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2068 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0, isMomentum: false,
2069 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
2070 isCustomizedByPrefs: false,
2071 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2072 wheel: {
2073 expected: true, preventDefault: false,
2074 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0
2075 },
2076 DOMMouseScroll: {
2077 horizontal: { expected: false, preventDefault: false, detail: 0 },
2078 vertical: { expected: false, preventDefault: false, detail: 0 } },
2079 MozMousePixelScroll: {
2080 horizontal: { expected: false, preventDefault: false, detail: 0 },
2081 vertical: { expected: true, preventDefault: false, detail: Math.floor(gPageHeight / 3) } }
2082 },
2083 { description: "High resolution vertical wheel event by pages (0.333... - 1) #3",
2084 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2085 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0, isMomentum: false,
2086 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2087 isCustomizedByPrefs: false,
2088 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2089 wheel: {
2090 expected: true, preventDefault: false,
2091 deltaX: 0.0, deltaY: 1.0 / 3, deltaZ: 0.0
2092 },
2093 DOMMouseScroll: {
2094 horizontal: { expected: false, preventDefault: false, detail: 0 },
2095 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2096 MozMousePixelScroll: {
2097 horizontal: { expected: false, preventDefault: false, detail: 0 },
2098 vertical: { expected: true, preventDefault: false, detail: Math.floor(gPageHeight / 3) } }
2099 },
2101 { description: "High resolution vertical wheel event by pages (-0.333... - 0) #1",
2102 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2103 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0, isMomentum: false,
2104 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
2105 isCustomizedByPrefs: false,
2106 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2107 wheel: {
2108 expected: true, preventDefault: false,
2109 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0
2110 },
2111 DOMMouseScroll: {
2112 horizontal: { expected: false, preventDefault: false, detail: 0 },
2113 vertical: { expected: false, preventDefault: false, detail: 0 } },
2114 MozMousePixelScroll: {
2115 horizontal: { expected: false, preventDefault: false, detail: 0 },
2116 vertical: { expected: true, preventDefault: false, detail: -Math.floor(gPageHeight / 3) } }
2117 },
2118 { description: "High resolution vertical wheel event by pages (-0.333... - 0) #2",
2119 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2120 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0, isMomentum: false,
2121 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
2122 isCustomizedByPrefs: false,
2123 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2124 wheel: {
2125 expected: true, preventDefault: false,
2126 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0
2127 },
2128 DOMMouseScroll: {
2129 horizontal: { expected: false, preventDefault: false, detail: 0 },
2130 vertical: { expected: false, preventDefault: false, detail: 0 } },
2131 MozMousePixelScroll: {
2132 horizontal: { expected: false, preventDefault: false, detail: 0 },
2133 vertical: { expected: true, preventDefault: false, detail: -Math.floor(gPageHeight / 3) } }
2134 },
2135 { description: "High resolution vertical wheel event by pages (-0.333... - -1) #3",
2136 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2137 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0, isMomentum: false,
2138 lineOrPageDeltaX: 0, lineOrPageDeltaY: -1, isPixelOnlyDevice: false,
2139 isCustomizedByPrefs: false,
2140 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2141 wheel: {
2142 expected: true, preventDefault: false,
2143 deltaX: 0.0, deltaY: -1.0 / 3, deltaZ: 0.0
2144 },
2145 DOMMouseScroll: {
2146 horizontal: { expected: false, preventDefault: false, detail: 0 },
2147 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP } },
2148 MozMousePixelScroll: {
2149 horizontal: { expected: false, preventDefault: false, detail: 0 },
2150 vertical: { expected: true, preventDefault: false, detail: -Math.floor(gPageHeight / 3) } }
2151 },
2153 // Oblique page scroll
2154 { description: "Oblique wheel event by pages (-1.0/2.0 - -1/2)",
2155 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2156 deltaX: -1.0, deltaY: 2.0, deltaZ: 0.0, isMomentum: false,
2157 lineOrPageDeltaX: -1, lineOrPageDeltaY: 2, isPixelOnlyDevice: false,
2158 isCustomizedByPrefs: false,
2159 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2160 wheel: {
2161 expected: true, preventDefault: false,
2162 deltaX: -1.0, deltaY: 2.0, deltaZ: 0.0
2163 },
2164 DOMMouseScroll: {
2165 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP },
2166 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2167 MozMousePixelScroll: {
2168 horizontal: { expected: true, preventDefault: false, detail: -gPageWidth },
2169 vertical: { expected: true, preventDefault: false, detail: gPageHeight * 2 } }
2170 },
2172 { description: "Oblique wheel event by pages (1.0/-2.0 - 1/-2)",
2173 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2174 deltaX: 1.0, deltaY: -2.0, deltaZ: 0.0, isMomentum: false,
2175 lineOrPageDeltaX: 1, lineOrPageDeltaY: -2, isPixelOnlyDevice: false,
2176 isCustomizedByPrefs: false,
2177 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2178 wheel: {
2179 expected: true, preventDefault: false,
2180 deltaX: 1.0, deltaY: -2.0, deltaZ: 0.0
2181 },
2182 DOMMouseScroll: {
2183 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
2184 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP } },
2185 MozMousePixelScroll: {
2186 horizontal: { expected: true, preventDefault: false, detail: gPageWidth },
2187 vertical: { expected: true, preventDefault: false, detail: -gPageHeight * 2 } }
2188 },
2190 { description: "High resolution oblique wheel event by pages (0.5/0.333.../-0.8 - 0/0) #1",
2191 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2192 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8, isMomentum: false,
2193 lineOrPageDeltaX: 0, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
2194 isCustomizedByPrefs: false,
2195 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2196 wheel: {
2197 expected: true, preventDefault: false,
2198 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8
2199 },
2200 DOMMouseScroll: {
2201 horizontal: { expected: false, preventDefault: false, detail: 0 },
2202 vertical: { expected: false, preventDefault: false, detail: 0 } },
2203 MozMousePixelScroll: {
2204 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gPageWidth / 2) },
2205 vertical: { expected: true, preventDefault: false, detail: Math.floor(gPageHeight / 3) } }
2206 },
2207 { description: "High resolution oblique wheel event by pages (0.5/0.333.../-0.8 - 1/0) #2",
2208 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2209 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8, isMomentum: false,
2210 lineOrPageDeltaX: 1, lineOrPageDeltaY: 0, isPixelOnlyDevice: false,
2211 isCustomizedByPrefs: false,
2212 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2213 wheel: {
2214 expected: true, preventDefault: false,
2215 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8
2216 },
2217 DOMMouseScroll: {
2218 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
2219 vertical: { expected: false, preventDefault: false, detail: 0 } },
2220 MozMousePixelScroll: {
2221 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gPageWidth / 2) },
2222 vertical: { expected: true, preventDefault: false, detail: Math.floor(gPageHeight / 3) } }
2223 },
2224 { description: "High resolution oblique wheel event by pages (0.5/0.333.../-0.8 - 0/1) #3",
2225 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2226 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8, isMomentum: false,
2227 lineOrPageDeltaX: 0, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2228 isCustomizedByPrefs: false,
2229 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2230 wheel: {
2231 expected: true, preventDefault: false,
2232 deltaX: 0.5, deltaY: 1.0 / 3, deltaZ: -0.8
2233 },
2234 DOMMouseScroll: {
2235 horizontal: { expected: false, preventDefault: false, detail: 0 },
2236 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2237 MozMousePixelScroll: {
2238 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gPageWidth / 2) },
2239 vertical: { expected: true, preventDefault: false, detail: Math.floor(gPageHeight / 3) } }
2240 },
2242 // preventDefault() shouldn't prevent other legacy events.
2243 { description: "preventDefault() shouldn't prevent other legacy events (pixel)",
2244 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2245 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0, isMomentum: false,
2246 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2247 isCustomizedByPrefs: false,
2248 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2249 wheel: {
2250 expected: true, preventDefault: false,
2251 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0
2252 },
2253 DOMMouseScroll: {
2254 horizontal: { expected: true, preventDefault: true, detail: 1 },
2255 vertical: { expected: true, preventDefault: true, detail: 1 } },
2256 MozMousePixelScroll: {
2257 horizontal: { expected: true, preventDefault: true, detail: 16 },
2258 vertical: { expected: true, preventDefault: true, detail: 16 } },
2259 },
2260 { description: "preventDefault() shouldn't prevent other legacy events (line)",
2261 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2262 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2263 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2264 isCustomizedByPrefs: false,
2265 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2266 wheel: {
2267 expected: true, preventDefault: false,
2268 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2269 },
2270 DOMMouseScroll: {
2271 horizontal: { expected: true, preventDefault: true, detail: 1 },
2272 vertical: { expected: true, preventDefault: true, detail: 1 } },
2273 MozMousePixelScroll: {
2274 horizontal: { expected: true, preventDefault: true, detail: gHorizontalLine },
2275 vertical: { expected: true, preventDefault: true, detail: gLineHeight } },
2276 },
2277 { description: "preventDefault() shouldn't prevent other legacy events (page)",
2278 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2279 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2280 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2281 isCustomizedByPrefs: false,
2282 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2283 wheel: {
2284 expected: true, preventDefault: false,
2285 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2286 },
2287 DOMMouseScroll: {
2288 horizontal: { expected: true, preventDefault: true, detail: UIEvent.SCROLL_PAGE_DOWN },
2289 vertical: { expected: true, preventDefault: true, detail: UIEvent.SCROLL_PAGE_DOWN } },
2290 MozMousePixelScroll: {
2291 horizontal: { expected: true, preventDefault: true, detail: gPageWidth },
2292 vertical: { expected: true, preventDefault: true, detail: gPageHeight } },
2293 },
2295 // If wheel event is consumed by preventDefault(), legacy events are not necessary.
2296 { description: "If wheel event is consumed by preventDefault(), legacy events are not necessary (pixel)",
2297 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2298 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0, isMomentum: false,
2299 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2300 isCustomizedByPrefs: false,
2301 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2302 wheel: {
2303 expected: true, preventDefault: true,
2304 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0
2305 },
2306 DOMMouseScroll: {
2307 horizontal: { expected: false, preventDefault: false, detail: 0 },
2308 vertical: { expected: false, preventDefault: false, detail: 0 } },
2309 MozMousePixelScroll: {
2310 horizontal: { expected: false, preventDefault: false, detail: 0 },
2311 vertical: { expected: false, preventDefault: false, detail: 0 } },
2312 },
2313 { description: "If wheel event is consumed by preventDefault(), legacy events are not necessary (line)",
2314 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2315 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2316 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2317 isCustomizedByPrefs: false,
2318 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2319 wheel: {
2320 expected: true, preventDefault: true,
2321 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2322 },
2323 DOMMouseScroll: {
2324 horizontal: { expected: false, preventDefault: false, detail: 0 },
2325 vertical: { expected: false, preventDefault: false, detail: 0 } },
2326 MozMousePixelScroll: {
2327 horizontal: { expected: false, preventDefault: false, detail: 0 },
2328 vertical: { expected: false, preventDefault: false, detail: 0 } },
2329 },
2330 { description: "If wheel event is consumed by preventDefault(), legacy events are not necessary (page)",
2331 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2332 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2333 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2334 isCustomizedByPrefs: false,
2335 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2336 wheel: {
2337 expected: true, preventDefault: true,
2338 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2339 },
2340 DOMMouseScroll: {
2341 horizontal: { expected: false, preventDefault: false, detail: 0 },
2342 vertical: { expected: false, preventDefault: false, detail: 0 } },
2343 MozMousePixelScroll: {
2344 horizontal: { expected: false, preventDefault: false, detail: 0 },
2345 vertical: { expected: false, preventDefault: false, detail: 0 } },
2346 },
2348 // modifier key state tests
2349 { description: "modifier key tests (shift, pixel)",
2350 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2351 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0, isMomentum: false,
2352 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2353 isCustomizedByPrefs: false,
2354 shiftKey: true, ctrlKey: false, altKey: false, metaKey: false },
2355 wheel: {
2356 expected: true, preventDefault: false,
2357 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0
2358 },
2359 DOMMouseScroll: {
2360 horizontal: { expected: true, preventDefault: false, detail: 1 },
2361 vertical: { expected: true, preventDefault: false, detail: 1 } },
2362 MozMousePixelScroll: {
2363 horizontal: { expected: true, preventDefault: true, detail: 16 },
2364 vertical: { expected: true, preventDefault: true, detail: 16 } },
2365 },
2366 { description: "modifier key tests (shift, line)",
2367 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2368 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2369 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2370 isCustomizedByPrefs: false,
2371 shiftKey: true, ctrlKey: false, altKey: false, metaKey: false },
2372 wheel: {
2373 expected: true, preventDefault: false,
2374 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2375 },
2376 DOMMouseScroll: {
2377 horizontal: { expected: true, preventDefault: false, detail: 1 },
2378 vertical: { expected: true, preventDefault: false, detail: 1 } },
2379 MozMousePixelScroll: {
2380 horizontal: { expected: true, preventDefault: true, detail: gHorizontalLine },
2381 vertical: { expected: true, preventDefault: true, detail: gLineHeight } },
2382 },
2383 { description: "modifier key tests (shift, page)",
2384 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2385 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2386 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2387 isCustomizedByPrefs: false,
2388 shiftKey: true, ctrlKey: false, altKey: false, metaKey: false },
2389 wheel: {
2390 expected: true, preventDefault: false,
2391 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2392 },
2393 DOMMouseScroll: {
2394 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
2395 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2396 MozMousePixelScroll: {
2397 horizontal: { expected: true, preventDefault: true, detail: gPageWidth },
2398 vertical: { expected: true, preventDefault: true, detail: gPageHeight } },
2399 },
2401 { description: "modifier key tests (ctrl, pixel)",
2402 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2403 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0, isMomentum: false,
2404 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2405 isCustomizedByPrefs: false,
2406 shiftKey: false, ctrlKey: true, altKey: false, metaKey: false },
2407 wheel: {
2408 expected: true, preventDefault: false,
2409 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0
2410 },
2411 DOMMouseScroll: {
2412 horizontal: { expected: true, preventDefault: false, detail: 1 },
2413 vertical: { expected: true, preventDefault: false, detail: 1 } },
2414 MozMousePixelScroll: {
2415 horizontal: { expected: true, preventDefault: true, detail: 16 },
2416 vertical: { expected: true, preventDefault: true, detail: 16 } },
2417 },
2418 { description: "modifier key tests (ctrl, line)",
2419 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2420 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2421 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2422 isCustomizedByPrefs: false,
2423 shiftKey: false, ctrlKey: true, altKey: false, metaKey: false },
2424 wheel: {
2425 expected: true, preventDefault: false,
2426 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2427 },
2428 DOMMouseScroll: {
2429 horizontal: { expected: true, preventDefault: false, detail: 1 },
2430 vertical: { expected: true, preventDefault: false, detail: 1 } },
2431 MozMousePixelScroll: {
2432 horizontal: { expected: true, preventDefault: true, detail: gHorizontalLine },
2433 vertical: { expected: true, preventDefault: true, detail: gLineHeight } },
2434 },
2435 { description: "modifier key tests (ctrl, page)",
2436 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2437 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2438 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2439 isCustomizedByPrefs: false,
2440 shiftKey: false, ctrlKey: true, altKey: false, metaKey: false },
2441 wheel: {
2442 expected: true, preventDefault: false,
2443 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2444 },
2445 DOMMouseScroll: {
2446 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
2447 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2448 MozMousePixelScroll: {
2449 horizontal: { expected: true, preventDefault: true, detail: gPageWidth },
2450 vertical: { expected: true, preventDefault: true, detail: gPageHeight } },
2451 },
2453 { description: "modifier key tests (alt, pixel)",
2454 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2455 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0, isMomentum: false,
2456 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2457 isCustomizedByPrefs: false,
2458 shiftKey: false, ctrlKey: false, altKey: true, metaKey: false },
2459 wheel: {
2460 expected: true, preventDefault: false,
2461 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0
2462 },
2463 DOMMouseScroll: {
2464 horizontal: { expected: true, preventDefault: false, detail: 1 },
2465 vertical: { expected: true, preventDefault: false, detail: 1 } },
2466 MozMousePixelScroll: {
2467 horizontal: { expected: true, preventDefault: true, detail: 16 },
2468 vertical: { expected: true, preventDefault: true, detail: 16 } },
2469 },
2470 { description: "modifier key tests (alt, line)",
2471 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2472 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2473 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2474 isCustomizedByPrefs: false,
2475 shiftKey: false, ctrlKey: false, altKey: true, metaKey: false },
2476 wheel: {
2477 expected: true, preventDefault: false,
2478 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2479 },
2480 DOMMouseScroll: {
2481 horizontal: { expected: true, preventDefault: false, detail: 1 },
2482 vertical: { expected: true, preventDefault: false, detail: 1 } },
2483 MozMousePixelScroll: {
2484 horizontal: { expected: true, preventDefault: true, detail: gHorizontalLine },
2485 vertical: { expected: true, preventDefault: true, detail: gLineHeight } },
2486 },
2487 { description: "modifier key tests (alt, page)",
2488 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2489 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2490 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2491 isCustomizedByPrefs: false,
2492 shiftKey: false, ctrlKey: false, altKey: true, metaKey: false },
2493 wheel: {
2494 expected: true, preventDefault: false,
2495 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2496 },
2497 DOMMouseScroll: {
2498 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
2499 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2500 MozMousePixelScroll: {
2501 horizontal: { expected: true, preventDefault: true, detail: gPageWidth },
2502 vertical: { expected: true, preventDefault: true, detail: gPageHeight } },
2503 },
2505 { description: "modifier key tests (meta, pixel)",
2506 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2507 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0, isMomentum: false,
2508 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2509 isCustomizedByPrefs: false,
2510 shiftKey: false, ctrlKey: false, altKey: false, metaKey: true },
2511 wheel: {
2512 expected: true, preventDefault: false,
2513 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0
2514 },
2515 DOMMouseScroll: {
2516 horizontal: { expected: true, preventDefault: false, detail: 1 },
2517 vertical: { expected: true, preventDefault: false, detail: 1 } },
2518 MozMousePixelScroll: {
2519 horizontal: { expected: true, preventDefault: true, detail: 16 },
2520 vertical: { expected: true, preventDefault: true, detail: 16 } },
2521 },
2522 { description: "modifier key tests (meta, line)",
2523 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2524 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2525 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2526 isCustomizedByPrefs: false,
2527 shiftKey: false, ctrlKey: false, altKey: false, metaKey: true },
2528 wheel: {
2529 expected: true, preventDefault: false,
2530 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2531 },
2532 DOMMouseScroll: {
2533 horizontal: { expected: true, preventDefault: false, detail: 1 },
2534 vertical: { expected: true, preventDefault: false, detail: 1 } },
2535 MozMousePixelScroll: {
2536 horizontal: { expected: true, preventDefault: true, detail: gHorizontalLine },
2537 vertical: { expected: true, preventDefault: true, detail: gLineHeight } },
2538 },
2539 { description: "modifier key tests (meta, page)",
2540 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2541 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: true,
2542 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2543 isCustomizedByPrefs: false,
2544 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2545 wheel: {
2546 expected: true, preventDefault: false,
2547 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2548 },
2549 DOMMouseScroll: {
2550 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
2551 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2552 MozMousePixelScroll: {
2553 horizontal: { expected: true, preventDefault: true, detail: gPageWidth },
2554 vertical: { expected: true, preventDefault: true, detail: gPageHeight } },
2555 },
2557 // Momentum scroll should cause legacy events.
2558 { description: "Momentum scroll should cause legacy events (pixel, not momentum)",
2559 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2560 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0, isMomentum: false,
2561 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2562 isCustomizedByPrefs: false,
2563 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2564 wheel: {
2565 expected: true, preventDefault: false,
2566 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0
2567 },
2568 DOMMouseScroll: {
2569 horizontal: { expected: true, preventDefault: false, detail: 1 },
2570 vertical: { expected: true, preventDefault: false, detail: 1 } },
2571 MozMousePixelScroll: {
2572 horizontal: { expected: true, preventDefault: false, detail: 16 },
2573 vertical: { expected: true, preventDefault: false, detail: 16 } },
2574 },
2575 { description: "Momentum scroll should cause legacy events (pixel, momentum)",
2576 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2577 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0, isMomentum: true,
2578 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2579 isCustomizedByPrefs: false,
2580 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2581 wheel: {
2582 expected: true, preventDefault: false,
2583 deltaX: 16.0, deltaY: 16.0, deltaZ: 16.0
2584 },
2585 DOMMouseScroll: {
2586 horizontal: { expected: true, preventDefault: false, detail: 1 },
2587 vertical: { expected: true, preventDefault: false, detail: 1 } },
2588 MozMousePixelScroll: {
2589 horizontal: { expected: true, preventDefault: false, detail: 16 },
2590 vertical: { expected: true, preventDefault: false, detail: 16 } },
2591 },
2592 { description: "Momentum scroll should cause legacy events (line, not momentum)",
2593 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2594 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2595 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2596 isCustomizedByPrefs: false,
2597 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2598 wheel: {
2599 expected: true, preventDefault: false,
2600 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2601 },
2602 DOMMouseScroll: {
2603 horizontal: { expected: true, preventDefault: false, detail: 1 },
2604 vertical: { expected: true, preventDefault: false, detail: 1 } },
2605 MozMousePixelScroll: {
2606 horizontal: { expected: true, preventDefault: false, detail: gHorizontalLine },
2607 vertical: { expected: true, preventDefault: false, detail: gLineHeight } },
2608 },
2609 { description: "Momentum scroll should cause legacy events (line, momentum)",
2610 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2611 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: true,
2612 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2613 isCustomizedByPrefs: false,
2614 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2615 wheel: {
2616 expected: true, preventDefault: false,
2617 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2618 },
2619 DOMMouseScroll: {
2620 horizontal: { expected: true, preventDefault: false, detail: 1 },
2621 vertical: { expected: true, preventDefault: false, detail: 1 } },
2622 MozMousePixelScroll: {
2623 horizontal: { expected: true, preventDefault: false, detail: gHorizontalLine },
2624 vertical: { expected: true, preventDefault: false, detail: gLineHeight } },
2625 },
2626 { description: "Momentum scroll should cause legacy events (page, not momentum)",
2627 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2628 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: false,
2629 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2630 isCustomizedByPrefs: false,
2631 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2632 wheel: {
2633 expected: true, preventDefault: false,
2634 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2635 },
2636 DOMMouseScroll: {
2637 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
2638 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2639 MozMousePixelScroll: {
2640 horizontal: { expected: true, preventDefault: false, detail: gPageWidth },
2641 vertical: { expected: true, preventDefault: false, detail: gPageHeight } },
2642 },
2643 { description: "Momentum scroll should cause legacy events (page, momentum)",
2644 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2645 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0, isMomentum: true,
2646 lineOrPageDeltaX: 1, lineOrPageDeltaY: 1, isPixelOnlyDevice: false,
2647 isCustomizedByPrefs: false,
2648 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2649 wheel: {
2650 expected: true, preventDefault: false,
2651 deltaX: 1.0, deltaY: 1.0, deltaZ: 1.0
2652 },
2653 DOMMouseScroll: {
2654 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
2655 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2656 MozMousePixelScroll: {
2657 horizontal: { expected: true, preventDefault: false, detail: gPageWidth },
2658 vertical: { expected: true, preventDefault: false, detail: gPageHeight } },
2659 },
2661 // Tests for accumulation delta when delta_multiplier_is customized.
2662 { description: "lineOrPageDelta should be recomputed by ESM (pixel) #1",
2663 prepare: function () {
2664 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 200);
2665 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 300);
2666 },
2667 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2668 deltaX: gHorizontalLine / 4, deltaY: gLineHeight / 8, deltaZ: 0,
2669 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2670 isCustomizedByPrefs: false,
2671 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2672 wheel: {
2673 expected: true, preventDefault: false,
2674 deltaX: gHorizontalLine / 4 * 2, deltaY: gLineHeight / 8 * 3, deltaZ: 0
2675 },
2676 DOMMouseScroll: {
2677 horizontal: { expected: false, preventDefault: false, detail: 0 },
2678 vertical: { expected: false, preventDefault: false, detail: 0 } },
2679 MozMousePixelScroll: {
2680 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine / 4 * 2) },
2681 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight / 8 * 3) } },
2682 },
2683 { description: "lineOrPageDelta should be recomputed by ESM (pixel) #2",
2684 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2685 deltaX: gHorizontalLine / 4 + 1, deltaY: gLineHeight / 8 + 1, deltaZ: 0,
2686 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2687 isCustomizedByPrefs: false,
2688 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2689 wheel: {
2690 expected: true, preventDefault: false,
2691 deltaX: (gHorizontalLine / 4 + 1) * 2, deltaY: (gLineHeight / 8 + 1) * 3, deltaZ: 0
2692 },
2693 DOMMouseScroll: {
2694 horizontal: { expected: true, preventDefault: false, detail: 1 },
2695 vertical: { expected: false, preventDefault: false, detail: 0 } },
2696 MozMousePixelScroll: {
2697 horizontal: { expected: true, preventDefault: false, detail: Math.floor((gHorizontalLine / 4 + 1) * 2) },
2698 vertical: { expected: true, preventDefault: false, detail: Math.floor((gLineHeight / 8 + 1) * 3) } },
2699 },
2700 { description: "lineOrPageDelta should be recomputed by ESM (pixel) #3",
2701 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2702 deltaX: gHorizontalLine / 4 + 1, deltaY: gLineHeight / 8 + 1, deltaZ: 0,
2703 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2704 isCustomizedByPrefs: false,
2705 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2706 wheel: {
2707 expected: true, preventDefault: false,
2708 deltaX: (gHorizontalLine / 4 + 1) * 2, deltaY: (gLineHeight / 8 + 1) * 3, deltaZ: 0
2709 },
2710 DOMMouseScroll: {
2711 horizontal: { expected: false, preventDefault: false, detail: 0 },
2712 vertical: { expected: true, preventDefault: false, detail: 1 } },
2713 MozMousePixelScroll: {
2714 horizontal: { expected: true, preventDefault: false, detail: Math.floor((gHorizontalLine / 4 + 1) * 2) },
2715 vertical: { expected: true, preventDefault: false, detail: Math.floor((gLineHeight / 8 + 1) * 3) } },
2716 finished: function () {
2717 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 100);
2718 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 100);
2719 },
2720 },
2722 { description: "lineOrPageDelta should be recomputed by ESM (pixel, negative, shift) #1",
2723 prepare: function () {
2724 SpecialPowers.setIntPref("mousewheel.with_shift.delta_multiplier_x", 200);
2725 SpecialPowers.setIntPref("mousewheel.with_shift.delta_multiplier_y", 300);
2726 },
2727 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2728 deltaX: -gHorizontalLine / 4, deltaY: -gLineHeight / 8, deltaZ: 0,
2729 lineOrPageDeltaX: -3, lineOrPageDeltaY: -5, isPixelOnlyDevice: false,
2730 isCustomizedByPrefs: false,
2731 shiftKey: true, ctrlKey: false, altKey: false, metaKey: false },
2732 wheel: {
2733 expected: true, preventDefault: false,
2734 deltaX: -gHorizontalLine / 4 * 2, deltaY: -gLineHeight / 8 * 3, deltaZ: 0
2735 },
2736 DOMMouseScroll: {
2737 horizontal: { expected: false, preventDefault: false, detail: 0 },
2738 vertical: { expected: false, preventDefault: false, detail: 0 } },
2739 MozMousePixelScroll: {
2740 horizontal: { expected: true, preventDefault: false, detail: Math.ceil(-gHorizontalLine / 4 * 2) },
2741 vertical: { expected: true, preventDefault: false, detail: Math.ceil(-gLineHeight / 8 * 3) } },
2742 },
2743 { description: "lineOrPageDelta should be recomputed by ESM (pixel, negative, shift) #2",
2744 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2745 deltaX: -(gHorizontalLine / 4 + 1), deltaY: -(gLineHeight / 8 + 1), deltaZ: 0,
2746 lineOrPageDeltaX: -3, lineOrPageDeltaY: -5, isPixelOnlyDevice: false,
2747 isCustomizedByPrefs: false,
2748 shiftKey: true, ctrlKey: false, altKey: false, metaKey: false },
2749 wheel: {
2750 expected: true, preventDefault: false,
2751 deltaX: -(gHorizontalLine / 4 + 1) * 2, deltaY: -(gLineHeight / 8 + 1) * 3, deltaZ: 0
2752 },
2753 DOMMouseScroll: {
2754 horizontal: { expected: true, preventDefault: false, detail: -1 },
2755 vertical: { expected: false, preventDefault: false, detail: 0 } },
2756 MozMousePixelScroll: {
2757 horizontal: { expected: true, preventDefault: false, detail: Math.ceil(-(gHorizontalLine / 4 + 1) * 2) },
2758 vertical: { expected: true, preventDefault: false, detail: Math.ceil(-(gLineHeight / 8 + 1) * 3) } },
2759 },
2760 { description: "lineOrPageDelta should be recomputed by ESM (pixel, negative, shift) #3",
2761 event: { deltaMode: WheelEvent.DOM_DELTA_PIXEL,
2762 deltaX: -(gHorizontalLine / 4 + 1), deltaY: -(gLineHeight / 8 + 1), deltaZ: 0,
2763 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2764 isCustomizedByPrefs: false,
2765 shiftKey: true, ctrlKey: false, altKey: false, metaKey: false },
2766 wheel: {
2767 expected: true, preventDefault: false,
2768 deltaX: -(gHorizontalLine / 4 + 1) * 2, deltaY: -(gLineHeight / 8 + 1) * 3, deltaZ: 0
2769 },
2770 DOMMouseScroll: {
2771 horizontal: { expected: false, preventDefault: false, detail: 0 },
2772 vertical: { expected: true, preventDefault: false, detail: -1 } },
2773 MozMousePixelScroll: {
2774 horizontal: { expected: true, preventDefault: false, detail: Math.ceil(-(gHorizontalLine / 4 + 1) * 2) },
2775 vertical: { expected: true, preventDefault: false, detail: Math.ceil(-(gLineHeight / 8 + 1) * 3) } },
2776 finished: function () {
2777 SpecialPowers.setIntPref("mousewheel.with_shift.delta_multiplier_x", 100);
2778 SpecialPowers.setIntPref("mousewheel.with_shift.delta_multiplier_y", 100);
2779 },
2780 },
2782 { description: "lineOrPageDelta should be recomputed by ESM (line) #1",
2783 prepare: function () {
2784 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 200);
2785 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 100);
2786 },
2787 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2788 deltaX: 0.3, deltaY: 0.4, deltaZ: 0,
2789 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2790 isCustomizedByPrefs: false,
2791 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2792 wheel: {
2793 expected: true, preventDefault: false,
2794 deltaX: 0.6, deltaY: 0.4, deltaZ: 0
2795 },
2796 DOMMouseScroll: {
2797 horizontal: { expected: false, preventDefault: false, detail: 0 },
2798 vertical: { expected: false, preventDefault: false, detail: 0 } },
2799 MozMousePixelScroll: {
2800 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine * 0.6) },
2801 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight * 0.4) } },
2802 },
2803 { description: "lineOrPageDelta should be recomputed by ESM (line) #2",
2804 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2805 deltaX: 0.3, deltaY: 0.4, deltaZ: 0,
2806 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2807 isCustomizedByPrefs: false,
2808 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2809 wheel: {
2810 expected: true, preventDefault: false,
2811 deltaX: 0.6, deltaY: 0.4, deltaZ: 0
2812 },
2813 DOMMouseScroll: {
2814 horizontal: { expected: true, preventDefault: false, detail: 1 },
2815 vertical: { expected: false, preventDefault: false, detail: 0 } },
2816 MozMousePixelScroll: {
2817 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine * 0.6) },
2818 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight * 0.4) } },
2819 },
2820 { description: "lineOrPageDelta should be recomputed by ESM (line) #3",
2821 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2822 deltaX: 0.3, deltaY: 0.4, deltaZ: 0,
2823 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2824 isCustomizedByPrefs: false,
2825 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2826 wheel: {
2827 expected: true, preventDefault: false,
2828 deltaX: 0.6, deltaY: 0.4, deltaZ: 0
2829 },
2830 DOMMouseScroll: {
2831 horizontal: { expected: false, preventDefault: false, detail: 0 },
2832 vertical: { expected: true, preventDefault: false, detail: 1 } },
2833 MozMousePixelScroll: {
2834 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gHorizontalLine * 0.6) },
2835 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight * 0.4) } },
2836 finished: function () {
2837 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 100);
2838 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 100);
2839 },
2840 },
2842 { description: "lineOrPageDelta should be recomputed by ESM (line, negative) #1",
2843 prepare: function () {
2844 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 200);
2845 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", -100);
2846 },
2847 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2848 deltaX: -0.3, deltaY: -0.4, deltaZ: 0,
2849 lineOrPageDeltaX: -3, lineOrPageDeltaY: -5, isPixelOnlyDevice: false,
2850 isCustomizedByPrefs: false,
2851 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2852 wheel: {
2853 expected: true, preventDefault: false,
2854 deltaX: -0.6, deltaY: 0.4, deltaZ: 0
2855 },
2856 DOMMouseScroll: {
2857 horizontal: { expected: false, preventDefault: false, detail: 0 },
2858 vertical: { expected: false, preventDefault: false, detail: 0 } },
2859 MozMousePixelScroll: {
2860 horizontal: { expected: true, preventDefault: false, detail: Math.ceil(gHorizontalLine * -0.6) },
2861 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight * 0.4) } },
2862 },
2863 { description: "lineOrPageDelta should be recomputed by ESM (line, negative) #2",
2864 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2865 deltaX: -0.3, deltaY: -0.4, deltaZ: 0,
2866 lineOrPageDeltaX: -3, lineOrPageDeltaY: -5, isPixelOnlyDevice: false,
2867 isCustomizedByPrefs: false,
2868 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2869 wheel: {
2870 expected: true, preventDefault: false,
2871 deltaX: -0.6, deltaY: 0.4, deltaZ: 0
2872 },
2873 DOMMouseScroll: {
2874 horizontal: { expected: true, preventDefault: false, detail: -1 },
2875 vertical: { expected: false, preventDefault: false, detail: 0 } },
2876 MozMousePixelScroll: {
2877 horizontal: { expected: true, preventDefault: false, detail: Math.ceil(gHorizontalLine * -0.6) },
2878 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight * 0.4) } },
2879 },
2880 { description: "lineOrPageDelta should be recomputed by ESM (line, negative) #3",
2881 event: { deltaMode: WheelEvent.DOM_DELTA_LINE,
2882 deltaX: -0.3, deltaY: -0.4, deltaZ: 0,
2883 lineOrPageDeltaX: -3, lineOrPageDeltaY: -5, isPixelOnlyDevice: false,
2884 isCustomizedByPrefs: false,
2885 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2886 wheel: {
2887 expected: true, preventDefault: false,
2888 deltaX: -0.6, deltaY: 0.4, deltaZ: 0
2889 },
2890 DOMMouseScroll: {
2891 horizontal: { expected: false, preventDefault: false, detail: 0 },
2892 vertical: { expected: true, preventDefault: false, detail: 1 } },
2893 MozMousePixelScroll: {
2894 horizontal: { expected: true, preventDefault: false, detail: Math.ceil(gHorizontalLine * -0.6) },
2895 vertical: { expected: true, preventDefault: false, detail: Math.floor(gLineHeight * 0.4) } },
2896 finished: function () {
2897 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 100);
2898 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 100);
2899 },
2900 },
2902 { description: "lineOrPageDelta should be recomputed by ESM (page) #1",
2903 prepare: function () {
2904 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 100);
2905 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 200);
2906 },
2907 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2908 deltaX: 0.3, deltaY: 0.4, deltaZ: 0,
2909 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2910 isCustomizedByPrefs: false,
2911 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2912 wheel: {
2913 expected: true, preventDefault: false,
2914 deltaX: 0.3, deltaY: 0.8, deltaZ: 0
2915 },
2916 DOMMouseScroll: {
2917 horizontal: { expected: false, preventDefault: false, detail: 0 },
2918 vertical: { expected: false, preventDefault: false, detail: 0 } },
2919 MozMousePixelScroll: {
2920 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gPageWidth * 0.3) },
2921 vertical: { expected: true, preventDefault: false, detail: Math.floor(gPageHeight * 0.8) } },
2922 },
2923 { description: "lineOrPageDelta should be recomputed by ESM (page) #2",
2924 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2925 deltaX: 0.3, deltaY: 0.4, deltaZ: 0,
2926 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2927 isCustomizedByPrefs: false,
2928 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2929 wheel: {
2930 expected: true, preventDefault: false,
2931 deltaX: 0.3, deltaY: 0.8, deltaZ: 0
2932 },
2933 DOMMouseScroll: {
2934 horizontal: { expected: false, preventDefault: false, detail: 0 },
2935 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2936 MozMousePixelScroll: {
2937 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gPageWidth * 0.3) },
2938 vertical: { expected: true, preventDefault: false, detail: Math.floor(gPageHeight * 0.8) } },
2939 },
2940 { description: "lineOrPageDelta should be recomputed by ESM (page) #3",
2941 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2942 deltaX: 0.4, deltaY: 0.4, deltaZ: 0,
2943 lineOrPageDeltaX: 3, lineOrPageDeltaY: 5, isPixelOnlyDevice: false,
2944 isCustomizedByPrefs: false,
2945 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2946 wheel: {
2947 expected: true, preventDefault: false,
2948 deltaX: 0.4, deltaY: 0.8, deltaZ: 0
2949 },
2950 DOMMouseScroll: {
2951 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN },
2952 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_DOWN } },
2953 MozMousePixelScroll: {
2954 horizontal: { expected: true, preventDefault: false, detail: Math.floor(gPageWidth * 0.4) },
2955 vertical: { expected: true, preventDefault: false, detail: Math.floor(gPageHeight * 0.8) } },
2956 finished: function () {
2957 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 100);
2958 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 100);
2959 },
2960 },
2962 { description: "lineOrPageDelta should be recomputed by ESM (page, negative) #1",
2963 prepare: function () {
2964 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 100);
2965 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 200);
2966 },
2967 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2968 deltaX: -0.3, deltaY: -0.4, deltaZ: 0,
2969 lineOrPageDeltaX: -3, lineOrPageDeltaY: -5, isPixelOnlyDevice: false,
2970 isCustomizedByPrefs: false,
2971 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2972 wheel: {
2973 expected: true, preventDefault: false,
2974 deltaX: -0.3, deltaY: -0.8, deltaZ: 0
2975 },
2976 DOMMouseScroll: {
2977 horizontal: { expected: false, preventDefault: false, detail: 0 },
2978 vertical: { expected: false, preventDefault: false, detail: 0 } },
2979 MozMousePixelScroll: {
2980 horizontal: { expected: true, preventDefault: false, detail: Math.ceil(gPageWidth * -0.3) },
2981 vertical: { expected: true, preventDefault: false, detail: Math.ceil(gPageHeight * -0.8) } },
2982 },
2983 { description: "lineOrPageDelta should be recomputed by ESM (page, negative) #2",
2984 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
2985 deltaX: -0.3, deltaY: -0.4, deltaZ: 0,
2986 lineOrPageDeltaX: -3, lineOrPageDeltaY: -5, isPixelOnlyDevice: false,
2987 isCustomizedByPrefs: false,
2988 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
2989 wheel: {
2990 expected: true, preventDefault: false,
2991 deltaX: -0.3, deltaY: -0.8, deltaZ: 0
2992 },
2993 DOMMouseScroll: {
2994 horizontal: { expected: false, preventDefault: false, detail: 0 },
2995 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP } },
2996 MozMousePixelScroll: {
2997 horizontal: { expected: true, preventDefault: false, detail: Math.ceil(gPageWidth * -0.3) },
2998 vertical: { expected: true, preventDefault: false, detail: Math.ceil(gPageHeight * -0.8) } },
2999 },
3000 { description: "lineOrPageDelta should be recomputed by ESM (page, negative) #3",
3001 event: { deltaMode: WheelEvent.DOM_DELTA_PAGE,
3002 deltaX: -0.4, deltaY: -0.4, deltaZ: 0,
3003 lineOrPageDeltaX: -3, lineOrPageDeltaY: -5, isPixelOnlyDevice: false,
3004 isCustomizedByPrefs: false,
3005 shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
3006 wheel: {
3007 expected: true, preventDefault: false,
3008 deltaX: -0.4, deltaY: -0.8, deltaZ: 0
3009 },
3010 DOMMouseScroll: {
3011 horizontal: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP },
3012 vertical: { expected: true, preventDefault: false, detail: UIEvent.SCROLL_PAGE_UP } },
3013 MozMousePixelScroll: {
3014 horizontal: { expected: true, preventDefault: false, detail: Math.ceil(gPageWidth * -0.4) },
3015 vertical: { expected: true, preventDefault: false, detail: Math.ceil(gPageHeight * -0.8) } },
3016 finished: function () {
3017 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 100);
3018 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 100);
3019 },
3020 },
3021 ];
3023 var currentWheelEventTest;
3024 var calledHandlers = { wheel: false,
3025 DOMMouseScroll: { horizontal: false, vertical: false },
3026 MozMousePixelScroll: { horizontal: false, vertical: false } };
3028 function wheelEventHandler(aEvent)
3029 {
3030 var description = "testContinuousTrustedEvents, ";
3031 description += currentWheelEventTest.description + ": wheel event ";
3033 ok(!calledHandlers.wheel,
3034 description + "was fired twice or more");
3035 calledHandlers.wheel = true;
3037 is(aEvent.target, gScrolledElement,
3038 description + "target was invalid");
3039 is(aEvent.deltaMode, currentWheelEventTest.event.deltaMode,
3040 description + "deltaMode was invalid");
3041 is(aEvent.deltaX, currentWheelEventTest.wheel.deltaX,
3042 description + "deltaX was invalid");
3043 is(aEvent.deltaY, currentWheelEventTest.wheel.deltaY,
3044 description + "deltaY was invalid");
3045 is(aEvent.deltaZ, currentWheelEventTest.wheel.deltaZ,
3046 description + "deltaZ was invalid");
3047 is(aEvent.shiftKey, currentWheelEventTest.event.shiftKey,
3048 description + "shiftKey was invalid");
3049 is(aEvent.ctrlKey, currentWheelEventTest.event.ctrlKey,
3050 description + "ctrlKey was invalid");
3051 is(aEvent.altKey, currentWheelEventTest.event.altKey,
3052 description + "shiftKey was invalid");
3053 is(aEvent.metaKey, currentWheelEventTest.event.metaKey,
3054 description + "metaKey was invalid");
3056 ok(!aEvent.defaultPrevented,
3057 description + "defaultPrevented should be false");
3058 if (currentWheelEventTest.wheel.preventDefault) {
3059 aEvent.preventDefault();
3060 ok(aEvent.defaultPrevented,
3061 description + "defaultPrevented should be true");
3062 }
3063 }
3065 function legacyEventHandler(aEvent)
3066 {
3067 var description = "testContinuousTrustedEvents, ";
3068 description += currentWheelEventTest.description + ": " + aEvent.type + " event ";
3070 if (aEvent.axis != MouseScrollEvent.HORIZONTAL_AXIS &&
3071 aEvent.axis != MouseScrollEvent.VERTICAL_AXIS) {
3072 ok(false,
3073 description + "had invalid axis (" + aEvent.axis + ")");
3074 return;
3075 }
3077 var isHorizontal = (aEvent.axis == MouseScrollEvent.HORIZONTAL_AXIS);
3079 description += isHorizontal ? "(horizontal) " : "(vertical) ";
3081 var isScrollEvent = (aEvent.type == "DOMMouseScroll");
3082 var expectedEvent =
3083 isScrollEvent ? currentWheelEventTest.DOMMouseScroll :
3084 currentWheelEventTest.MozMousePixelScroll;
3085 var expected =
3086 isHorizontal ? expectedEvent.horizontal : expectedEvent.vertical;
3088 if (aEvent.type == "DOMMouseScroll") {
3089 if (isHorizontal) {
3090 ok(!calledHandlers.DOMMouseScroll.horizontal,
3091 description + "was fired twice or more");
3092 calledHandlers.DOMMouseScroll.horizontal = true;
3093 } else {
3094 ok(!calledHandlers.DOMMouseScroll.vertical,
3095 description + "was fired twice or more");
3096 calledHandlers.DOMMouseScroll.vertical = true;
3097 }
3098 } else {
3099 if (isHorizontal) {
3100 ok(!calledHandlers.MozMousePixelScroll.horizontal,
3101 description + "was fired twice or more");
3102 calledHandlers.MozMousePixelScroll.horizontal = true;
3103 } else {
3104 ok(!calledHandlers.MozMousePixelScroll.vertical,
3105 description + "was fired twice or more");
3106 calledHandlers.MozMousePixelScroll.vertical = true;
3107 }
3108 }
3110 is(aEvent.target, gScrolledElement,
3111 description + "target was invalid");
3112 is(aEvent.detail, expected.detail,
3113 description + "detail was invalid");
3115 is(aEvent.shiftKey, currentWheelEventTest.event.shiftKey,
3116 description + "shiftKey was invalid");
3117 is(aEvent.ctrlKey, currentWheelEventTest.event.ctrlKey,
3118 description + "ctrlKey was invalid");
3119 is(aEvent.altKey, currentWheelEventTest.event.altKey,
3120 description + "shiftKey was invalid");
3121 is(aEvent.metaKey, currentWheelEventTest.event.metaKey,
3122 description + "metaKey was invalid");
3124 var expectedDefaultPrevented =
3125 isScrollEvent ? false :
3126 isHorizontal ? currentWheelEventTest.DOMMouseScroll.horizontal.preventDefault :
3127 currentWheelEventTest.DOMMouseScroll.vertical.preventDefault;
3128 is(aEvent.defaultPrevented, expectedDefaultPrevented,
3129 description + "defaultPrevented should be " + expectedDefaultPrevented);
3131 if (expected.preventDefault) {
3132 aEvent.preventDefault();
3133 ok(aEvent.defaultPrevented,
3134 description + "defaultPrevented should be true");
3135 }
3136 }
3138 window.addEventListener("wheel", wheelEventHandler, true);
3139 window.addEventListener("DOMMouseScroll", legacyEventHandler, true);
3140 window.addEventListener("MozMousePixelScroll", legacyEventHandler, true);
3142 for (var i = 0; i < kSynthesizedWheelEventTests.length; i++) {
3143 gScrollableElement.scrollTop = gScrollableElement.scrollBottom = 1000;
3145 currentWheelEventTest = kSynthesizedWheelEventTests[i];
3147 if (currentWheelEventTest.prepare) {
3148 currentWheelEventTest.prepare();
3149 }
3151 synthesizeWheel(gScrollableElement, 10, 10, currentWheelEventTest.event);
3153 if (currentWheelEventTest.finished) {
3154 currentWheelEventTest.finished();
3155 }
3157 var description = "testContinuousTrustedEvents, " +
3158 currentWheelEventTest.description + ": ";
3159 is(calledHandlers.wheel, currentWheelEventTest.wheel.expected,
3160 description + "wheel event was fired or not fired");
3161 is(calledHandlers.DOMMouseScroll.horizontal,
3162 currentWheelEventTest.DOMMouseScroll.horizontal.expected,
3163 description + "horizontal DOMMouseScroll event was fired or not fired");
3164 is(calledHandlers.DOMMouseScroll.vertical,
3165 currentWheelEventTest.DOMMouseScroll.vertical.expected,
3166 description + "vertical DOMMouseScroll event was fired or not fired");
3167 is(calledHandlers.MozMousePixelScroll.horizontal,
3168 currentWheelEventTest.MozMousePixelScroll.horizontal.expected,
3169 description + "horizontal MozMousePixelScroll event was fired or not fired");
3170 is(calledHandlers.MozMousePixelScroll.vertical,
3171 currentWheelEventTest.MozMousePixelScroll.vertical.expected,
3172 description + "vertical MozMousePixelScroll event was fired or not fired");
3174 calledHandlers = { wheel: false,
3175 DOMMouseScroll: { horizontal: false, vertical: false },
3176 MozMousePixelScroll: { horizontal: false, vertical: false } };
3177 }
3179 window.removeEventListener("wheel", wheelEventHandler, true);
3180 window.removeEventListener("DOMMouseScroll", legacyEventHandler, true);
3181 window.removeEventListener("MozMousePixelScroll", legacyEventHandler, true);
3182 }
3184 function runTests()
3185 {
3186 SpecialPowers.setIntPref("mousewheel.transaction.timeout", 100000);
3188 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_x", 100);
3189 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_y", 100);
3190 SpecialPowers.setIntPref("mousewheel.default.delta_multiplier_z", 100);
3191 SpecialPowers.setIntPref("mousewheel.with_alt.delta_multiplier_x", 100);
3192 SpecialPowers.setIntPref("mousewheel.with_alt.delta_multiplier_y", 100);
3193 SpecialPowers.setIntPref("mousewheel.with_alt.delta_multiplier_z", 100);
3194 SpecialPowers.setIntPref("mousewheel.with_control.delta_multiplier_x", 100);
3195 SpecialPowers.setIntPref("mousewheel.with_control.delta_multiplier_y", 100);
3196 SpecialPowers.setIntPref("mousewheel.with_control.delta_multiplier_z", 100);
3197 SpecialPowers.setIntPref("mousewheel.with_meta.delta_multiplier_x", 100);
3198 SpecialPowers.setIntPref("mousewheel.with_meta.delta_multiplier_y", 100);
3199 SpecialPowers.setIntPref("mousewheel.with_meta.delta_multiplier_z", 100);
3200 SpecialPowers.setIntPref("mousewheel.with_shift.delta_multiplier_x", 100);
3201 SpecialPowers.setIntPref("mousewheel.with_shift.delta_multiplier_y", 100);
3202 SpecialPowers.setIntPref("mousewheel.with_shift.delta_multiplier_z", 100);
3203 SpecialPowers.setIntPref("mousewheel.with_win.delta_multiplier_x", 100);
3204 SpecialPowers.setIntPref("mousewheel.with_win.delta_multiplier_y", 100);
3205 SpecialPowers.setIntPref("mousewheel.with_win.delta_multiplier_z", 100);
3207 prepareScrollUnits();
3208 testContinuousTrustedEvents();
3210 clearPrefs();
3211 SimpleTest.finish();
3212 }
3214 function clearPrefs()
3215 {
3216 SpecialPowers.clearUserPref("mousewheel.transaction.timeout");
3218 SpecialPowers.clearUserPref("mousewheel.default.delta_multiplier_x");
3219 SpecialPowers.clearUserPref("mousewheel.default.delta_multiplier_y");
3220 SpecialPowers.clearUserPref("mousewheel.default.delta_multiplier_z");
3221 SpecialPowers.clearUserPref("mousewheel.with_alt.delta_multiplier_x");
3222 SpecialPowers.clearUserPref("mousewheel.with_alt.delta_multiplier_y");
3223 SpecialPowers.clearUserPref("mousewheel.with_alt.delta_multiplier_z");
3224 SpecialPowers.clearUserPref("mousewheel.with_control.delta_multiplier_x");
3225 SpecialPowers.clearUserPref("mousewheel.with_control.delta_multiplier_y");
3226 SpecialPowers.clearUserPref("mousewheel.with_control.delta_multiplier_z");
3227 SpecialPowers.clearUserPref("mousewheel.with_meta.delta_multiplier_x");
3228 SpecialPowers.clearUserPref("mousewheel.with_meta.delta_multiplier_y");
3229 SpecialPowers.clearUserPref("mousewheel.with_meta.delta_multiplier_z");
3230 SpecialPowers.clearUserPref("mousewheel.with_shift.delta_multiplier_x");
3231 SpecialPowers.clearUserPref("mousewheel.with_shift.delta_multiplier_y");
3232 SpecialPowers.clearUserPref("mousewheel.with_shift.delta_multiplier_z");
3233 SpecialPowers.clearUserPref("mousewheel.with_win.delta_multiplier_x");
3234 SpecialPowers.clearUserPref("mousewheel.with_win.delta_multiplier_y");
3235 SpecialPowers.clearUserPref("mousewheel.with_win.delta_multiplier_z");
3236 }
3238 </script>
3239 </pre>
3240 </body>
3241 </html>