File: display-values.tentative.html

package info (click to toggle)
firefox 144.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,637,504 kB
  • sloc: cpp: 7,576,692; javascript: 6,430,831; ansic: 3,748,119; python: 1,398,978; xml: 628,810; asm: 438,679; java: 186,194; sh: 63,212; makefile: 19,159; objc: 13,086; perl: 12,986; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 53; csh: 10
file content (76 lines) | stat: -rw-r--r-- 2,697 bytes parent folder | download | duplicates (4)
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
<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Permission Element: display style validation</title>
    <link
      rel="help"
      href="https://github.com/WICG/PEPC/blob/main/explainer.md#locking-the-pepc-style"
    />
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
  <body>
    <script>
      function createPermissionElementWithStyle(displayValue, type) {
        const element = document.createElement("permission");

        element.setAttribute("type", type);
        element.style.display = displayValue;
        document.body.appendChild(element);
        return element;
      }

      const testCases = [
        ["block", ""],
        ["inline-block", ""],
        ["flex", ""],
        ["inline-flex", ""],
        ["inline", "style_invalid"],
        ["contents", "style_invalid"],
        ["inline-table", "style_invalid"],
        ["list-item", "style_invalid"],
        ["ruby", "style_invalid"],
        ["ruby-text", "style_invalid"],
        ["table", "style_invalid"],
        ["table-caption", "style_invalid"],
        ["table-cell", "style_invalid"],
        ["table-column", "style_invalid"],
        ["table-column-group", "style_invalid"],
        ["table-footer-group", "style_invalid"],
        ["table-header-group", "style_invalid"],
        ["table-row", "style_invalid"],
        ["table-row-group", "style_invalid"],
      ];

      const permissionTypes = ["camera", "microphone", "camera microphone", "geolocation"];

      testCases.forEach((testCase, index) =>
        testCase.push(permissionTypes[index % permissionTypes.length]),
      );
      async_test((t) => {
        let completedTests = 0;

        testCases.forEach(([displayValue, expectedInvalidReason, type]) => {
          const element = createPermissionElementWithStyle(displayValue, type);
          element.onvalidationstatuschange = t.step_func(() => {
            // These two invalid reasons are expected when the permission element was just created.
            if (
              element.invalidReason == "unsuccessful_registration" ||
              element.invalidReason == "intersection_changed"
            ) {
              return;
            }
            assert_equals(
              element.invalidReason,
              expectedInvalidReason,
              `display: ${displayValue} should be ${expectedInvalidReason === "" ? "valid" : "invalid"}`,
            );
            element.remove();
            if (++completedTests === testCases.length) t.done();
          });
        });
      }, "Permission element display style validation");
    </script>
  </body>
</html>