File: attributes.sub.html

package info (click to toggle)
firefox 145.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,653,528 kB
  • sloc: cpp: 7,594,999; javascript: 6,459,658; ansic: 3,752,909; python: 1,403,455; xml: 629,809; asm: 438,679; java: 186,421; sh: 67,287; makefile: 19,169; objc: 13,086; perl: 12,982; 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: 54; csh: 10
file content (67 lines) | stat: -rw-r--r-- 2,602 bytes parent folder | download | duplicates (30)
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
<!doctype html>
<meta charset={{GET[encoding]}}> <!-- ends up as <meta charset> by default which is windows-1252 -->
<meta name=variant content="?encoding=windows-1252">
<meta name=variant content="?encoding=x-cp1251">
<meta name=variant content="?encoding=utf8">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<link rel=help href=https://html.spec.whatwg.org/multipage/rendering.html#the-page>
<link rel=help href=https://html.spec.whatwg.org/multipage/rendering.html#tables-2>
<link rel=help href=https://html.spec.whatwg.org/multipage/#reflecting-content-attributes-in-idl-attributes>
<div id=log></div>
<script>
function expected(encoding) {
  return "?" + {
    "UTF-8": "%C3%BF",
    "windows-1251": "%26%23255%3B",
    "windows-1252": "%FF"
  }[encoding];
}

function assert_ends_with(input, endsWith) {
  assert_true(input.endsWith(endsWith), input + " did not end with " + endsWith);
}

"body table thead tbody tfoot tr td th".split(" ").forEach(localName => {
  test(t => {
    const elm = document.createElement(localName);
    document.body.appendChild(elm);
    t.add_cleanup(() => { document.body.removeChild(elm); });
    elm.setAttribute("background", "?\u00FF");
    assert_ends_with(getComputedStyle(elm).backgroundImage, expected(document.characterSet) + "\")");
  }, "getComputedStyle <" + localName + " background>");
});

function test_url_reflecting(localName, attr, idlAttr) {
  idlAttr = idlAttr || attr;
  test(() => {
    let input = "?\u00FF";
    const elm = document.createElement(localName);
    assert_true(idlAttr in elm, idlAttr + " is not supported");
    elm.setAttribute(attr, input);
    assert_ends_with(elm[idlAttr], expected(document.characterSet));
  }, "Getting <" + localName + ">." + idlAttr);
}

("iframe src, a href, area href, base href, link href, img src, embed src, object data, " +
 "track src, video src, audio src, input src, form action, input formaction formAction, " +
 "button formaction formAction, script src").split(", ").forEach(str => {
  const arr = str.split(" ");
  test_url_reflecting(arr[0], arr[1], arr[2]);
});

function test_string_reflecting(localName, attr) {
  test(() => {
    let input = "?\u00FF ?\u00FF";
    const elm = document.createElement(localName);
    assert_true(attr in elm, attr + " is not supported");
    elm.setAttribute(attr, input);
    assert_equals(elm[attr], input);
  }, "Getting <" + localName + ">." + attr);
}

"a ping, area ping".split(", ").forEach(str => {
  const arr = str.split(" ");
  test_string_reflecting(arr[0], arr[1]);
});
</script>