<html>
    <head>
        <script src="resources/dump-list.js"></script>
        <script>
            function test()
            {
                if (window.testRunner)
                    testRunner.dumpAsText();

                var list = document.getElementById("list");
                document.getElementById("console").innerHTML = dumpList(list);

                // Don't show the actual list as it is useless in the text-only mode.
                list.parentNode.removeChild(list);
            }
        </script>
    </head>
    <body onload="test()">
        <p>This tests that list items are properly marked when some of the items are indirect children of the list element.</p>
        <ol id="list">
            <li>One</li>
            <li>Two</li>
            <li>Three</li>
            <li>Four
                <b>
                    <li>Five</li>
                    <li>Six</li>
                </b>
            </li>
            <li value="10">Ten</li>
            <li>Eleven</li>
            <div>
                <li>Twelve</li>
                <li>Thirteen</li>
            </div>
            <li>Fourteen</li>
            <li>Fifteen</li>
        </ol>

        <div id="console"></div>
    </body>
</html>
