From 2aa4a82499d4becd2284cdb482213d541b8804dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 16:29:10 +0200 Subject: Adding upstream version 86.0.1. Signed-off-by: Daniel Baumann --- layout/reftests/bidi/dirAuto/setDir.js | 247 +++++++++++++++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 layout/reftests/bidi/dirAuto/setDir.js (limited to 'layout/reftests/bidi/dirAuto/setDir.js') diff --git a/layout/reftests/bidi/dirAuto/setDir.js b/layout/reftests/bidi/dirAuto/setDir.js new file mode 100644 index 0000000000..829935e564 --- /dev/null +++ b/layout/reftests/bidi/dirAuto/setDir.js @@ -0,0 +1,247 @@ +function setAllDir(value) +{ + for (var i = 0; ; ++i) { + try { + theElement = document.getElementById("set" + i); + theElement.dir = value; + } catch(e) { + break; + } + } +} + +function setAllDirAttribute(value) +{ + for (var i = 0; ; ++i) { + try { + theElement = document.getElementById("set" + i); + theElement.setAttribute("dir", value); + } catch(e) { + break; + } + } +} + +function removeAllDirAttribute() +{ + for (var i = 0; ; ++i) { + try { + theElement = document.getElementById("set" + i); + theElement.removeAttribute("dir"); + } catch(e) { + break; + } + } +} + +function addOneElement(innerHTML) +{ + var container = document.getElementById("container"); + var elem = document.createElement("div"); + elem.innerHTML = innerHTML; + container.appendChild(elem); +} + +function addLTRAutoElements() +{ + addOneElement(''); + addOneElement('ABC אבג'); + addOneElement(''); + addOneElement(''); + addOneElement('ABC אבג'); +} + +function addRTLAutoElements() +{ + addOneElement(''); + addOneElement('אבג ABC'); + addOneElement(''); + addOneElement(''); + addOneElement('אבג ABC'); +} + +function setAllTextValuesTo(newText) +{ + for (var i = 0; ; ++i) { + theElement = document.getElementById("set" + i); + if (!theElement) { + break; + } + if (theElement.tagName == "INPUT" || + theElement.tagName == "TEXTAREA") { + theElement.value = newText; + } else { + theElement.firstChild.textContent = newText; + } + } +} + +function setAllTextDefaultValuesTo(newText) +{ + for (var i = 0; ; ++i) { + theElement = document.getElementById("set" + i); + if (!theElement) { + break; + } + if (theElement.tagName == "INPUT" || + theElement.tagName == "TEXTAREA") { + theElement.defaultValue = newText; + } else { + theElement.firstChild.textContent = newText; + } + } +} + +function setAllTextChildrenTo(newText) +{ + for (var i = 0; ; ++i) { + theElement = document.getElementById("set" + i); + if (!theElement) { + break; + } + if (theElement.tagName == "INPUT") { + theElement.value = newText; + } else { + theElement.firstChild.textContent = newText; + } + } +} + +function appendTextFromArray(textArray) +{ + for (var i = 0; ; ++i) { + theElement = document.getElementById("set" + i); + if (!theElement) { + break; + } + for (var j = 0; j < textArray.length; ++j) { + if (theElement.tagName == "INPUT") { + theElement.value += textArray[j]; + } else { + var textNode = document.createTextNode(textArray[j]); + theElement.appendChild(textNode); + } + } + } +} + +// Add the members of the array to the text content of the elements in +// the document, not including the last member. Then delete the last but +// one and add the last one +// Useful for testing scenarios like bug 1169267 +function appendDeleteAppendTextFromArray(textArray) +{ + if (textArray.length < 2) { + return; + } + + for (var i = 0; ; ++i) { + theElement = document.getElementById("set" + i); + if (!theElement) { + break; + } + var isInput = (theElement.tagName == "INPUT"); + if (!isInput) { + var textNode = document.createTextNode(""); + theElement.appendChild(textNode); + } + + for (var j = 0; j < textArray.length - 1; ++j) { + if (isInput) { + theElement.value += textArray[j]; + } else { + textNode.appendData(textArray[j]); + } + } + + // delete the last element added + var deleteElt = textArray[textArray.length - 2]; + if (isInput) { + theElement.value = theElement.value.slice(0, -deleteElt.length); + } else { + textNode.deleteData(textNode.length - deleteElt.length, + deleteElt.length); + } + + // add the next element + var addElt = textArray[textArray.length - 1]; + if (isInput) { + theElement.value += addElt; + } else { + textNode.appendData(addElt); + } + } +} + +function appendSpansFromArray(textArray) +{ + for (var i = 0; ; ++i) { + theElement = document.getElementById("set" + i); + if (!theElement) { + break; + } + for (var j = 0; j < textArray.length; ++j) { + // fake the result for elements that can't have markup content + if (theElement.tagName == "INPUT") { + theElement.value += textArray[j]; + } else if (theElement.tagName == "TEXTAREA") { + theElement.innerHTML += textArray[j]; + } else { + var span = document.createElement("span"); + span.innerHTML = textArray[j]; + theElement.appendChild(span); + } + } + } +} + +function prependTextFromArray(textArray) +{ + for (var i = 0; ; ++i) { + theElement = document.getElementById("set" + i); + if (!theElement) { + break; + } + for (var j = 0; j < textArray.length; ++j) { + if (theElement.tagName == "INPUT") { + theElement.value = textArray[j] + theElement.value; + } else { + var textNode = document.createTextNode(textArray[j]); + theElement.insertBefore(textNode, theElement.firstChild); + } + } + } +} + +function prependSpansFromArray(textArray) +{ + for (var i = 0; ; ++i) { + theElement = document.getElementById("set" + i); + if (!theElement) { + break; + } + for (var j = 0; j < textArray.length; ++j) { + // fake the result for elements that can't have markup content + if (theElement.tagName == "INPUT") { + theElement.value = textArray[j] + theElement.value; + } else if (theElement.tagName == "TEXTAREA") { + theElement.innerHTML = textArray[j] + theElement.innerHTML; + } else { + var span = document.createElement("span"); + span.innerHTML = textArray[j]; + theElement.insertBefore(span, theElement.firstChild); + } + } + } +} + +function removeElements() +{ + for (var i = 0; ; ++i) { + theElement = document.getElementById("set" + i); + if (!theElement) { + break; + } + theElement.remove(); + } +} -- cgit v1.2.3