Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<meta charset="utf-8" />
<title>UI Events Test: Modifier keys</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<meta name="assert" content="This test checks that modifier keys are properly detected in 'keydown' event.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<div id="target" tabindex="0">Target</div>
<script>
const keys = {
"Shift": '\uE008',
"Control": '\uE009',
"Alt": '\uE00A',
"Meta": '\uE03D',
};
target.focus();
for (const [key, code] of Object.entries(keys)) {
promise_test(() => {
return new Promise(resolve => {
target.addEventListener("keydown", resolve);
test_driver.send_keys(target, code);
}).then((event) => {
assert_equals(event.key, key);
assert_equals(event.shiftKey, key === "Shift");
assert_equals(event.ctrlKey, key === "Control");
assert_equals(event.altKey, key === "Alt");
assert_equals(event.metaKey, key === "Meta");
});
}, `Check sending ${key} key`);
}
</script>