summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fetch/api/headers/headers-normalize.any.js
blob: 68cf5b85f3acb7fcfe6275ffa0c4d37843ac2935 (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
// META: title=Headers normalize values
// META: global=window,worker

"use strict";

const expectations = {
  "name1": [" space ", "space"],
  "name2": ["\ttab\t", "tab"],
  "name3": [" spaceAndTab\t", "spaceAndTab"],
  "name4": ["\r\n newLine", "newLine"], //obs-fold cases
  "name5": ["newLine\r\n ", "newLine"],
  "name6": ["\r\n\tnewLine", "newLine"],
  "name7": ["\t\f\tnewLine\n", "\f\tnewLine"],
  "name8": ["newLine\xa0", "newLine\xa0"], // \xa0 == non breaking space
};

test(function () {
  const headerDict = Object.fromEntries(
    Object.entries(expectations).map(([name, [actual]]) => [name, actual]),
  );
  var headers = new Headers(headerDict);
  for (const name in expectations) {
    const expected = expectations[name][1];
    assert_equals(
      headers.get(name),
      expected,
      "name: " + name + " has normalized value: " + expected,
    );
  }
}, "Create headers with not normalized values");

test(function () {
  var headers = new Headers();
  for (const name in expectations) {
    headers.append(name, expectations[name][0]);
    const expected = expectations[name][1];
    assert_equals(
      headers.get(name),
      expected,
      "name: " + name + " has value: " + expected,
    );
  }
}, "Check append method with not normalized values");

test(function () {
  var headers = new Headers();
  for (const name in expectations) {
    headers.set(name, expectations[name][0]);
    const expected = expectations[name][1];
    assert_equals(
      headers.get(name),
      expected,
      "name: " + name + " has value: " + expected,
    );
  }
}, "Check set method with not normalized values");