test_getRuleIndex.html (2319B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test InspectorUtils.getRuleIndex</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 7 <style> 8 @property --color { 9 syntax: "*"; 10 inherits: false; 11 } 12 html { 13 background: gold; 14 15 &:hover { 16 background: yellow; 17 } 18 19 & body { 20 color: tomato; 21 22 &:focus-visible { 23 outline: 1px solid cyan; 24 } 25 } 26 } 27 @keyframes anim { 28 0% { 29 color: blue; 30 } 31 100% { 32 color: green; 33 } 34 } 35 </style> 36 </head> 37 <body> 38 <code>InspectorUtils.getRuleIndex</code> 39 40 <script> 41 "use strict"; 42 43 /** Test for InspectorUtils.getCSSRegisteredProperties */ 44 45 const { Assert } = SpecialPowers.ChromeUtils.importESModule( 46 "resource://testing-common/Assert.sys.mjs" 47 ); 48 const InspectorUtils = SpecialPowers.InspectorUtils; 49 50 const stylesheet = document.styleSheets[1]; 51 const stylesheetRules = stylesheet.cssRules; 52 53 let rule = stylesheetRules[0]; 54 is(rule.name, "--color", "Expected @property rule"); 55 Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [0]); 56 57 rule = stylesheetRules[1]; 58 is(rule.selectorText, "html", "Expected htlm rule"); 59 Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [1]); 60 61 rule = stylesheetRules[1].cssRules[0]; 62 is(rule.selectorText, "&:hover", "Expected nested &:hover rule"); 63 Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [1, 0]); 64 65 rule = stylesheetRules[1].cssRules[1]; 66 is(rule.selectorText, "& body", "Expected nested & body rule"); 67 Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [1, 1]); 68 69 rule = stylesheetRules[1].cssRules[1].cssRules[0]; 70 is(rule.selectorText, "&:focus-visible", "Expected nested &:focus-visible rule"); 71 Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [1, 1, 0]); 72 73 rule = stylesheetRules[2]; 74 is(rule.name, "anim", "Expected @keyframes rule"); 75 Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [2]); 76 77 rule = stylesheetRules[2].cssRules[0]; 78 is(rule.keyText, "0%", "Expected 0% keyframe rule"); 79 Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [2, 0]); 80 81 rule = stylesheetRules[2].cssRules[1]; 82 is(rule.keyText, "100%", "Expected 100% keyframe rule"); 83 Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [2, 1]); 84 85 </script> 86 </pre> 87 </body> 88 </html>