diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /layout/reftests/text-overflow/selection-ref.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | layout/reftests/text-overflow/selection-ref.html | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/layout/reftests/text-overflow/selection-ref.html b/layout/reftests/text-overflow/selection-ref.html new file mode 100644 index 0000000000..aaeaef5d12 --- /dev/null +++ b/layout/reftests/text-overflow/selection-ref.html @@ -0,0 +1,118 @@ +<!DOCTYPE HTML> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/licenses/publicdomain/ +--> +<html class="reftest-wait"><head> +<title>text-overflow: Selected text, background, decorations</title> +<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> +<style type="text/css"> +@font-face { + font-family: DejaVuSansMono; + src: url(../fonts/DejaVuSansMono.woff); +} +@font-face { + font-family: TestEllipsisFallback; + src: url(TestEllipsisFallback.woff); +} +html,body { + color:black; background-color:white; font-size:16px; padding:0; margin:0; font-family:DejaVuSansMono; +} + +.test { + overflow:auto; + white-space:nowrap; + width: 5em; + position:relative; + margin-top:1em; + padding-left: 0.9em; + padding-right: 1.3em; +} + +.hidden { + overflow:hidden; + width: 4.4em; +} + +.rlo { + unicode-bidi: bidi-override; direction: rtl; +} +.lro { + unicode-bidi: bidi-override; direction: ltr; +} +.rtl { + direction:rtl; +} +i { display:none; } +x {font-family:DejaVuSansMono;} +</style> +<script> +function getTextNode(elm) { + if (elm.nodeType != 3) + return getTextNode(elm.firstChild); + return elm; +} +function addRange(elm) { +try { + var sel = window.getSelection(); + var range = document.createRange(); + var startNode = elm.getAttribute('startNode'); + if (startNode == null) + startNode = getTextNode(elm); + else + startNode = getTextNode(elm.childNodes[startNode]) + var start = elm.getAttribute('start'); + if (start == null) start = 2; + var endNode = elm.getAttribute('endNode'); + if (endNode == null) + endNode = startNode; + else + endNode = getTextNode(elm.childNodes[endNode]) + var end = elm.getAttribute('end'); + if (end == null) end = endNode.textContent.length; + if (startNode==endNode && start > end) return; + if (startNode==null) return; + range.setStart(startNode, start); + range.setEnd(endNode, end); + sel.addRange(range); +} catch (e) { +alert(e+'\n'+elm.id+'\n'+t) +} +} +function selectText() { + // For putting selection ranges to multiple editing hosts, we need to put + // a range outside all editable elements first, then, selection's ancestor + // limiter won't be set to an editing host. + getSelection().collapse(document.body, document.body.childNodes.length); + var divs = document.getElementsByTagName('div'); + for (i = 0; i < divs.length; ++i) { + addRange(divs[i]); + } + var t1 = document.getElementById('t1'); + addRange(t1.firstChild); + var t2 = document.getElementById('t2'); + addRange(t2.firstChild); + document.body.offsetHeight; + setTimeout(function(){document.documentElement.removeAttribute('class')},2000); +} +</script> +</head><body onload="selectText();"> + +<!-- LTR overflow:hidden --> +<div contenteditable="true" spellcheck="true" class="test ltr hidden" end=6>Mispe|…</div> +<span style="display:block;width:15em"><div contenteditable="true" spellcheck="true" class="test ltr hidden" style="width:auto; float:right; font-family:TestEllipsisFallback; text-align:right; width:9em;" start=0 end=0>...<x><i>z</i>d word</x></div></span><br clear="all"> + +<div id="t1" contenteditable="true" spellcheck="true" class="test ltr hidden"><span class="rlo" endNode="1" start="0" end="6"><i>z</i>d word</span>… </div> +<div id="t2" contenteditable="true" spellcheck="true" class="test ltr hidden" ><span class="rlo" endNode="2" start="1" end="1">…<i>z</i>d word</span></div> +<div contenteditable="true" spellcheck="true" class="test ltr hidden"><span class="rlo">…<i>z</i>d word</div> +<div contenteditable="true" spellcheck="true" class="test ltr hidden" endNode="1" start="2" end="3" style="text-indent:-0.2em"><span> …s</span><span>pe|</span>…<span></span></div> + +<!-- RTL overflow:hidden --> +<div contenteditable="true" spellcheck="true" class="test rtl hidden" endNode="2" start="8" end="6">Misp …<i>z</i>d word</div> +<div contenteditable="true" spellcheck="true" class="test rtl hidden" end="2"><span class="lro"> …<i>z</i>d word</span></div> +<div contenteditable="true" spellcheck="true" class="test rtl hidden" endNode="1" end=0 start=1><span class="lro">…<i>z</i>d</span><span class="rlo"> word</span></div> +<div contenteditable="true" spellcheck="true" class="test rtl hidden"><span class="rlo">Mis</span><span class="rlo">pel… word</div> +<div contenteditable="true" spellcheck="true" class="test rtl hidden"><span class="rlo">Mis</span><span class="rlo">pel… word</div> +<div contenteditable="true" spellcheck="true" class="test rtl hidden"><span class="rlo" style="margin-right:-0.2em"> …s</span><span class="rlo">pel… </span><span class="rlo"> word</span></div> + +</body></html> |