OLD | NEW |
---|---|
(Empty) | |
1 <!DOCTYPE html> | |
2 <body> | |
Rick Byers
2014/11/18 20:29:19
nit: remove <body> tag - see http://www.chromium.o
zino
2014/11/24 13:07:08
Done.
| |
3 <script src="../../resources/js-test.js"></script> | |
4 <script> | |
5 | |
6 const L = 'leftButton'; | |
7 const R = 'rightButton'; | |
8 const M = 'middleButton'; | |
9 const TABLE = { | |
10 'leftButton': 1, | |
11 'rightButton': 2, | |
12 'middleButton': 4 | |
13 }; | |
14 | |
15 function mouseEvent() | |
16 { | |
17 if (window.eventSender) | |
18 window.buttons = event.buttons; | |
Rick Byers
2014/11/18 20:29:18
relying on the global 'event' object is discourage
zino
2014/11/24 13:07:07
Done.
| |
19 } | |
20 | |
21 function mouseTest(eventName, modifiers, mouseAction) | |
22 { | |
23 testEvent(eventName, modifiers, mouseAction, "MouseEvent"); | |
24 } | |
25 | |
26 function gestureTest(eventName, modifiers, mouseAction) | |
27 { | |
28 testEvent(eventName, modifiers, mouseAction, "GestureEvent"); | |
29 } | |
30 | |
31 function wheelTest(eventName, modifiers, mouseAction) | |
32 { | |
33 testEvent(eventName, modifiers, mouseAction, "WheelEvent"); | |
34 } | |
35 | |
Rick Byers
2014/11/18 20:29:19
add 'var buttons' to make it clear you're creating
zino
2014/11/24 13:07:08
Done.
| |
36 function testEvent(eventName, modifiers, mouseAction, description) | |
37 { | |
38 if (!window.eventSender) | |
39 return; | |
40 | |
41 var div = document.createElement('div'); | |
42 div.style.width = '100px'; | |
43 div.style.height = '100px'; | |
44 document.body.insertBefore(div, document.body.firstChild); | |
Rick Byers
2014/11/18 20:29:18
Is there a reason you want to create a new div for
zino
2014/11/24 13:07:07
Done.
I'm not sure but shouldXXXX series in test.
Rick Byers
2014/11/25 17:44:27
Perhaps what you were seeing was that the console
zino
2014/11/28 12:29:28
Done.
| |
45 | |
Rick Byers
2014/11/18 20:29:19
You should probably verify that your event handler
zino
2014/11/24 13:07:08
Done.
| |
46 div.addEventListener(eventName, mouseEvent, false); | |
47 mouseAction(modifiers); | |
48 div.removeEventListener(eventName, mouseEvent, false); | |
49 | |
50 var expectedValue = 0; | |
51 for (var i = 0; i < modifiers.length; i++) | |
52 expectedValue |= TABLE[modifiers[i]] | |
53 | |
54 debug(description + '::' + eventName + ' test [' + modifiers + ']'); | |
55 shouldBe('buttons', expectedValue.toString()); | |
Rick Byers
2014/11/18 20:29:19
why toString? Maybe use shouldBeEqualToNumber ins
zino
2014/11/24 13:07:08
Done.
Oh, I didn't know that.
| |
56 debug(''); | |
57 | |
58 window.buttons = 0; | |
59 eventSender.mouseMoveTo(-1, -1); | |
60 eventSender.mouseUp(); | |
61 } | |
62 | |
63 mouseTest('click', [L, R], function(modifiers) { | |
64 eventSender.mouseMoveTo(50, 50, modifiers); | |
65 eventSender.mouseDown(0, modifiers); | |
66 eventSender.mouseUp(0, modifiers); | |
67 }); | |
68 | |
69 mouseTest('dblclick', [L, M], function(modifiers) { | |
70 eventSender.mouseMoveTo(50, 50); | |
71 eventSender.mouseDown(0, modifiers); | |
72 eventSender.mouseUp(0, modifiers); | |
73 eventSender.mouseDown(0, modifiers); | |
74 eventSender.mouseUp(0, modifiers); | |
75 }); | |
76 | |
77 mouseTest('mousedown', [L, M, R], function(modifiers) { | |
78 eventSender.mouseMoveTo(50, 50, modifiers); | |
79 eventSender.mouseDown(0, modifiers); | |
80 eventSender.mouseUp(0, modifiers); | |
81 }); | |
82 | |
83 mouseTest('mouseup', [R], function(modifiers) { | |
84 eventSender.mouseMoveTo(50, 50, modifiers); | |
85 eventSender.mouseDown(0, modifiers); | |
86 eventSender.mouseUp(0, modifiers); | |
87 }); | |
88 | |
89 mouseTest('mousemove', [L], function(modifiers) { | |
Rick Byers
2014/11/18 20:29:19
you should have one test where there are no modifi
zino
2014/11/24 13:07:08
Done.
| |
90 eventSender.mouseMoveTo(-1, -1, modifiers); | |
91 eventSender.mouseMoveTo(50, 50, modifiers); | |
92 }); | |
93 | |
94 mouseTest('mouseenter', [R, M], function(modifiers) { | |
95 eventSender.mouseMoveTo(-1, -1, modifiers); | |
96 eventSender.mouseMoveTo(50, 50, modifiers); | |
97 }); | |
98 | |
99 mouseTest('mouseleave', [L, R], function(modifiers) { | |
100 eventSender.mouseMoveTo(50, 50, modifiers); | |
101 eventSender.mouseMoveTo(-1, -1, modifiers); | |
102 }); | |
103 | |
104 mouseTest('mouseover', [L, M], function(modifiers) { | |
105 eventSender.mouseMoveTo(-1, -1, modifiers); | |
106 eventSender.mouseMoveTo(50, 50, modifiers); | |
107 }); | |
108 | |
109 mouseTest('mouseout', [L], function(modifiers) { | |
110 eventSender.mouseMoveTo(50, 50, modifiers); | |
111 eventSender.mouseMoveTo(-1, -1, modifiers); | |
112 }); | |
113 | |
114 wheelTest('mousewheel', [L, R], function(modifiers) { | |
115 eventSender.mouseMoveTo(50, 50, modifiers); | |
116 eventSender.mouseScrollBy(0, 120, false, true, modifiers); | |
117 }); | |
118 | |
119 gestureTest('mousedown', [L], function() { | |
120 eventSender.gestureTap(50, 50); | |
121 }); | |
122 | |
123 gestureTest('mouseup', [L], function() { | |
124 eventSender.gestureTap(50, 50); | |
125 }); | |
126 | |
127 gestureTest('click', [L], function() { | |
128 eventSender.gestureTap(50, 50); | |
129 }); | |
130 | |
131 gestureTest('dblclick', [L], function() { | |
132 eventSender.gestureTap(50, 50, 2); | |
133 }); | |
134 | |
135 gestureTest('mousemove', [L], function() { | |
136 eventSender.gestureTap(50, 50); | |
137 }); | |
138 | |
139 </script> | |
140 </body> | |
OLD | NEW |