<!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>
