diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/interactive-elements/the-summary-element/summary-untrusted-key-event.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/interactive-elements/the-summary-element/summary-untrusted-key-event.html | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/interactive-elements/the-summary-element/summary-untrusted-key-event.html b/testing/web-platform/tests/html/semantics/interactive-elements/the-summary-element/summary-untrusted-key-event.html new file mode 100644 index 0000000000..21b66d52e7 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/interactive-elements/the-summary-element/summary-untrusted-key-event.html @@ -0,0 +1,104 @@ +<!DOCTYPE HTML> +<html> +<head> +<title>Summary</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +</head> +<body> +<div id="log"></div> +<details> + <summary>Summary</summary> + Details +</details> +<script type="module"> +const details = document.querySelector("details"); +details.addEventListener("toggle", + (e) => assert_true(false, 'details should not be toggled')); + +const summary = document.querySelector("summary"); +summary.addEventListener("click", + (e) => assert_true(false, `summary should not be clicked`)); + +test(() => { + // keyCode: Enter + summary.dispatchEvent( + new KeyboardEvent("keypress", { + keyCode: 13, + }) + ); + + // key: Enter + summary.dispatchEvent( + new KeyboardEvent("keypress", { + key: "Enter", + }) + ); + + // keyCode: Space + summary.dispatchEvent( + new KeyboardEvent("keypress", { + keyCode: 32, + }) + ); + + // key: Space + summary.dispatchEvent( + new KeyboardEvent("keypress", { + key: " ", + }) + ); +}, `Dispatching untrusted keypress events to summary should not cause click event`); + +test(() => { + // keyCode: Enter + summary.dispatchEvent( + new KeyboardEvent("keydown", { + keyCode: 13, + }) + ); + summary.dispatchEvent( + new KeyboardEvent("keyup", { + keyCode: 13, + }) + ); + + // key: Enter + summary.dispatchEvent( + new KeyboardEvent("keydown", { + key: "Enter", + }) + ); + summary.dispatchEvent( + new KeyboardEvent("keyup", { + key: "Enter", + }) + ); + + // keyCode: Space + summary.dispatchEvent( + new KeyboardEvent("keydown", { + keyCode: 32, + }) + ); + summary.dispatchEvent( + new KeyboardEvent("keyup", { + keyCode: 32, + }) + ); + + // key: Space + summary.dispatchEvent( + new KeyboardEvent("keydown", { + key: " ", + }) + ); + summary.dispatchEvent( + new KeyboardEvent("keyup", { + key: " ", + }) + ); +}, `Dispatching untrusted keyup/keydown events to summary should not cause click event`); +</script> +</body> +</html> |