Skip to content

Commit

Permalink
Update hidden attribute IDL for hidden=until-found
Browse files Browse the repository at this point in the history
Bug: 1055002
Fixed: 1280032
Change-Id: I1cb9d80488a933546072daed704af87100d113cf
  • Loading branch information
josepharhar authored and chromium-wpt-export-bot committed Mar 14, 2022
1 parent e0cf318 commit 58aca5b
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 1 deletion.
1 change: 0 additions & 1 deletion html/dom/reflection.js
Original file line number Diff line number Diff line change
Expand Up @@ -905,7 +905,6 @@ for (var element in elements) {
ReflectionTests.reflects("string", "className", element, "class");
ReflectionTests.reflects("tokenlist", "classList", element, "class");
ReflectionTests.reflects("boolean", "autofocus", element);
ReflectionTests.reflects("boolean", "hidden", element);
ReflectionTests.reflects("string", "accessKey", element);
// Don't try to test the defaultVal -- it should be either 0 or -1, but the
// rules are complicated, and a lot of them are SHOULDs.
Expand Down
49 changes: 49 additions & 0 deletions html/editing/the-hidden-attribute/hidden-idl.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<!DOCTYPE html>
<link rel=author href="mailto:jarhar@chromium.org">
<link rel=help href="https://github.com/whatwg/html/pull/7475">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<div>hello</div>
<script>
const div = document.querySelector('div');

function runPropertyTest(assignedValue, expectedValue, expectedAttribute) {
test(() => {
div.hidden = assignedValue;
assert_equals(div.hidden, expectedValue,
`div.hidden = ${JSON.stringify(assignedValue)} should return ${JSON.stringify(expectedValue)}`);
assert_equals(div.getAttribute('hidden'), expectedAttribute,
`div.hidden = ${JSON.stringify(assignedValue)} should set the hidden attribute to ${JSON.stringify(expectedAttribute)}`);
}, `div.hidden = ${Number.isNaN(assignedValue) ? 'NaN' : JSON.stringify(assignedValue)}`);
}

function runAttributeTest(assignedAttribute, expectedValue) {
test(() => {
div.setAttribute('hidden', assignedAttribute);
assert_equals(div.hidden, expectedValue);
}, `div.setAttribute('hidden', ${JSON.stringify(assignedAttribute)}) should make div.hidden return ${JSON.stringify(expectedValue)}`);
}

runPropertyTest(false, false, null);
runPropertyTest(true, true, '');
runPropertyTest('foo', true, '');
runPropertyTest('false', true, '');
runPropertyTest('', false, null);

runAttributeTest('false', true);
runAttributeTest('foo', true);

runPropertyTest('until-found', 'until-found', 'until-found');
runPropertyTest('UNTIL-FOUND', 'until-found', 'until-found');
runPropertyTest('UnTiL-FoUnD', 'until-found', 'until-found');
runPropertyTest('unt\u0131l-found', true, '');
runPropertyTest('unt\u0130l-found', true, '');

runPropertyTest(null, false, null);
runPropertyTest(undefined, false, null);

runPropertyTest(1, true, '');
runPropertyTest(0, true, '');
runPropertyTest(NaN, true, '');
</script>

0 comments on commit 58aca5b

Please sign in to comment.