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

function test()
{
    WebInspector.showPanel("elements");

    InspectorTest.selectNodeAndWaitForStyles("inspected1", dumpStylesFirst);

    function dumpStylesFirst()
    {
        InspectorTest.dumpSelectedElementStyles(true);
        InspectorTest.selectNodeAndWaitForStyles("inspected2", dumpStylesSecond);
    }

    function dumpStylesSecond()
    {
        InspectorTest.dumpSelectedElementStyles(true);
        InspectorTest.completeTest();
    }
}
</script>
</head>

<body onload="runTest()">
<p>
Tests that CSSParser correctly parses declarations with unterminated comments.

<div id="inspected1" style="color: red /* foo: bar;"></div>
<div id="inspected2" style="color: green; /* foo: bar;"></div>
</body>
</html>
