<?xml-stylesheet type="text/css" href="data:text/css,root { color: green; }"?>
<?xml-stylesheet alternate="yes" type="text/css" href="data:text/css,root { color: red; }"?>
<!DOCTYPE html>
<root xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <meta charset="utf-8"/>
        <script src="../../resources/js-test-pre.js"></script>
        <script>

            description("xml alternate stylesheet with no title test");

            window.onload = function() {

                if (window.testRunner)
                    testRunner.dumpAsText();

                if (document.styleSheets.length > 1)
                    document.styleSheets[1].disabled = false;

                element = document.getElementById("sampleText") ;
                shouldBe("getComputedStyle(element).getPropertyValue('color')", "'rgb(0, 128, 0)'");
            }

        </script>
    </head>

    <body>
        <div id="sampleText">This text should be green</div>

        <script src="../../resources/js-test-post.js"></script>
    </body>
</root>
