mirror of
https://github.com/servo/servo.git
synced 2025-06-30 12:03:38 +01:00
76 lines
2.9 KiB
HTML
76 lines
2.9 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Headers have combined (and sorted) values</title>
|
|
<meta name="help" href="https://fetch.spec.whatwg.org/#headers">
|
|
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
var headerSeqCombine = [["single", "singleValue"],
|
|
["double", "doubleValue1"],
|
|
["double", "doubleValue2"],
|
|
["triple", "tripleValue1"],
|
|
["triple", "tripleValue2"],
|
|
["triple", "tripleValue3"]
|
|
];
|
|
var expectedDict = {"single": "singleValue",
|
|
"double": "doubleValue1, doubleValue2",
|
|
"triple": "tripleValue1, tripleValue2, tripleValue3"
|
|
};
|
|
|
|
test(function() {
|
|
var headers = new Headers(headerSeqCombine);
|
|
for (name in expectedDict)
|
|
assert_equals(headers.get(name), expectedDict[name]);
|
|
}, "Create headers using same name for different values");
|
|
|
|
test(function() {
|
|
var headers = new Headers(headerSeqCombine);
|
|
for (name in expectedDict) {
|
|
assert_true(headers.has(name), "name: " + name + " has value(s)");
|
|
headers.delete(name);
|
|
assert_false(headers.has(name), "name: " + name + " has no value(s) anymore");
|
|
}
|
|
}, "Check delete and has methods when using same name for different values");
|
|
|
|
test(function() {
|
|
var headers = new Headers(headerSeqCombine);
|
|
for (name in expectedDict) {
|
|
headers.set(name,"newSingleValue");
|
|
assert_equals(headers.get(name), "newSingleValue", "name: " + name + " has value: newSingleValue");
|
|
}
|
|
}, "Check set methods when called with already used name");
|
|
|
|
test(function() {
|
|
var headers = new Headers(headerSeqCombine);
|
|
for (name in expectedDict) {
|
|
var value = headers.get(name);
|
|
headers.append(name,"newSingleValue");
|
|
assert_equals(headers.get(name), (value + ", " + "newSingleValue"));
|
|
}
|
|
}, "Check append methods when called with already used name");
|
|
|
|
test(() => {
|
|
const headers = new Headers([["1", "a"],["1", "b"]]);
|
|
for(let header of headers) {
|
|
assert_array_equals(header, ["1", "a, b"]);
|
|
}
|
|
}, "Iterate combined values");
|
|
|
|
test(() => {
|
|
const headers = new Headers([["2", "a"], ["1", "b"], ["2", "b"]]),
|
|
expected = [["1", "b"], ["2", "a, b"]];
|
|
let i = 0;
|
|
for(let header of headers) {
|
|
assert_array_equals(header, expected[i]);
|
|
i++;
|
|
}
|
|
assert_equals(i, 2);
|
|
}, "Iterate combined values in sorted order")
|
|
</script>
|
|
</body>
|
|
</html>
|