OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <link rel="help" href="http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEven
t"> | 4 <link rel="help" href="http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEven
t"> |
5 <script src="../../resources/js-test.js"></script> | 5 <script src="../../resources/js-test.js"></script> |
6 <script> | 6 <script> |
7 var deltaY = 0; | 7 var deltaY = 0; |
8 var scrollAmount = -2; | 8 var scrollAmount = -2; |
9 var expectedDeltaY = scrollAmount * -40; | 9 var expectedDeltaY = scrollAmount * -40; |
10 | 10 |
11 var testDiv; | 11 var testDiv; |
12 function runTest() { | 12 function runTest() { |
13 | 13 |
14 testDiv = document.getElementById('target'); | 14 testDiv = document.getElementById('target'); |
15 testDiv.addEventListener('wheel', wheelHandler); | 15 document.addEventListener('wheel', wheelHandler); |
16 if (!window.eventSender) { | 16 if (!window.eventSender) { |
17 debug("FAIL: This test requires window.eventSender."); | 17 debug("FAIL: This test requires window.eventSender."); |
18 return; | 18 return; |
19 } | 19 } |
20 | 20 |
21 // Verify that wheel with ctrl modifier is fired property but doesn't scroll
. | 21 debug('Test mousewheel events over scrollable div'); |
| 22 |
| 23 debug('With ctrl modifier set'); |
| 24 wheelEventCount = 0; |
22 eventSender.mouseMoveTo(testDiv.offsetLeft + 5, testDiv.offsetTop + 5); | 25 eventSender.mouseMoveTo(testDiv.offsetLeft + 5, testDiv.offsetTop + 5); |
23 eventSender.mouseScrollBy(0, scrollAmount, false, true, "ctrlKey"); | 26 eventSender.mouseScrollBy(0, scrollAmount, false, true, "ctrlKey"); |
24 shouldBe("wheelEventCount", "1"); | 27 shouldBe("wheelEventCount", "1"); |
25 shouldEvaluateTo("deltaY", expectedDeltaY); | 28 shouldEvaluateTo("deltaY", expectedDeltaY); |
26 shouldBeTrue("ctrlKey"); | 29 shouldBeTrue("ctrlKey"); |
27 shouldBe("testDiv.scrollTop", "0"); | 30 shouldBe("testDiv.scrollTop", "0"); |
28 | 31 |
29 // Verify that without the ctrl modifier we scroll as normal. | 32 debug('Without ctrl'); |
| 33 wheelEventCount = 0; |
30 eventSender.mouseMoveTo(testDiv.offsetLeft + 5, testDiv.offsetTop + 5); | 34 eventSender.mouseMoveTo(testDiv.offsetLeft + 5, testDiv.offsetTop + 5); |
31 eventSender.mouseScrollBy(0, scrollAmount, false, true); | 35 eventSender.mouseScrollBy(0, scrollAmount, false, true); |
32 shouldBe("wheelEventCount", "2"); | 36 shouldBe("wheelEventCount", "1"); |
33 shouldEvaluateTo("deltaY", expectedDeltaY); | 37 shouldEvaluateTo("deltaY", expectedDeltaY); |
34 shouldBeFalse("ctrlKey"); | 38 shouldBeFalse("ctrlKey"); |
35 shouldBe("testDiv.scrollTop", "deltaY"); | 39 shouldBe("testDiv.scrollTop", "deltaY"); |
| 40 |
| 41 debug(''); |
| 42 debug('Test mousewheel events over the document'); |
| 43 testDiv = document.getElementById('target2'); |
| 44 |
| 45 debug('With ctrl modifier set'); |
| 46 wheelEventCount = 0; |
| 47 eventSender.mouseMoveTo(testDiv.offsetLeft + 5, testDiv.offsetTop + 5); |
| 48 eventSender.mouseScrollBy(0, scrollAmount, false, true, "ctrlKey"); |
| 49 shouldBe("wheelEventCount", "1"); |
| 50 shouldEvaluateTo("deltaY", expectedDeltaY); |
| 51 shouldBeTrue("ctrlKey"); |
| 52 shouldBe("document.body.scrollTop", "0"); |
| 53 |
| 54 debug('Now without ctrl'); |
| 55 wheelEventCount = 0; |
| 56 eventSender.mouseMoveTo(testDiv.offsetLeft + 5, testDiv.offsetTop + 5); |
| 57 eventSender.mouseScrollBy(0, scrollAmount, false, true); |
| 58 shouldBe("wheelEventCount", "1"); |
| 59 shouldEvaluateTo("deltaY", expectedDeltaY); |
| 60 shouldBeFalse("ctrlKey"); |
| 61 shouldBe("window.scrollY", "deltaY"); |
36 } | 62 } |
37 | 63 |
38 var wheelEventCount = 0; | 64 var wheelEventCount = 0; |
39 var ctrlKey = false; | 65 var ctrlKey = false; |
40 function wheelHandler(e) { | 66 function wheelHandler(e) { |
41 wheelEventCount++; | 67 wheelEventCount++; |
42 deltaY = e.deltaY; | 68 deltaY = e.deltaY; |
43 ctrlKey = e.ctrlKey; | 69 ctrlKey = e.ctrlKey; |
44 } | 70 } |
45 | 71 |
46 </script> | 72 </script> |
47 </head> | 73 </head> |
48 <body> | 74 <body> |
49 <span id="parent"> | 75 <span id="parent"> |
50 <div id="target" style="border:solid 1px green; width:220px; height:70px; ov
erflow:scroll; white-space:nowrap;"> | 76 <div id="target" style="border:solid 1px green; width:220px; height:70px; ov
erflow:scroll; white-space:nowrap;"> |
51 TOP<br/><br/><br/><br/> | 77 TOP<br/><br/><br/><br/> |
52 Scroll mouse wheel over here<br/><br/><br/><br/> | 78 Scroll mouse wheel over here<br/><br/><br/><br/> |
53 END | 79 END |
54 </div> | 80 </div> |
| 81 <div id="target2" style="border:solid 1px blue;"> |
| 82 And scroll the document here |
| 83 </div> |
| 84 <div style="height: 2000px;"></div> |
55 </span> | 85 </span> |
56 <div id="console"></div> | 86 <div id="console"></div> |
57 <script> | 87 <script> |
58 description("Tests that wheel events with the ctrl modifier are handled properly
"); | 88 description("Tests that wheel events with the ctrl modifier are handled properly
"); |
59 | 89 |
60 runTest(); | 90 runTest(); |
61 </script> | 91 </script> |
62 </body> | 92 </body> |
63 </html> | 93 </html> |
OLD | NEW |