| // META: global=window,worker |
| |
| 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"], |
| ["save-data", "on"], |
| ["viewport-width", "100"], |
| ["width", "100"], |
| ["unknown", "doesitmatter"] |
| ]); |
| 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"); |
| }); |
| } |