diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/dom/ranges/Range-adopt-test.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/dom/ranges/Range-adopt-test.html')
-rw-r--r-- | testing/web-platform/tests/dom/ranges/Range-adopt-test.html | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/testing/web-platform/tests/dom/ranges/Range-adopt-test.html b/testing/web-platform/tests/dom/ranges/Range-adopt-test.html new file mode 100644 index 0000000000..3735fc38fd --- /dev/null +++ b/testing/web-platform/tests/dom/ranges/Range-adopt-test.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script> +function createRangeWithUnparentedContainerOfSingleElement() { + const range = document.createRange(); + const container = document.createElement("container"); + const element = document.createElement("element"); + container.appendChild(element); + range.selectNode(element); + return range; +} +function nestRangeInOuterContainer(range) { + range.startContainer.ownerDocument.createElement("outer").appendChild(range.startContainer); +} +function moveNodeToNewlyCreatedDocumentWithAppendChild(node) { + document.implementation.createDocument(null, null).appendChild(node); +} + +//Tests removing only element +test(()=>{ + const range = createRangeWithUnparentedContainerOfSingleElement(); + range.startContainer.removeChild(range.startContainer.firstChild); + assert_equals(range.endOffset, 0); +}, "Range in document: Removing the only element in the range must collapse the range"); + + +//Tests removing only element after parented container moved to another document +test(()=>{ + const range = createRangeWithUnparentedContainerOfSingleElement(); + nestRangeInOuterContainer(range); + moveNodeToNewlyCreatedDocumentWithAppendChild(range.startContainer); + assert_equals(range.endOffset, 0); +}, "Parented range container moved to another document with appendChild: Moving the element to the other document must collapse the range"); + +//Tests removing only element after parentless container moved oo another document +test(()=>{ + const range = createRangeWithUnparentedContainerOfSingleElement(); + moveNodeToNewlyCreatedDocumentWithAppendChild(range.startContainer); + range.startContainer.removeChild(range.startContainer.firstChild); + assert_equals(range.endOffset, 0); +}, "Parentless range container moved to another document with appendChild: Removing the only element in the range must collapse the range"); + +//Tests removing only element after parentless container of container moved to another document +test(()=>{ + const range = createRangeWithUnparentedContainerOfSingleElement(); + nestRangeInOuterContainer(range); + moveNodeToNewlyCreatedDocumentWithAppendChild(range.startContainer.parentNode); + range.startContainer.removeChild(range.startContainer.firstChild); + assert_equals(range.endOffset, 0); +}, "Range container's parentless container moved to another document with appendChild: Removing the only element in the range must collapse the range"); +</script> |