File: headers-no-cors.window.js

package info (click to toggle)
firefox-esr 78.15.0esr-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 3,301,156 kB
  • sloc: cpp: 5,665,905; javascript: 4,798,386; ansic: 2,878,233; python: 977,004; asm: 270,347; xml: 181,456; java: 111,756; sh: 72,926; makefile: 21,819; perl: 13,380; cs: 4,725; yacc: 4,565; objc: 3,026; pascal: 1,787; lex: 1,720; ada: 1,681; exp: 505; php: 436; lisp: 260; awk: 152; ruby: 103; csh: 80; sed: 53; sql: 45
file content (53 lines) | stat: -rw-r--r-- 1,879 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
promise_test(() => fetch("../cors/resources/not-cors-safelisted.json").then(res => res.json().then(runTests)), "Loading data…");

const longValue = "s".repeat(127);

[
  {
    "headers": ["accept", "accept-language", "content-language"],
    "values": [longValue, "", longValue]
  },
  {
    "headers": ["accept", "accept-language", "content-language"],
    "values": ["", longValue]
  },
  {
    "headers": ["content-type"],
    "values": ["text/plain;" + "s".repeat(116), "text/plain"]
  }
].forEach(testItem => {
  testItem.headers.forEach(header => {
    test(() => {
      const noCorsHeaders = new Request("about:blank", { mode: "no-cors" }).headers;
      testItem.values.forEach((value) => {
        noCorsHeaders.append(header, value);
        assert_equals(noCorsHeaders.get(header), testItem.values[0], '1');
      });
      noCorsHeaders.set(header, testItem.values.join(", "));
      assert_equals(noCorsHeaders.get(header), testItem.values[0], '2');
      noCorsHeaders.delete(header);
      assert_false(noCorsHeaders.has(header));
    }, "\"no-cors\" Headers object cannot have " + header + " set to " + testItem.values.join(", "));
  });
});

function runTests(testArray) {
  testArray = testArray.concat([
    ["dpr", "2"],
    ["downlink", "1"],
    ["save-data", "on"],
    ["viewport-width", "100"],
    ["width", "100"],
    ["unknown", "doesitmatter"]
  ]);
  testArray.forEach(testItem => {
    const [headerName, headerValue] = testItem;
    test(() => {
      const noCorsHeaders = new Request("about:blank", { mode: "no-cors" }).headers;
      noCorsHeaders.append(headerName, headerValue);
      assert_false(noCorsHeaders.has(headerName));
      noCorsHeaders.set(headerName, headerValue);
      assert_false(noCorsHeaders.has(headerName));
    }, "\"no-cors\" Headers object cannot have " + headerName + "/" + headerValue + " as header");
  });
}