61 lines
2.1 KiB
HTML
61 lines
2.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
|
|
<div id="target" style="margin: 1rem; width: 100px; height: 100px; border: solid 5px red;"></div>
|
|
<script src="../../resources/js-test.js"></script>
|
|
<script>
|
|
|
|
description(`This tests mouse events sets the correct modifier key states.<br>
|
|
To manually test, turn on CapsLock and press Alt key and move the mosue cursor to the red box below, and then double click it.`);
|
|
|
|
jsTestIsAsync = true;
|
|
|
|
const events = [];
|
|
function addEvent(event) { events.push(event) };
|
|
let firstMousemoveEvent = null;
|
|
|
|
const target = document.getElementById('target');
|
|
target.addEventListener('mousedown', addEvent);
|
|
target.addEventListener('mouseup', addEvent);
|
|
target.addEventListener('click', addEvent);
|
|
target.addEventListener('dblclick', (event) => {
|
|
addEvent(event);
|
|
verify();
|
|
});
|
|
|
|
var currentEvent;
|
|
function verify() {
|
|
const eventTypes = ['mousedown', 'mouseup', 'click', 'mousedown', 'mouseup', 'click', 'dblclick'];
|
|
for (let i = 0; i < events.length; i++) {
|
|
currentEvent = events[i];
|
|
shouldBeEqualToString('currentEvent.type', eventTypes[i]);
|
|
shouldBeFalse('currentEvent.getModifierState("Control")');
|
|
shouldBeTrue('currentEvent.getModifierState("Alt")');
|
|
shouldBeFalse('currentEvent.getModifierState("Shift")');
|
|
shouldBeFalse('currentEvent.getModifierState("Meta")');
|
|
shouldBeFalse('currentEvent.getModifierState("AltGraph")');
|
|
shouldBeTrue('currentEvent.getModifierState("CapsLock")');
|
|
}
|
|
finishJSTest();
|
|
}
|
|
|
|
if (window.eventSender) {
|
|
eventSender.leapForward(1000); // drain dblclick timer
|
|
|
|
eventSender.mouseMoveTo(1, 1);
|
|
eventSender.mouseMoveTo(target.offsetLeft + target.offsetWidth / 2, target.offsetTop + target.offsetHeight / 2);
|
|
|
|
eventSender.mouseDown(0, ['altKey', 'capsLockKey']);
|
|
eventSender.mouseUp(0, ['altKey', 'capsLockKey']);
|
|
eventSender.mouseDown(0, ['altKey', 'capsLockKey']);
|
|
eventSender.mouseUp(0, ['altKey', 'capsLockKey']);
|
|
} else if (window.testRunner) {
|
|
testFailed('This test requires eventSender');
|
|
finishJSTest();
|
|
}
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|