<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 a reversed list.</p>
        <ol id="list" reversed="reversed">
            <li>Twelve</li>
            <li>Eleven</li>
            <li>Ten</li>
            <li>Nine
            <li>Eight</li>
                <b>
                    <li>Seven</li>
                </b>
            </li>
            <li value="4">Four</li>
            <li>Three</li>
            <div>
                <li>Two</li>
                <li>One</li>
            </div>
            <li>Zero</li>
            <li>Minus One</li>
        </ol>

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