summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/selectors/case-sensitivity/values.window.js
blob: 1973398bff89b62e8bd644fe8a1e5f35bf5c6ed7 (plain)
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
89
90
91
// https://html.spec.whatwg.org/#case-sensitivity-of-selectors
[
  "accept",
  "accept-charset",
  "align",
  "alink",
  "axis",
  "bgcolor",
  "charset",
  "checked",
  "clear",
  "codetype",
  "color",
  "compact",
  "declare",
  "defer",
  "dir",
  "direction",
  "disabled",
  "enctype",
  "face",
  "frame",
  "hreflang",
  "http-equiv",
  "lang",
  "language",
  "link",
  "media",
  "method",
  "multiple",
  "nohref",
  "noresize",
  "noshade",
  "nowrap",
  "readonly",
  "rel",
  "rev",
  "rules",
  "scope",
  "scrolling",
  "selected",
  "shape",
  "target",
  "text",
  "type",
  "valign",
  "valuetype",
  "vlink",
].forEach(attributeName => {
  const xmlDocument = new Document();
  const htmlDocument = document;
  [
    {
      input: xmlDocument.createElementNS("http://www.w3.org/1999/xhtml", "a"),
      expected: false,
      title: "<html:a> in XML",
    },
    {
      input: xmlDocument.createElementNS("http://www.w3.org/1999/xhtml", "unknown"),
      expected: false,
      title: "<html:unknown> in XML",
    },
    {
      input: xmlDocument.createElementNS("", "unknown"),
      expected: false,
      title: "<:unknown> in XML"
    },
    {
      input: htmlDocument.createElementNS("http://www.w3.org/1999/xhtml", "a"),
      expected: true,
      title: "<html:a> in HTML",
    },
    {
      input: htmlDocument.createElementNS("http://www.w3.org/1999/xhtml", "unknown"),
      expected: true,
      title: "<html:unknown> in HTML",
    },
    {
      input: htmlDocument.createElementNS("", "unknown"),
      expected: false,
      title: "<:unknown> in HTML"
    },
  ].forEach(({ input, expected, title }) => {
    test(t => {
      t.add_cleanup(() => input.removeAttribute(attributeName));
      input.setAttribute(attributeName, "HEYÏ");
      assert_equals(input.matches(`[${attributeName}^=hey]`), expected, `^=hey`);
      assert_false(input.matches(`[${attributeName}^=heyi]`));
    }, `${attributeName}'s value is properly ASCII-case-insensitive for ${title}`);
  });
});