| 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..29d5efbd8e56e1f3e3e6bf831e86c42deb17f9b6
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/events/mouse-wheel-main-frame-event.html
|
| @@ -0,0 +1,60 @@
|
| +<!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>
|
| +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>
|
| +
|
|
|