CSSGroupingRule-cssRules.html (1887B)
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>CSSOM - CSSGroupingRule - cssRules</title> 6 <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssgroupingrule-interface"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script> 10 function create(t) { 11 var style = document.createElement('style'); 12 style.appendChild(document.createTextNode('@media all { * {} }')); 13 document.head.appendChild(style); 14 t.add_cleanup(function() { 15 document.head.removeChild(style); 16 }); 17 18 assert_true(!!style.sheet, 'setup - sheet defined'); 19 assert_equals( 20 style.sheet.cssRules.length, 1, 'setup - grouping rule created' 21 ); 22 assert_equals( 23 style.sheet.cssRules[0].cssRules.length, 1, 'setup - rule created' 24 ); 25 return style.sheet.cssRules[0]; 26 } 27 28 test(function (t) { 29 var groupingRule = create(t); 30 groupingRule.cssRules.wptMarker = 'wpt'; 31 32 // `insertRule` is used to prompt non-conforming implementations to 33 // create a new CSSRuleList object. Its behavior is verified by a 34 // dedicated test and should not influence the result of this 35 // particular test. 36 try { 37 groupingRule.insertRule('.foo {}', 0); 38 groupingRule.insertRule('.bar {}', 0); 39 groupingRule.insertRule('.baz {}', 0); 40 } catch (err) {} 41 42 assert_equals(groupingRule.cssRules.wptMarker, 'wpt'); 43 44 try { 45 groupingRule.deleteRule('.foo {}', 0); 46 groupingRule.deleteRule('.bar {}', 0); 47 groupingRule.deleteRule('.baz {}', 0); 48 } catch (err) {} 49 50 assert_equals(groupingRule.cssRules.wptMarker, 'wpt'); 51 }, '[SameObject] is honored'); 52 </script> 53 </head> 54 </html>