forked from mirrors/gecko-dev
Bug 1883556 [wpt PR 44927] - CloseWatcher: fix Esc key tests, a=testonly
Automatic update from web-platform-tests CloseWatcher: fix Esc key tests They were interfering with each other by being in the same file. This meant that most of the tests weren't really testing anything: which is good, because the keyup and keypress tests had the opposite of the correct expectations. This splits up all the tests, and fixes keyup.html and keypress.html to expect that such listeners are NOT able to prevent the close request. Bug: 40054591 Change-Id: Id294cb9f1c6e91bec284e5a09042026e54538664 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5339289 Reviewed-by: Joey Arhar <jarhar@chromium.org> Commit-Queue: Domenic Denicola <domenic@chromium.org> Cr-Commit-Position: refs/heads/main@{#1269315} -- wpt-commits: b334432d7b67798b90fdef51f5d1430bfbc5f3fd wpt-pr: 44927
This commit is contained in:
parent
cc6766a79d
commit
9a5ca5e15c
7 changed files with 114 additions and 77 deletions
|
|
@ -1,77 +0,0 @@
|
|||
<!doctype html>
|
||||
<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>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="resources/helpers.js"></script>
|
||||
|
||||
<!--
|
||||
Tests in this file are around the interaction of the Esc key specifically, not
|
||||
the general concept of close requests. Ideally, all other tests would work
|
||||
as-is if you changed the implementation of sendCloseRequest(). These tests
|
||||
assume that Esc is the close request for the platform being tested.
|
||||
-->
|
||||
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, ["close"]);
|
||||
}, "Esc key does not count as user activation, so if it is the sole user interaction, that fires close but not cancel");
|
||||
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
window.onkeydown = e => e.preventDefault();
|
||||
|
||||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "A keydown listener can prevent the Esc keypress from being interpreted as a close request");
|
||||
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
window.onkeyup = e => e.preventDefault();
|
||||
|
||||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "A keyup listener can prevent the Esc keypress from being interpreted as a close request");
|
||||
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
window.onkeypress = e => e.preventDefault();
|
||||
|
||||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "A keypress listener can prevent the Esc keypress from being interpreted as a close request");
|
||||
|
||||
test(t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
let keydown = new KeyboardEvent('keydown', {'key': 'Escape', 'keyCode': 27});
|
||||
window.dispatchEvent(keydown);
|
||||
let keyup = new KeyboardEvent('keyup', {'key': 'Escape', 'keyCode': 27});
|
||||
window.dispatchEvent(keyup);
|
||||
|
||||
assert_array_equals(events, []);
|
||||
|
||||
let keyup2 = document.createEvent("Event");
|
||||
keyup2.initEvent("keyup", true);
|
||||
window.dispatchEvent(keyup2);
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "close via synthesized Esc key must not work");
|
||||
</script>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
Tests in this directory are around the interaction of the Esc key specifically,
|
||||
not the general concept of close requests. Ideally, all other tests would work
|
||||
as-is if you changed the implementation of `sendCloseRequest()`. These tests
|
||||
assume that Esc is the close request for the platform being tested.
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<!doctype html>
|
||||
<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>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="../resources/helpers.js"></script>
|
||||
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
window.onkeydown = e => e.preventDefault();
|
||||
|
||||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "A keydown listener can prevent the Esc keypress from being interpreted as a close request");
|
||||
</script>
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
<!doctype html>
|
||||
<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>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="../resources/helpers.js"></script>
|
||||
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
window.onkeypress = e => e.preventDefault();
|
||||
|
||||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, ["close"]);
|
||||
}, "A keypress listener can NOT prevent the Esc keypress from being interpreted as a close request");
|
||||
</script>
|
||||
21
testing/web-platform/tests/close-watcher/esc-key/keyup.html
Normal file
21
testing/web-platform/tests/close-watcher/esc-key/keyup.html
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<!doctype html>
|
||||
<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>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="../resources/helpers.js"></script>
|
||||
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
window.onkeyup = e => e.preventDefault();
|
||||
|
||||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, ["close"]);
|
||||
}, "A keyup listener can NOT prevent the Esc keypress from being interpreted as a close request");
|
||||
</script>
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<!doctype html>
|
||||
<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>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="../resources/helpers.js"></script>
|
||||
|
||||
<body>
|
||||
<script>
|
||||
promise_test(async t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
await sendEscKey();
|
||||
|
||||
assert_array_equals(events, ["close"]);
|
||||
}, "Esc key does not count as user activation, so if it is the sole user interaction, that fires close but not cancel");
|
||||
</script>
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<!doctype html>
|
||||
<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>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="../resources/helpers.js"></script>
|
||||
|
||||
<body>
|
||||
<script>
|
||||
test(t => {
|
||||
let events = [];
|
||||
let watcher = createRecordingCloseWatcher(t, events);
|
||||
|
||||
let keydown = new KeyboardEvent("keydown", {key: "Escape", keyCode: 27});
|
||||
window.dispatchEvent(keydown);
|
||||
let keyup = new KeyboardEvent("keyup", {key: "Escape", keyCode: 27});
|
||||
window.dispatchEvent(keyup);
|
||||
|
||||
assert_array_equals(events, []);
|
||||
|
||||
let keyup2 = document.createEvent("Event");
|
||||
keyup2.initEvent("keyup", true);
|
||||
window.dispatchEvent(keyup2);
|
||||
|
||||
assert_array_equals(events, []);
|
||||
}, "close via synthesized Esc key must not work");
|
||||
</script>
|
||||
Loading…
Reference in a new issue