description('Various tests for the header element.'); var testParent = document.createElement('div'); document.body.appendChild(testParent); debug('<header> closes <p>:'); testParent.innerHTML = '

Test that

a header element
closes <p>.

'; var header1 = document.getElementById('header1'); shouldBeFalse('header1.parentNode.nodeName == "p"'); debug('<p> does not close <header>:'); testParent.innerHTML = '
Test that

a p element

does not close a header element.
'; var p1 = document.getElementById('p1'); shouldBe('p1.parentNode.nodeName', '"HEADER"'); debug('<header> can be nested inside <header> or <footer>:'); testParent.innerHTML = '
Test that
a header element
can be nested inside another header element.
'; var header3 = document.getElementById('header3'); shouldBe('header3.parentNode.id', '"header2"'); testParent.innerHTML = ''; var header5 = document.getElementById('header5'); shouldBe('header5.parentNode.id', '"footer1"'); debug('Residual style:'); testParent.innerHTML = '
This text should be bold.
This is also bold.
'; function getWeight(id) { return document.defaultView.getComputedStyle(document.getElementById(id), null).getPropertyValue('font-weight'); } shouldBe('getWeight("header4")', '"bold"'); shouldBe('getWeight("span1")', '"bold"'); document.body.removeChild(testParent); debug('FormatBlock:'); var editable = document.createElement('div'); editable.innerHTML = '[The text will be a child of <header>.]'; document.body.appendChild(editable); editable.contentEditable = true; var selection = window.getSelection(); selection.selectAllChildren(editable); document.execCommand('FormatBlock', false, 'header'); selection.removeAllRanges(); shouldBe('document.getElementById("span2").parentNode.nodeName', '"HEADER"'); document.body.removeChild(editable);