tor-browser

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

headers-no-cors.any.js (1967B)


      1 // META: global=window,worker
      2 
      3 "use strict";
      4 
      5 promise_test(() => fetch("../cors/resources/not-cors-safelisted.json").then(res => res.json().then(runTests)), "Loading data…");
      6 
      7 const longValue = "s".repeat(127);
      8 
      9 [
     10  {
     11    "headers": ["accept", "accept-language", "content-language"],
     12    "values": [longValue, "", longValue]
     13  },
     14  {
     15    "headers": ["accept", "accept-language", "content-language"],
     16    "values": ["", longValue]
     17  },
     18  {
     19    "headers": ["content-type"],
     20    "values": ["text/plain;" + "s".repeat(116), "text/plain"]
     21  }
     22 ].forEach(testItem => {
     23  testItem.headers.forEach(header => {
     24    test(() => {
     25      const noCorsHeaders = new Request("about:blank", { mode: "no-cors" }).headers;
     26      testItem.values.forEach((value) => {
     27        noCorsHeaders.append(header, value);
     28        assert_equals(noCorsHeaders.get(header), testItem.values[0], '1');
     29      });
     30      noCorsHeaders.set(header, testItem.values.join(", "));
     31      assert_equals(noCorsHeaders.get(header), testItem.values[0], '2');
     32      noCorsHeaders.delete(header);
     33      assert_false(noCorsHeaders.has(header));
     34    }, "\"no-cors\" Headers object cannot have " + header + " set to " + testItem.values.join(", "));
     35  });
     36 });
     37 
     38 function runTests(testArray) {
     39  testArray = testArray.concat([
     40    ["dpr", "2"],
     41    ["rtt", "1.0"],
     42    ["downlink", "-1.0"],
     43    ["ect", "6g"],
     44    ["save-data", "on"],
     45    ["viewport-width", "100"],
     46    ["width", "100"],
     47    ["unknown", "doesitmatter"]
     48  ]);
     49  testArray.forEach(testItem => {
     50    const [headerName, headerValue] = testItem;
     51    test(() => {
     52      const noCorsHeaders = new Request("about:blank", { mode: "no-cors" }).headers;
     53      noCorsHeaders.append(headerName, headerValue);
     54      assert_false(noCorsHeaders.has(headerName));
     55      noCorsHeaders.set(headerName, headerValue);
     56      assert_false(noCorsHeaders.has(headerName));
     57    }, "\"no-cors\" Headers object cannot have " + headerName + "/" + headerValue + " as header");
     58  });
     59 }