tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

headers-combine.any.js (2299B)


      1 // META: title=Headers have combined (and sorted) values
      2 // META: global=window,worker
      3 
      4 "use strict";
      5 
      6 var headerSeqCombine = [["single", "singleValue"],
      7                        ["double", "doubleValue1"],
      8                        ["double", "doubleValue2"],
      9                        ["triple", "tripleValue1"],
     10                        ["triple", "tripleValue2"],
     11                        ["triple", "tripleValue3"]
     12 ];
     13 var expectedDict = {"single": "singleValue",
     14                    "double": "doubleValue1, doubleValue2",
     15                    "triple": "tripleValue1, tripleValue2, tripleValue3"
     16 };
     17 
     18 test(function() {
     19  var headers = new Headers(headerSeqCombine);
     20  for (const name in expectedDict)
     21    assert_equals(headers.get(name), expectedDict[name]);
     22 }, "Create headers using same name for different values");
     23 
     24 test(function() {
     25  var headers = new Headers(headerSeqCombine);
     26  for (const name in expectedDict) {
     27    assert_true(headers.has(name), "name: " + name + " has value(s)");
     28    headers.delete(name);
     29    assert_false(headers.has(name), "name: " + name + " has no value(s) anymore");
     30  }
     31 }, "Check delete and has methods when using same name for different values");
     32 
     33 test(function() {
     34  var headers = new Headers(headerSeqCombine);
     35  for (const name in expectedDict) {
     36    headers.set(name,"newSingleValue");
     37    assert_equals(headers.get(name), "newSingleValue", "name: " + name + " has value: newSingleValue");
     38  }
     39 }, "Check set methods when called with already used name");
     40 
     41 test(function() {
     42  var headers = new Headers(headerSeqCombine);
     43  for (const name in expectedDict) {
     44    var value = headers.get(name);
     45    headers.append(name,"newSingleValue");
     46    assert_equals(headers.get(name), (value + ", " + "newSingleValue"));
     47  }
     48 }, "Check append methods when called with already used name");
     49 
     50 test(() => {
     51  const headers = new Headers([["1", "a"],["1", "b"]]);
     52  for(let header of headers) {
     53    assert_array_equals(header, ["1", "a, b"]);
     54  }
     55 }, "Iterate combined values");
     56 
     57 test(() => {
     58  const headers = new Headers([["2", "a"], ["1", "b"], ["2", "b"]]),
     59        expected = [["1", "b"], ["2", "a, b"]];
     60  let i = 0;
     61  for(let header of headers) {
     62    assert_array_equals(header, expected[i]);
     63    i++;
     64  }
     65  assert_equals(i, 2);
     66 }, "Iterate combined values in sorted order")