description('Various tests for the figure element.');
function getStyleValue(id, propertyName) {
return document.defaultView.getComputedStyle(document.getElementById(id), null).getPropertyValue(propertyName);
}
var testParent = document.createElement('div');
document.body.appendChild(testParent);
debug('<figure> default styling:');
testParent.innerHTML = 'element';
var emSize = getStyleValue("figure0","font-size");
shouldBe('getStyleValue("figure0","display")', '"block"');
shouldBe('getStyleValue("figure0","margin-top")', 'emSize');
shouldBe('getStyleValue("figure0","margin-right")', '"40px"');
shouldBe('getStyleValue("figure0","margin-bottom")', 'emSize');
shouldBe('getStyleValue("figure0","margin-left")', '"40px"');
debug('<figure> closes <p>:');
testParent.innerHTML = '
Test that a figure element closes <p>.
';
var figure1 = document.getElementById('figure1');
shouldBeFalse('figure1.parentNode.nodeName == "p"');
debug('<p> does not close <figure>:');
testParent.innerHTML = 'Test that
a p element
does not close a figure element.';
var p1 = document.getElementById('p1');
shouldBe('p1.parentNode.nodeName', '"FIGURE"');
debug('<figure> can be nested inside <figure> or <footer>:');
testParent.innerHTML = 'Test that a figure element can be nested inside another figure element.';
var figure3 = document.getElementById('figure3');
shouldBe('figure3.parentNode.id', '"figure2"');
testParent.innerHTML = '';
var figure5 = document.getElementById('figure5');
shouldBe('figure5.parentNode.id', '"footer1"');
debug('Residual style:');
testParent.innerHTML = 'This text should be bold.This is also bold.';
shouldBe('getStyleValue("figure4","font-weight")', '"bold"');
shouldBe('getStyleValue("span1","font-weight")', '"bold"');
document.body.removeChild(testParent);