promise_test(() => fetch("../cors/resources/not-cors-safelisted.json").then(res => res.json().then(runTests)), "Loading data…");

const longValue = "s".repeat(127);

[
  {
    "headers": ["accept", "accept-language", "content-language"],
    "values": [longValue, "", longValue]
  },
  {
    "headers": ["accept", "accept-language", "content-language"],
    "values": ["", longValue]
  },
  {
    "headers": ["content-type"],
    "values": ["text/plain;" + "s".repeat(116), "text/plain"]
  }
].forEach(testItem => {
  testItem.headers.forEach(header => {
    test(() => {
      const noCorsHeaders = new Request("about:blank", { mode: "no-cors" }).headers;
      testItem.values.forEach((value) => {
        noCorsHeaders.append(header, value);
        assert_equals(noCorsHeaders.get(header), testItem.values[0], '1');
      });
      noCorsHeaders.set(header, testItem.values.join(", "));
      assert_equals(noCorsHeaders.get(header), testItem.values[0], '2');
      noCorsHeaders.delete(header);
      assert_false(noCorsHeaders.has(header));
    }, "\"no-cors\" Headers object cannot have " + header + " set to " + testItem.values.join(", "));
  });
});

function runTests(testArray) {
  testArray = testArray.concat([
    ["dpr", "2"],
    ["downlink", "1"], // https://wicg.github.io/netinfo/
    ["save-data", "on"],
    ["viewport-width", "100"],
    ["width", "100"]
  ]);
  testArray.forEach(testItem => {
    const [headerName, headerValue] = testItem;
    test(() => {
      const noCorsHeaders = new Request("about:blank", { mode: "no-cors" }).headers;
      noCorsHeaders.append(headerName, headerValue);
      assert_false(noCorsHeaders.has(headerName));
      noCorsHeaders.set(headerName, headerValue);
      assert_false(noCorsHeaders.has(headerName));
    }, "\"no-cors\" Headers object cannot have " + headerName + "/" + headerValue + " as header");
  });
}
