<html>
<head>

<style type="text/css" media="screen">
@media not print {
    #main { background:blue; }
}

@media print {
    #main { background: transparent; }
}
</style>

<link rel="stylesheet" href="resources/media-queries.css" media="all">
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/elements-test.js"></script>
<script>

function test()
{
    InspectorTest.selectNodeAndWaitForStyles("main", step1);

    function step1()
    {
        InspectorTest.addResult("Main style:");
        InspectorTest.dumpSelectedElementStyles(true, false, true);
        InspectorTest.completeTest();
    }
}
</script>
</head>

<body onload="runTest()">
<p>
Tests that media query stack is rendered for associated rules.
</p>

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