description('Various tests for the the hidden IDL attribute.'); var testParent = document.createElement('div'); document.body.appendChild(testParent); debug('The IDL attribute reflects what is present in markup:'); testParent.innerHTML = '<div id=h1 hidden></div><div id=h2 hidden=false></div><div id=h3 hidden=off></div><div id=s1></div>'; var h1 = document.getElementById("h1"); var h2 = document.getElementById("h2"); var h3 = document.getElementById("h3"); var s1 = document.getElementById("s1"); shouldBeTrue('h1.hidden'); shouldBeTrue('h2.hidden'); shouldBeTrue('h3.hidden'); shouldBeFalse('s1.hidden'); debug('Changes via DOM Core are reflected through the IDL attribute:'); shouldBeFalse('(h1.removeAttribute("hidden"), h1.hidden)'); shouldBeTrue('(h1.setAttribute("hidden", ""), h1.hidden)'); shouldBeTrue('(h2.setAttribute("hidden", ""), h2.hidden)'); shouldBeTrue('(s1.setAttribute("hidden", ""), s1.hidden)'); debug('Changes via IDL attribute are reflected in the core DOM:'); shouldBe('(h3.hidden = false, h3.getAttribute("hidden"))', 'null'); shouldBe('(h3.hidden = true, h3.getAttribute("hidden"))', '""');