diff options
Diffstat (limited to 'testing/web-platform/tests/editing/other/recursive-exec-command-calls.tentative.html')
-rw-r--r-- | testing/web-platform/tests/editing/other/recursive-exec-command-calls.tentative.html | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/testing/web-platform/tests/editing/other/recursive-exec-command-calls.tentative.html b/testing/web-platform/tests/editing/other/recursive-exec-command-calls.tentative.html new file mode 100644 index 0000000000..60a3b03099 --- /dev/null +++ b/testing/web-platform/tests/editing/other/recursive-exec-command-calls.tentative.html @@ -0,0 +1,37 @@ +<!doctype html> +<meta charset=utf-8> +<title>Test recursive `Document.execCommand()` calls</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div contenteditable><br></div> +<script> +"use strict"; + +setup({explicit_done: true}); + +/** + * This test checks whether the browser allows or disallows recursive + * Document.execCommand() calls. + * https://github.com/w3c/editing/issues/200#issuecomment-578097441 + */ +function runTests() { + test(function () { + let editor = document.querySelector("div[contenteditable]"); + editor.focus(); + let counter = 0; + editor.addEventListener("input", event => { + if (++counter < 10) { + let result = document.execCommand("insertText", false, `, ${counter}`); + assert_false(result, + '`execCommand("insertText") in the "input" event listener should return `false`'); + } + }); + document.execCommand("insertText", false, "0"); + assert_equals(editor.textContent, "0", + '`execCommand("insertText") in the "input" event listener should do nothing'); + }, "Recursive `Document.execCommand()` shouldn't be supported"); + done(); +} + +window.addEventListener("load", runTests, {once: true}); +</script> |