Chromium Code Reviews| 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 |