File: test_getRuleIndex.html

package info (click to toggle)
firefox 141.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,550,616 kB
  • sloc: cpp: 7,426,508; javascript: 6,367,238; ansic: 3,707,354; python: 1,368,984; xml: 623,983; asm: 426,916; java: 184,324; sh: 64,488; makefile: 19,203; objc: 13,059; perl: 12,955; yacc: 4,583; cs: 3,846; pascal: 3,352; lex: 1,720; ruby: 1,071; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (88 lines) | stat: -rw-r--r-- 2,320 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<!DOCTYPE HTML>
<html>
<head>
  <title>Test InspectorUtils.getRuleIndex</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <style>
    @property --color {
      syntax: "*";
      inherits: false;
    }
    html {
      background: gold;

      &:hover {
        background: yellow;
      }

      & body {
        color: tomato;

        &:focus-visible {
          outline: 1px solid cyan;
        }
      }
    }
    @keyframes anim {
      0% {
        color: blue;
      }
      100% {
        color: green;
      }
    }
  </style>
</head>
<body>
<code>InspectorUtils.getRuleIndex</code>

<script>
"use strict";

/** Test for InspectorUtils.getCSSRegisteredProperties **/

const { Assert } = SpecialPowers.ChromeUtils.importESModule(
  "resource://testing-common/Assert.sys.mjs"
);
const InspectorUtils = SpecialPowers.InspectorUtils;

const stylesheet = document.styleSheets[1];
const stylesheetRules = stylesheet.cssRules;

let rule = stylesheetRules[0];
is(rule.name, "--color", "Expected @property rule");
Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [0]);

rule = stylesheetRules[1];
is(rule.selectorText, "html", "Expected htlm rule");
Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [1]);

rule = stylesheetRules[1].cssRules[0];
is(rule.selectorText, "&:hover", "Expected nested &:hover rule");
Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [1, 0]);

rule = stylesheetRules[1].cssRules[1];
is(rule.selectorText, "& body", "Expected nested & body rule");
Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [1, 1]);

rule = stylesheetRules[1].cssRules[1].cssRules[0];
is(rule.selectorText, "&:focus-visible", "Expected nested &:focus-visible rule");
Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [1, 1, 0]);

rule = stylesheetRules[2];
is(rule.name, "anim", "Expected @keyframes rule");
Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [2]);

rule = stylesheetRules[2].cssRules[0];
is(rule.keyText, "0%", "Expected 0% keyframe rule");
Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [2, 0]);

rule = stylesheetRules[2].cssRules[1];
is(rule.keyText, "100%", "Expected 100% keyframe rule");
Assert.deepEqual(InspectorUtils.getRuleIndex(rule), [2, 1]);

</script>
</pre>
</body>
</html>