summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/editing/other/selectall-without-focus.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/editing/other/selectall-without-focus.html')
-rw-r--r--testing/web-platform/tests/editing/other/selectall-without-focus.html73
1 files changed, 73 insertions, 0 deletions
diff --git a/testing/web-platform/tests/editing/other/selectall-without-focus.html b/testing/web-platform/tests/editing/other/selectall-without-focus.html
new file mode 100644
index 0000000000..508fdc47a2
--- /dev/null
+++ b/testing/web-platform/tests/editing/other/selectall-without-focus.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML>
+<head>
+<meta charset=utf-8>
+<title>Select All without focus should select not select only in the editing host</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+"use strict";
+
+addEventListener("DOMContentLoaded", () => {
+ test(() => {
+ document.head.remove();
+ document.execCommand("selectAll");
+ assert_false(
+ getSelection().isCollapsed,
+ 'Selection should not be collapsed after calling document.execCommand("selectAll")'
+ );
+ const rangeText = getSelection().toString();
+ assert_true(
+ rangeText.includes("preceding text"),
+ "Selection should contain the preceding text of the editing host"
+ );
+ assert_true(
+ rangeText.includes("editable text"),
+ "Selection should contain the editable text in the editing host"
+ );
+ getSelection().removeAllRanges();
+ }, "execCommand('selectAll') should select all content in the document even if the document body ends with editable content");
+
+ test(() => {
+ document.querySelector("p").innerHTML = "preceding text <input value='input value'>";
+ getSelection().collapse(document.querySelector("input"), 0);
+ document.execCommand("selectAll");
+ assert_false(
+ getSelection().isCollapsed,
+ 'Selection should not be collapsed after calling document.execCommand("selectAll")'
+ );
+ const rangeText = getSelection().toString();
+ assert_true(
+ rangeText.includes("preceding text"),
+ "Selection should contain the preceding text of the editing host"
+ );
+ assert_true(
+ rangeText.includes("editable text"),
+ "Selection should contain the editable text in the editing host"
+ );
+ getSelection().removeAllRanges();
+ }, "execCommand('selectAll') should select all content in the document when selection is in <input>");
+
+ test(() => {
+ document.querySelector("p").innerHTML = "preceding text <textarea>textarea value</textarea>";
+ getSelection().collapse(document.querySelector("textarea"), 0);
+ document.execCommand("selectAll");
+ assert_false(
+ getSelection().isCollapsed,
+ 'Selection should not be collapsed after calling document.execCommand("selectAll")'
+ );
+ const rangeText = getSelection().toString();
+ assert_true(
+ rangeText.includes("preceding text"),
+ "Selection should contain the preceding text of the editing host"
+ );
+ assert_true(
+ rangeText.includes("editable text"),
+ "Selection should contain the editable text in the editing host"
+ );
+ getSelection().removeAllRanges();
+ }, "execCommand('selectAll') should select all content in the document when selection is in <textarea>");
+});
+</script>
+</head>
+<p>preceding text</p>
+<div contenteditable>editable text