blob: daad9e4a9da2635015878a42a9e44aea127709a0 [file] [log] [blame] [edit]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="../../resources/js-test-pre.js"></script>
<script src="../../resources/ui-helper.js"></script>
<script>
description("Tests that transient activation is generated by correct events.");
testRunner.waitUntilDone();
function waitFor(element, type) {
return new Promise(resolve => {
element.addEventListener(type, event => {
testPassed(`EVENT(${event.type})`);
resolve(event);
}, { once: true });
});
}
async function doTest() {
internals.consumeTransientActivation();
let mouseMovePromise = waitFor(document, 'mousemove');
evalAndLog("eventSender.mouseMoveTo(50, 50)");
await mouseMovePromise;
shouldBeFalse("navigator.userActivation.isActive");
internals.consumeTransientActivation();
let mouseDownPromise = waitFor(document, 'mousedown');
evalAndLog("eventSender.mouseDown()");
await mouseDownPromise;
shouldBeTrue("navigator.userActivation.isActive");
internals.consumeTransientActivation();
let mouseUpPromise = waitFor(document, 'mouseup');
evalAndLog("eventSender.mouseUp()");
await mouseUpPromise;
shouldBeFalse("navigator.userActivation.isActive");
internals.consumeTransientActivation();
var keyDownPromise = waitFor(document, 'keydown');
var promise = evalAndLog("UIHelper.rawKeyDown('escape')");
await Promise.all([promise, keyDownPromise]);
shouldBeFalse("navigator.userActivation.isActive");
internals.consumeTransientActivation();
var keyUpPromise = waitFor(document, 'keyup');
var promise = evalAndLog("UIHelper.rawKeyUp('esc')");
await Promise.all([promise, keyUpPromise]);
shouldBeFalse("navigator.userActivation.isActive");
internals.consumeTransientActivation();
keyDownPromise = waitFor(document, 'keydown');
var promise = evalAndLog("UIHelper.rawKeyDown('a')");
await Promise.all([promise, keyDownPromise]);
shouldBeTrue("navigator.userActivation.isActive");
internals.consumeTransientActivation();
keyUpPromise = waitFor(document, 'keyup');
var promise = evalAndLog("UIHelper.rawKeyUp('a')");
await Promise.all([promise, keyUpPromise]);
shouldBeFalse("navigator.userActivation.isActive");
internals.consumeTransientActivation();
}
window.addEventListener("load", event => {
doTest().catch(e => {
testFailed(e.description);
}).finally(() => {
testRunner.notifyDone();
});
});
</script>
</head>
<body>
<button id="target" style="width: 100px; height: 100px;"></button>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>