| <!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> |