diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /layout/generic/test/test_bug1642588.html | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/generic/test/test_bug1642588.html')
-rw-r--r-- | layout/generic/test/test_bug1642588.html | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/layout/generic/test/test_bug1642588.html b/layout/generic/test/test_bug1642588.html new file mode 100644 index 0000000000..48f2eecf4f --- /dev/null +++ b/layout/generic/test/test_bug1642588.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<title>Test for Bug 1642588</title> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<script src="/tests/SimpleTest/EventUtils.js"></script> +<link rel="stylesheet" href="/tests/SimpleTest/test.css"> +<style> + [contenteditable] { + padding: .5em 40%; + } +</style> + +<div> + <p> + Intentionally not in WPT as triple click is not guaranteed to have same + behavior on every browser. + </p> + <span contenteditable></span><hr> + <div contenteditable style="display: inline;"></div><hr> + <div contenteditable style="display: inline-block;"></div><hr> + <!-- + FIXME: https://bugzilla.mozilla.org/show_bug.cgi?id=1654364 + <table contenteditable style="display: inline-table;"><tr><td></table><hr> + --> + <div contenteditable style="display: inline-flex;"></div><hr> + <div contenteditable style="display: inline-grid;"></div> +</div> + +<script> +function selectHostByClicks(host, number) { + for (let i = 1; i <= number; i++) { + synthesizeMouseAtCenter(host, { clickCount: i }); + } +} + +function nonCollapsedDeletionTest(host, clickCount) { + host.textContent = "contenteditable"; + selectHostByClicks(host, clickCount); + const selection = getSelection(); + + is(selection.isCollapsed, false, "Noncollapsed selection should occur"); + + synthesizeKey("KEY_Backspace"); + is(host.textContent, "", "Backspace should delete the content of the editing host"); +} + +function collapsedSelectionTest(host, clickCount) { + host.textContent = ""; + selectHostByClicks(host, clickCount); + const selection = getSelection(); + + is(selection.isCollapsed, true, "Collapsed selection should occur"); + is(selection.anchorNode, host, "Caret should be in host"); +} + +SimpleTest.waitForExplicitFinish(); +SimpleTest.waitForFocus(() => { + const hosts = document.querySelectorAll("[contenteditable]"); + for (const host of hosts) { + nonCollapsedDeletionTest(host, 2); + nonCollapsedDeletionTest(host, 3); + collapsedSelectionTest(host, 3); + } + SimpleTest.finish(); +}); +</script> |