File: test_moz_fieldset.html

package info (click to toggle)
firefox-esr 128.13.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,230,012 kB
  • sloc: cpp: 7,103,971; javascript: 6,088,450; ansic: 3,653,980; python: 1,212,330; xml: 594,604; asm: 420,652; java: 182,969; sh: 71,124; makefile: 20,747; perl: 13,449; objc: 12,399; yacc: 4,583; cs: 3,846; pascal: 2,973; lex: 1,720; ruby: 1,194; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (68 lines) | stat: -rw-r--r-- 2,508 bytes parent folder | download | duplicates (6)
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
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>MozFieldset tests</title>
  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
  <script type="module" src="chrome://global/content/elements/moz-fieldset.mjs"></script>
  <script>
    let html, render, renderTarget;

    add_setup(async function setup() {
      ({ html, render } = await import(
        "chrome://global/content/vendor/lit.all.mjs"
      ));
      renderTarget = document.getElementById("render");
    });

    add_task(async function testMozFieldsetAttributes() {
      render(html`
        <moz-fieldset label="Test label" description="Test description">
          <label><input type="checkbox"> First setting</label>
          <label><input type="checkbox"> Second setting</label>
          <label><input type="checkbox"> Third setting</label>
        </moz-fieldset>
      `, renderTarget);
      // Check initial rendered attributes.
      let fieldset = renderTarget.querySelector("moz-fieldset");
      await fieldset.updateComplete;

      let fieldsetEl = fieldset.shadowRoot.querySelector("fieldset");
      let legend = fieldset.shadowRoot.querySelector("fieldset > legend");
      let description = fieldset.shadowRoot.querySelector("fieldset > #description");

      is(legend.innerText, "Test label", "legend is set");
      ok(legend.classList.contains("heading-medium"), "legend is styled");
      is(description.innerText, "Test description", "description is set");
      ok(description.classList.contains("text-deemphasized"), "description is styled");
      is(
        fieldset.shadowRoot.getElementById(fieldsetEl.getAttribute("aria-describedby")),
        description,
        "description describes fieldset"
      );

      // Changing the attributes should update the DOM.
      fieldset.label = "New label";
      fieldset.description = "New description";
      await fieldset.updateComplete;

      is(legend.innerText, "New label", "legend is set");
      is(description.innerText, "New description", "description is set");

      // Removing the description should remove the describedby association.
      fieldset.description = null;
      await fieldset.updateComplete;

      ok(
        !fieldsetEl.hasAttribute("aria-describedby"),
        "aria-describedby removed when no description"
      );
    });
  </script>
</head>
<body>
  <div id="render">
  </div>
</body>
</html>