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 }