<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
<meta name="description" content="This tests html output">
<title>HTML innerHTML test, including custom tags</title>
<script>
function test() {
    if (window.testRunner)
        testRunner.dumpAsText();
    var n = document.getElementsByTagName("emptyCustomTag")[0];
    n.parentNode.insertBefore(document.createElementNS("http://webkit.org/test", "anotherEmptyCustomTag"), n.nextSibling);
    n.parentNode.insertBefore(document.createTextNode("\n"), n.nextSibling);
    document.getElementById("content").firstChild.nodeValue = document.body.innerHTML;
}
</script>
</head>

<body onload="test()">
<span>Content:</span>
<pre id="content">placeholder</pre>
<div></div>
<span></span>
<b>test</b>
<br>
<emptyCustomTag></emptyCustomTag>
<customTag>more test</customTag>
<div id="testArea"></div>
</body>

</html>
