<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>CSSOM - CSSNamespaceRule interface</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <style>
        @namespace svg url(http://servo);
        @namespace url(http://servo1);
        @namespace svg url("http://servo2");
    </style>

    <script>
    test(function () {
        var rules = document.styleSheets[0].cssRules;
        assert_equals(rules[0].prefix, "svg", "CSSNamespaceRule prefix attribute");
        assert_equals(rules[0].namespaceURI, "http://servo", "CSSNamespaceRule namespaceURI attribute");
        assert_equals(rules[0].cssText, "@namespace svg url(\"http://servo\");", "CSSNamespaceRule cssText attribute");

        assert_equals(rules[1].prefix, "", "CSSNamespaceRule prefix attribute");
        assert_equals(rules[1].namespaceURI, "http://servo1", "CSSNamespaceRule namespaceURI attribute");
        assert_equals(rules[1].cssText, "@namespace url(\"http://servo1\");", "CSSNamespaceRule cssText attribute");

        assert_equals(rules[2].prefix, "svg", "CSSNamespaceRule prefix attribute");
        assert_equals(rules[2].namespaceURI, "http://servo2", "CSSNamespaceRule namespaceURI attribute");
        assert_equals(rules[2].cssText, "@namespace svg url(\"http://servo2\");", "CSSNamespaceRule cssText attribute");
    });
    </script>
</head>
</html>
