| Index: third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html b/third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6476a8332e8973acb0504248a3195eac9cf851a5
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html
|
| @@ -0,0 +1,69 @@
|
| +<!DOCTYPE html>
|
| +<title>MouseWheel: Scroll shouldn't fire extra events for certain phase</title>
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +<script>
|
| +// See WebMouseWheelEvent::Phase.
|
| +const PhaseNone = 0;
|
| +const PhaseBegan = 1 << 0;
|
| +const PhaseStationary = 1 << 1;
|
| +const PhaseChanged = 1 << 2;
|
| +const PhaseEnded = 1 << 3;
|
| +const PhaseCancelled = 1 << 4;
|
| +const PhaseMayBegin = 1 << 5;
|
| +
|
| +function mouseScrollByPixel(x, y, phase) {
|
| + if (!window.eventSender)
|
| + return;
|
| + const isMac = navigator.platform.indexOf('Mac') != -1;
|
| + if (!isMac) {
|
| + // Other platforms don't have Phase info yet.
|
| + if (phase == PhaseEnded || phase == PhaseCancelled || phase == PhaseMayBegin)
|
| + return;
|
| + phase = PhaseNone;
|
| + }
|
| + eventSender.continuousMouseScrollBy(x, y, false, true, 0, false, phase);
|
| +}
|
| +
|
| +test(function() {
|
| + if (!window.eventSender) {
|
| + document.write('This test requires eventSender');
|
| + return;
|
| + }
|
| +
|
| + var event_log = '';
|
| + document.addEventListener('wheel', function(event) {
|
| + event_log += `(${event.deltaX},${event.deltaY},${event.deltaZ})`;
|
| + });
|
| +
|
| + eventSender.mouseMoveTo(50, 50);
|
| + mouseScrollByPixel(0, 0, PhaseMayBegin);
|
| + mouseScrollByPixel(0, -1, PhaseBegan);
|
| + mouseScrollByPixel(0, -2, PhaseChanged);
|
| + mouseScrollByPixel(0, -3, PhaseChanged);
|
| + mouseScrollByPixel(0, -4, PhaseStationary);
|
| + mouseScrollByPixel(0, -5, PhaseChanged);
|
| + mouseScrollByPixel(0, 0, PhaseEnded);
|
| +
|
| + assert_equals(event_log, '(0,1,0)(0,2,0)(0,3,0)(0,4,0)(0,5,0)');
|
| +}, 'Simulate track-pad two finger scroll');
|
| +
|
| +test(function() {
|
| + if (!window.eventSender) {
|
| + document.write('This test requires eventSender');
|
| + return;
|
| + }
|
| +
|
| + var event_log = '';
|
| + document.addEventListener('wheel', function(event) {
|
| + event_log += `(${event.deltaX},${event.deltaY},${event.deltaZ})`;
|
| + });
|
| +
|
| + eventSender.mouseMoveTo(50, 50);
|
| + mouseScrollByPixel(0, 0, PhaseMayBegin);
|
| + mouseScrollByPixel(0, 0, PhaseCancelled);
|
| +
|
| + assert_equals(event_log, '');
|
| +}, 'Simulate track-pad two finger touch and release');
|
| +</script>
|
| +
|
|
|