Various tests for the hidden attribute.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".



Tests that hidden in markup works:


Tests that dynamically adding/removing hidden works:
PASS - this line should appear

Dynamic changing of hidden and effects on style:
PASS getComputedStyle(test3, false).display is "none"
test3.removeAttribute("hidden")
PASS getComputedStyle(test3, false).display is "block"
PASS getComputedStyle(test4, false).display is "block"
test4.setAttribute("hidden", "")
PASS getComputedStyle(test4, false).display is "none"

PASS successfullyParsed is true

TEST COMPLETE



a
