OLD | NEW |
1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
2 <script src="../../../resources/js-test.js"></script> | 2 <script src="../../../resources/js-test.js"></script> |
3 <script src="../resources/input-modifiers.js"></script> | 3 <script src="../resources/input-modifiers.js"></script> |
4 <style> | 4 <style> |
5 div { | 5 div.box { |
6 margin: 10px; | 6 margin: 10px; |
7 padding: 50px; | 7 padding: 50px; |
8 float: left; | 8 float: left; |
9 } | 9 } |
10 #console { | |
11 padding: 0px; | |
12 float: none; | |
13 } | |
14 </style> | 10 </style> |
15 | 11 |
16 <div id="target" style="background-color:red"> | 12 <div id="target" class="box" style="background-color:red"> |
17 </div> | 13 </div> |
18 | 14 |
19 <div id="console"></div> | 15 <div id="console"></div> |
20 | 16 |
21 <script> | 17 <script> |
22 description("Verifies that pointer event parameters are correct when fired for m
ouse events."); | 18 description("Verifies that pointer event parameters are correct when fired for m
ouse events."); |
23 | 19 |
24 // TODO(mustaq): Grow the list as we add support for more PEs | 20 // TODO(mustaq): Grow the list as we add support for more PEs |
25 var testEventList = ["mouseenter", "mouseleave", "mouseover", "mouseout", | 21 var testEventList = ["mouseenter", "mouseleave", "mouseover", "mouseout", "mouse
up", "mousedown", |
26 "pointerenter", "pointerleave", "pointerover", "pointerout"]; | 22 "pointerenter", "pointerleave", "pointerover", "pointerout",
"pointerup", "pointerdown"]; |
27 var lastPointerEvent = null; | 23 var lastPointerEvent = null; |
28 | 24 |
| 25 var checkKeyModifiers = false; |
| 26 |
29 var numericAttributes = [ | 27 var numericAttributes = [ |
30 "clientX", | 28 "clientX", |
31 "clientY", | 29 "clientY", |
32 "layerX", | 30 "layerX", |
33 "layerY", | 31 "layerY", |
34 "movementX", | 32 "movementX", |
35 "movementY", | 33 "movementY", |
36 "offsetX", | 34 "offsetX", |
37 "offsetY", | 35 "offsetY", |
38 "pageX", | 36 "pageX", |
(...skipping 12 matching lines...) Expand all Loading... |
51 testEventList.forEach(function(eventName) { | 49 testEventList.forEach(function(eventName) { |
52 | 50 |
53 targetDiv.addEventListener(eventName, function(event) { | 51 targetDiv.addEventListener(eventName, function(event) { |
54 | 52 |
55 debug("Received " + event.type); | 53 debug("Received " + event.type); |
56 | 54 |
57 if (event.type.startsWith("pointer")) | 55 if (event.type.startsWith("pointer")) |
58 lastPointerEvent = event; | 56 lastPointerEvent = event; |
59 else { | 57 else { |
60 shouldBeNonNull("lastPointerEvent"); | 58 shouldBeNonNull("lastPointerEvent"); |
| 59 shouldBeEqualToString("lastPointerEvent.type", event.type.replace("mouse
", "pointer")); |
61 | 60 |
62 shouldBeEqualToString("lastPointerEvent.type", event.type.replace("mouse
", "pointer")); | 61 if (!checkKeyModifiers) { |
63 if (lastPointerEvent.type=="pointerenter" || lastPointerEvent.type=="poi
nterleave") { | 62 |
64 shouldBeFalse("lastPointerEvent.bubbles"); | 63 if (lastPointerEvent.type=="pointerenter" || lastPointerEvent.type=="p
ointerleave") { |
65 shouldBeFalse("lastPointerEvent.cancelable"); | 64 shouldBeFalse("lastPointerEvent.bubbles"); |
| 65 shouldBeFalse("lastPointerEvent.cancelable"); |
| 66 } else { |
| 67 shouldBeTrue("lastPointerEvent.bubbles"); |
| 68 shouldBeTrue("lastPointerEvent.cancelable"); |
| 69 } |
| 70 |
| 71 shouldBeEqualToNumber("lastPointerEvent.pointerId", 0); |
| 72 shouldBeEqualToString("lastPointerEvent.pointerType", "mouse"); |
| 73 shouldBeTrue("lastPointerEvent.isPrimary"); |
| 74 |
| 75 numericAttributes.forEach(function(attribute) { |
| 76 shouldBeEqualToNumber("lastPointerEvent." + attribute, eval("event."
+ attribute)); |
| 77 }); |
| 78 |
66 } else { | 79 } else { |
67 shouldBeTrue("lastPointerEvent.bubbles"); | 80 |
68 shouldBeTrue("lastPointerEvent.cancelable"); | 81 forEachModifier(function(attr, modifierName) { |
| 82 var getModifierStateStr = ".getModifierState('" + modifierName + "')
;" |
| 83 if (eval("event" + getModifierStateStr)) |
| 84 shouldBeTrue("lastPointerEvent" + getModifierStateStr); |
| 85 else |
| 86 shouldBeFalse("lastPointerEvent" + getModifierStateStr); |
| 87 }); |
| 88 |
69 } | 89 } |
70 | 90 |
71 shouldBeEqualToNumber("lastPointerEvent.pointerId", 0); | |
72 shouldBeEqualToString("lastPointerEvent.pointerType", "mouse"); | |
73 shouldBeTrue("lastPointerEvent.isPrimary"); | |
74 | |
75 numericAttributes.forEach(function(attribute) { | |
76 shouldBeEqualToNumber("lastPointerEvent." + attribute, eval("event." +
attribute)); | |
77 }); | |
78 | |
79 forEachModifier(function(attr, modifierName) { | |
80 var getModifierStateStr = ".getModifierState('" + modifierName + "');" | |
81 if (eval("event" + getModifierStateStr)) | |
82 shouldBeTrue("lastPointerEvent" + getModifierStateStr); | |
83 else | |
84 shouldBeFalse("lastPointerEvent" + getModifierStateStr); | |
85 }); | |
86 | |
87 lastPointerEvent = null; | 91 lastPointerEvent = null; |
88 } | 92 } |
89 }); | 93 }); |
90 | 94 |
91 }); | 95 }); |
92 } | 96 } |
93 | 97 |
94 function runTests() { | 98 function runTests() { |
95 var rect = document.getElementById("target").getBoundingClientRect(); | 99 var rect = document.getElementById("target").getBoundingClientRect(); |
| 100 |
| 101 debug("--- move mouse into target ---"); |
96 eventSender.mouseMoveTo(rect.left + 5, rect.top + 5); | 102 eventSender.mouseMoveTo(rect.left + 5, rect.top + 5); |
| 103 debug(""); |
| 104 |
| 105 debug("--- click each button ---"); |
| 106 for (var button = 0; button <=2; button++) { |
| 107 eventSender.mouseDown(button); |
| 108 eventSender.mouseUp(button); |
| 109 // TODO(crbug.com/548226): Investigate missing events in win_chromium_rel_ng
on 3rd down/up. |
| 110 } |
| 111 debug(""); |
| 112 |
| 113 debug("--- click with each modifier ---"); |
| 114 checkKeyModifiers = true; |
| 115 forEachModifier(function(attr, modifierName, eventSenderName) { |
| 116 eventSender.mouseDown(0, [eventSenderName]); |
| 117 eventSender.mouseUp(0, [eventSenderName]); |
| 118 }); |
| 119 checkKeyModifiers = false; |
| 120 debug(""); |
| 121 |
| 122 debug("--- move mouse out of target ---"); |
97 eventSender.mouseMoveTo(rect.left - 5, rect.top - 5); | 123 eventSender.mouseMoveTo(rect.left - 5, rect.top - 5); |
98 | |
99 //TODO(mustaq): add tests for buttons & modifierStates when doing pointerdown/
up. | |
100 } | 124 } |
101 | 125 |
102 init(); | 126 init(); |
103 if (window.eventSender) | 127 if (window.eventSender) |
104 runTests(); | 128 runTests(); |
105 else | 129 else |
106 debug("This test requires eventSender"); | 130 debug("This test requires eventSender"); |
107 | 131 |
108 </script> | 132 </script> |
OLD | NEW |