description('Various tests for the header element.');
var testParent = document.createElement('div');
document.body.appendChild(testParent);
debug('<header> closes <p>:');
testParent.innerHTML = '
Test that 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 = '';
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 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);