<!DOCTYPE html>
<html>
    <head>
        <title>CSSOM Parsing Test: @font-face rules toString() as valid interfaces</title>
        <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com">
        <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!--  2012-06-17  -->
        <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-font-face-rule">

        <meta name="flags" content="dom">

        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>
    </head>

    <body>
        <div id="log"></div>


        <style id="teststyles">
        @font-face {
            src: url(http://foo/bar/font.ttf);
        }
        @font-face {
            font-family: STIXGeneral;
            src: local(STIXGeneral), url(/stixfonts/STIXGeneral.otf);
            unicode-range: U+000-49F, U+2000-27FF, U+2900-2BFF, U+1D400-1D7FF;
        }
        @font-face {
            font-family: MainText;
            src: url(http://example.com/font.ttf);
            font-variant: oldstyle-nums proportional-nums styleset(1,3);
        }

       @font-face {
            font-family: BodyText;
            src: local("HiraMaruPro-W4");
            font-variant: proportional-width;
            font-feature-settings: "ital"; /* Latin italics within CJK text feature */
        }
        </style>


        <script>
            var validRules = document.getElementById('teststyles').sheet.cssRules;

            test(function(){
                for (var i = 0; i < validRules.length; ++i) {
                    assert_equals(validRules.item(i).toString(), '[object CSSFontFaceRule]');
                }
            }, '@font-face declarations are instances of CSSFontFaceRule')


            test(function(){
                for (var i = 0; i < validRules.length; ++i) {
                    assert_equals(validRules.item(i).style.toString(), '[object CSSStyleDeclaration]');
                }
            }, 'The style attribute must return a CSSStyleDeclaration block')

        </script>


    </body>
</html>
