<!doctype html>
<head>
<title>CSS OM: CSS Rule Types and Order</title>
<link rel="help" href="https://drafts.csswg.org/cssom-1/#the-cssrule-interface">
<meta name="flags" content="dom">
<meta name="assert" content="Testing Serialization of Style Rules">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style id="s-0">
@namespace svg "http://www.w3.org/2000/svg";
</style>
<style id="s-1">
@import url('main.css');
</style>
<style id="s-2">
h1 { background: indianred; }
</style>
<style id="s-3">
@namespace svg "http://www.w3.org/2000/svg";
svg|a { color: white; }
</style>
<style id="s-4">
@font-face {
font-family: 'Megalopolis';
src: url('fonts/megalopolisextra-webfont.eot');
src: url('fonts/megalopolisextra-webfont.eot?#iefix') format('embedded-opentype'),
url('fonts/megalopolisextra-webfont.woff') format('woff'),
url('fonts/megalopolisextra-webfont.ttf') format('truetype'),
url('fonts/megalopolisextra-webfont.svg#MEgalopolisExtraRegular') format('svg');
font-weight: normal;
font-style: normal;
}
</style>
<style id="s-5">
@media (min-width: 200px) {
h1 { background: aliceblue; }
}
</style>
<style id="s-6">
@page :first {
h1 { color: #444; }
}
</style>
</head>
<body>
<div id="log"></div>
<script type="text/javascript">
"use strict";
var stylesheets = document.styleSheets;
var expectedOrderOfTypes = [10, 3, 1, 1, 5, 4, 6];
var typesText = {
1: 'style rule',
3: '@import rule',
4: 'media rule',
5: '@font-face rule',
6: 'page rule',
10: 'namespace rule'
};
for (var i = 0; i < stylesheets.length; i++) {
test( function () {
if (i === 3) {
var cssType = stylesheets[i].cssRules[1].type;
} else {
var cssType = stylesheets[i].cssRules[0].type;
}
assert_equals(typesText[cssType], typesText[expectedOrderOfTypes[i]]);
}, 'Type of #s-' + i + ' is expected to be ' + typesText[expectedOrderOfTypes[i]]);
}
</script>
</body>
</html>