summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/editing/the-hidden-attribute/hidden-idl.html
blob: 331b63f93fd80a360dbc46e7b2da93d24596367c (plain)
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>