mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-27 02:05:07 +02:00
LibWeb: Fix case insensitivity for HTMLElement "hidden" attribute
This commit is contained in:
committed by
Jelle Raaijmakers
parent
bf8b8c260a
commit
5e23df7d8a
Notes:
github-actions[bot]
2025-09-11 13:21:48 +00:00
Author: https://github.com/veeti Commit: https://github.com/LadybirdBrowser/ladybird/commit/5e23df7d8a4 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6153 Reviewed-by: https://github.com/gmta ✅ Reviewed-by: https://github.com/tcl3
@@ -0,0 +1,68 @@
|
||||
<!DOCTYPE html>
|
||||
<link rel=author href="mailto:jarhar@chromium.org">
|
||||
<link rel=help href="https://html.spec.whatwg.org/multipage/rendering.html#hiddenCSS">
|
||||
<link rel=help href="https://github.com/whatwg/html/pull/7475#issuecomment-1069313217">
|
||||
<script src="../../../resources/testharness.js"></script>
|
||||
<script src="../../../resources/testharnessreport.js"></script>
|
||||
|
||||
<div id=div>hello world</div>
|
||||
<table id=table>
|
||||
<colgroup id=colgroup>
|
||||
<col id=col></col>
|
||||
</colgroup>
|
||||
</table>
|
||||
|
||||
<script>
|
||||
function testDisplayNone(description) {
|
||||
test(() => {
|
||||
assert_equals(getComputedStyle(div).display, 'none',
|
||||
`${description} should make the div display:none.`);
|
||||
assert_equals(getComputedStyle(div).contentVisibility, 'visible',
|
||||
`${description} should not affect the div's content-visibility property.`);
|
||||
}, description);
|
||||
}
|
||||
|
||||
function testCVHidden(description) {
|
||||
test(() => {
|
||||
assert_equals(getComputedStyle(div).display, 'block',
|
||||
`${description} should not affect the div's display property.`);
|
||||
assert_equals(getComputedStyle(div).contentVisibility, 'hidden',
|
||||
`${description} should make the div content-visibility:hidden.`);
|
||||
assert_equals(div.hidden, "until-found",
|
||||
`${description} should make the div hidden=until-found.`);
|
||||
}, description);
|
||||
|
||||
}
|
||||
|
||||
function testNormal(description) {
|
||||
test(() => {
|
||||
assert_equals(getComputedStyle(div).display, 'block',
|
||||
`${description} should not affect the div's display property.`);
|
||||
assert_equals(getComputedStyle(div).contentVisibility, 'visible',
|
||||
`${description} should not affect the div's content-visibility property.`);
|
||||
}, description);
|
||||
}
|
||||
|
||||
test(() => {
|
||||
div.removeAttribute('hidden');
|
||||
testNormal(`div.removeAttribute('hidden')`);
|
||||
|
||||
div.setAttribute('hidden', '');
|
||||
testDisplayNone(`div.setAttribute('hidden', '')`);
|
||||
|
||||
div.setAttribute('hidden', 'asdf');
|
||||
testDisplayNone(`div.setAttribute('hidden', 'asdf')`);
|
||||
|
||||
div.setAttribute('hidden', 'until-found');
|
||||
testCVHidden(`div.setAttribute('hidden', 'until-found')`);
|
||||
|
||||
div.setAttribute('hidden', 'UNTIL-FOUND');
|
||||
testCVHidden(`div.setAttribute('hidden', 'UNTIL-FOUND')`);
|
||||
|
||||
div.setAttribute('hidden', 'UnTiL-FoUnD');
|
||||
testCVHidden(`div.setAttribute('hidden', 'UnTiL-FoUnD')`);
|
||||
|
||||
div.setAttribute('hidden', '0');
|
||||
testDisplayNone(`div.setAttribute('hidden', '0')`);
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE html>
|
||||
<link rel=author href="mailto:jarhar@chromium.org">
|
||||
<link rel=help href="https://html.spec.whatwg.org/#the-hidden-attribute">
|
||||
<link rel=helph href="https://issues.chromium.org/issues/402108887">
|
||||
<script src="../../../resources/testharness.js"></script>
|
||||
<script src="../../../resources/testharnessreport.js"></script>
|
||||
|
||||
<div id=target>div</div>
|
||||
|
||||
<script>
|
||||
test(() => {
|
||||
const target = document.getElementById('target');
|
||||
target.setAttribute('hidden', 'UNTIL-FOUND');
|
||||
assert_equals(target.hidden, 'until-found');
|
||||
target.setAttribute('hidden', 'uNtIl-FoUnD');
|
||||
assert_equals(target.hidden, 'until-found');
|
||||
target.setAttribute('hidden', 'until-found');
|
||||
assert_equals(target.hidden, 'until-found');
|
||||
}, 'element.hidden should return "until-found" regardless of uppercase letters.');
|
||||
</script>
|
||||
Reference in New Issue
Block a user