blob: 29d5efbd8e56e1f3e3e6bf831e86c42deb17f9b6 [file] [log] [blame]
<!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>