<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script src="syntax-highlight.js"></script>
<script>

function test()
{
    function dumpSyntaxHighlightHTML(str)
    {
        return InspectorTest.dumpSyntaxHighlight(str, "text/html");
    }

    dumpSyntaxHighlightHTML("<html>");
    dumpSyntaxHighlightHTML("<table cellspacing=0>");
    dumpSyntaxHighlightHTML("<input checked value=\"foo\">");
    dumpSyntaxHighlightHTML("<table cellspacing=\"0\" cellpadding='0'>");
    dumpSyntaxHighlightHTML("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">");
    dumpSyntaxHighlightHTML("<!--div><div foobar-->");
    dumpSyntaxHighlightHTML("<script></" + "script><!--div-->");
    dumpSyntaxHighlightHTML("<script type=\"text/javascript\">document.write('<script type=\"text/javascript\"></' + 'script>');</" + "script>")

    .then(InspectorTest.completeTest.bind(InspectorTest));
}

</script>
</head>

<body onload="runTest()">
<p>
Tests that SourceHTMLTokenizer detects the tokens.
</p>

</body>
</html>
