summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/selection/caret
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/selection/caret')
-rw-r--r--testing/web-platform/tests/selection/caret/collapse-pre-linestart-1.html12
-rw-r--r--testing/web-platform/tests/selection/caret/collapse-pre-linestart-2.html13
-rw-r--r--testing/web-platform/tests/selection/caret/collapse-pre-linestart-ref.html8
-rw-r--r--testing/web-platform/tests/selection/caret/empty-elements.html25
4 files changed, 58 insertions, 0 deletions
diff --git a/testing/web-platform/tests/selection/caret/collapse-pre-linestart-1.html b/testing/web-platform/tests/selection/caret/collapse-pre-linestart-1.html
new file mode 100644
index 0000000000..6863456f06
--- /dev/null
+++ b/testing/web-platform/tests/selection/caret/collapse-pre-linestart-1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>selection.collapse() to line start</title>
+<link rel="author" title="Kagami Sascha Rosylight" href="mailto:krosylight@mozilla.com">
+<link rel="help" href="https://w3c.github.io/selection-api/#dom-selection-collapse">
+<link rel="match" href="collapse-pre-linestart-ref.html">
+<meta name="assert" content="The caret must appear at the start of the second line.">
+<pre id=target contenteditable>ABC
+<br></pre>
+<script>
+ getSelection().collapse(target.childNodes[0], 4);
+</script>
diff --git a/testing/web-platform/tests/selection/caret/collapse-pre-linestart-2.html b/testing/web-platform/tests/selection/caret/collapse-pre-linestart-2.html
new file mode 100644
index 0000000000..ac119cbb31
--- /dev/null
+++ b/testing/web-platform/tests/selection/caret/collapse-pre-linestart-2.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>selection.collapse() to line start</title>
+<link rel="author" title="Kagami Sascha Rosylight" href="mailto:krosylight@mozilla.com">
+<link rel="help" href="https://w3c.github.io/selection-api/#dom-selection-collapse">
+<link rel="match" href="collapse-pre-linestart-ref.html">
+<meta name="assert" content="The caret must appear at the start of the second line.">
+<pre id=target contenteditable>ABC
+
+</pre>
+<script>
+ getSelection().collapse(target.childNodes[0], 4);
+</script>
diff --git a/testing/web-platform/tests/selection/caret/collapse-pre-linestart-ref.html b/testing/web-platform/tests/selection/caret/collapse-pre-linestart-ref.html
new file mode 100644
index 0000000000..2b25941ded
--- /dev/null
+++ b/testing/web-platform/tests/selection/caret/collapse-pre-linestart-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>selection.collapse() to line start</title>
+<pre id=target contenteditable>ABC<br><br></pre>
+<script>
+ target.focus();
+ getSelection().collapse(target, 3);
+</script>
diff --git a/testing/web-platform/tests/selection/caret/empty-elements.html b/testing/web-platform/tests/selection/caret/empty-elements.html
new file mode 100644
index 0000000000..328188c957
--- /dev/null
+++ b/testing/web-platform/tests/selection/caret/empty-elements.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<title>Placing selection inside empty elements</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div contenteditable id="host">
+ <p><strong id="strong"></strong></p>
+</div>
+<script>
+test( () => {
+ const range = document.createRange();
+
+ range.setStart( strong, 0 );
+ range.collapse()
+ getSelection().removeAllRanges();
+ getSelection().addRange( range );
+
+ const selectedRange = getSelection().getRangeAt( 0 );
+
+ assert_equals( selectedRange.startContainer, strong );
+ assert_equals( selectedRange.startOffset, 0 );
+ assert_equals( selectedRange.endContainer, strong );
+ assert_equals( selectedRange.endOffset, 0 );
+}, 'Selection can be placed inside the empty element' );
+</script>