11const { suite } = require ( 'uvu' ) ;
2- const { CSSStyleSheet, CSSStyleRule, CSSRuleList, CSSRule, CSSGroupingRule, CSSConditionRule, CSSMediaRule, CSSStyleDeclaration, MediaList, CSSSupportsRule, CSSKeyframesRule, CSSKeyframeRule, CSSImportRule } = require ( '../' ) ;
2+ const { CSSStyleSheet, CSSStyleRule, CSSRuleList, CSSRule, CSSGroupingRule, CSSConditionRule, CSSMediaRule, CSSStyleDeclaration, MediaList, CSSSupportsRule, CSSKeyframesRule, CSSKeyframeRule, CSSImportRule, CSSNamespaceRule } = require ( '../' ) ;
33const assert = require ( 'assert' ) ;
44
55Object . setPrototypeOf ( CSSStyleRule . prototype , CSSRule . prototype ) ;
@@ -26,6 +26,9 @@ Object.setPrototypeOf(CSSKeyframeRule, CSSRule);
2626Object . setPrototypeOf ( CSSImportRule . prototype , CSSRule . prototype ) ;
2727Object . setPrototypeOf ( CSSImportRule , CSSRule ) ;
2828
29+ Object . setPrototypeOf ( CSSNamespaceRule . prototype , CSSRule . prototype ) ;
30+ Object . setPrototypeOf ( CSSNamespaceRule , CSSRule ) ;
31+
2932function run ( name , fn ) {
3033 let test = suite ( name ) ;
3134 fn ( test ) ;
@@ -788,6 +791,24 @@ run('CSSImportRule', test => {
788791 } ) ;
789792} ) ;
790793
794+ run ( 'CSSNamespaceRule' , test => {
795+ let stylesheet = new CSSStyleSheet ( ) ;
796+ stylesheet . replaceSync ( `
797+ @namespace "http://toto.example.org";
798+ @namespace toto "http://toto.example.org";
799+ ` ) ;
800+
801+ test ( 'namespaceURI' , ( ) => {
802+ assert . equal ( stylesheet . cssRules . item ( 0 ) . namespaceURI , 'http://toto.example.org' ) ;
803+ assert . equal ( stylesheet . cssRules . item ( 1 ) . namespaceURI , 'http://toto.example.org' ) ;
804+ } ) ;
805+
806+ test ( 'prefix' , ( ) => {
807+ assert . equal ( stylesheet . cssRules . item ( 0 ) . prefix , '' ) ;
808+ assert . equal ( stylesheet . cssRules . item ( 1 ) . prefix , 'toto' ) ;
809+ } ) ;
810+ } ) ;
811+
791812// setTimeout(() => {
792813// console.log("GC")
793814// global.gc();
0 commit comments