1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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, false, null);
runPropertyTest(NaN, false, null);
</script>
|