| OLD | NEW |
| (Empty) | |
| 1 <!DOCTYPE html> |
| 2 <title>MouseWheel: Scroll shouldn't fire extra events for certain phase</title> |
| 3 <script src="../../resources/testharness.js"></script> |
| 4 <script src="../../resources/testharnessreport.js"></script> |
| 5 <script> |
| 6 // See WebMouseWheelEvent::Phase. |
| 7 const PhaseNone = 0; |
| 8 const PhaseBegan = 1 << 0; |
| 9 const PhaseStationary = 1 << 1; |
| 10 const PhaseChanged = 1 << 2; |
| 11 const PhaseEnded = 1 << 3; |
| 12 const PhaseCancelled = 1 << 4; |
| 13 const PhaseMayBegin = 1 << 5; |
| 14 |
| 15 function mouseScrollByPixel(x, y, phase) { |
| 16 if (!window.eventSender) |
| 17 return; |
| 18 const isMac = navigator.platform.indexOf('Mac') != -1; |
| 19 if (!isMac) { |
| 20 // Other platforms don't have Phase info yet. |
| 21 if (phase == PhaseEnded || phase == PhaseCancelled || phase == PhaseMayB
egin) |
| 22 return; |
| 23 phase = PhaseNone; |
| 24 } |
| 25 eventSender.continuousMouseScrollBy(x, y, false, true, 0, false, phase); |
| 26 } |
| 27 |
| 28 test(function() { |
| 29 if (!window.eventSender) { |
| 30 document.write('This test requires eventSender'); |
| 31 return; |
| 32 } |
| 33 |
| 34 var event_log = ''; |
| 35 document.addEventListener('wheel', function(event) { |
| 36 event_log += `(${event.deltaX},${event.deltaY},${event.deltaZ})`; |
| 37 }); |
| 38 |
| 39 eventSender.mouseMoveTo(50, 50); |
| 40 mouseScrollByPixel(0, 0, PhaseMayBegin); |
| 41 mouseScrollByPixel(0, -1, PhaseBegan); |
| 42 mouseScrollByPixel(0, -2, PhaseChanged); |
| 43 mouseScrollByPixel(0, -3, PhaseChanged); |
| 44 mouseScrollByPixel(0, -4, PhaseStationary); |
| 45 mouseScrollByPixel(0, -5, PhaseChanged); |
| 46 mouseScrollByPixel(0, 0, PhaseEnded); |
| 47 |
| 48 assert_equals(event_log, '(0,1,0)(0,2,0)(0,3,0)(0,4,0)(0,5,0)'); |
| 49 }, 'Simulate track-pad two finger scroll'); |
| 50 |
| 51 test(function() { |
| 52 if (!window.eventSender) { |
| 53 document.write('This test requires eventSender'); |
| 54 return; |
| 55 } |
| 56 |
| 57 var event_log = ''; |
| 58 document.addEventListener('wheel', function(event) { |
| 59 event_log += `(${event.deltaX},${event.deltaY},${event.deltaZ})`; |
| 60 }); |
| 61 |
| 62 eventSender.mouseMoveTo(50, 50); |
| 63 mouseScrollByPixel(0, 0, PhaseMayBegin); |
| 64 mouseScrollByPixel(0, 0, PhaseCancelled); |
| 65 |
| 66 assert_equals(event_log, ''); |
| 67 }, 'Simulate track-pad two finger touch and release'); |
| 68 </script> |
| 69 |
| OLD | NEW |