ladybird/Tests/LibWeb/Text/input/css/dir-pseudo-on-form-associated-element.html
Tim Ledbetter d6297ec074 LibWeb: Cast to the correct type in Element::auto_directionality()
Previously, we always cast to a HTMLInputElement when getting the value
of an auto directionality form associated element. This caused
undefined behavior when determining the directionality of an element
that wasn't a HTMLInputElement.
2024-05-28 09:51:07 +02:00

53 lines
1.8 KiB
HTML

<!DOCTYPE html>
<style>
.test {
font-size: 12px;
}
</style>
<script src="../include.js"></script>
<script>
test(() => {
function testSelectorMatch(input, selector) {
println(`Input matches ${selector}: ${input.matches(selector)}`);
}
function testElementDirectionality(element) {
element.value = "Well hello friends!"
testSelectorMatch(element, ":dir(ltr)");
testSelectorMatch(element, ":dir(rtl)");
element.dir = "invalid";
testSelectorMatch(element, ":dir(ltr)");
testSelectorMatch(element, ":dir(rtl)");
element.dir = "rtl";
testSelectorMatch(element, ":dir(ltr)");
testSelectorMatch(element, ":dir(rtl)");
element.dir = "auto"
testSelectorMatch(element, ":dir(ltr)");
testSelectorMatch(element, ":dir(rtl)");
element.value = "حسنًا ، مرحباً أيها الأصدقاء";
testSelectorMatch(element, ":dir(ltr)");
testSelectorMatch(element, ":dir(rtl)");
element.dir = "ltr"
testSelectorMatch(element, ":dir(ltr)");
testSelectorMatch(element, ":dir(rtl)");
element.removeAttribute("dir");
testSelectorMatch(element, ":dir(ltr)");
testSelectorMatch(element, ":dir(rtl)");
}
println("Testing input element with type=text");
const textInput = document.createElement("input");
textInput.type = "text";
testElementDirectionality(textInput);
println("Testing textarea element");
const textAreaElement = document.createElement("textarea");
testElementDirectionality(textAreaElement);
});
</script>