// META: title=Headers normalize values // META: global=window,worker "use strict"; const expectations = { "name1": [" space ", "space"], "name2": ["\ttab\t", "tab"], "name3": [" spaceAndTab\t", "spaceAndTab"], "name4": ["\r\n newLine", "newLine"], //obs-fold cases "name5": ["newLine\r\n ", "newLine"], "name6": ["\r\n\tnewLine", "newLine"], "name7": ["\t\f\tnewLine\n", "\f\tnewLine"], "name8": ["newLine\xa0", "newLine\xa0"], // \xa0 == non breaking space }; test(function () { const headerDict = Object.fromEntries( Object.entries(expectations).map(([name, [actual]]) => [name, actual]), ); var headers = new Headers(headerDict); for (const name in expectations) { const expected = expectations[name][1]; assert_equals( headers.get(name), expected, "name: " + name + " has normalized value: " + expected, ); } }, "Create headers with not normalized values"); test(function () { var headers = new Headers(); for (const name in expectations) { headers.append(name, expectations[name][0]); const expected = expectations[name][1]; assert_equals( headers.get(name), expected, "name: " + name + " has value: " + expected, ); } }, "Check append method with not normalized values"); test(function () { var headers = new Headers(); for (const name in expectations) { headers.set(name, expectations[name][0]); const expected = expectations[name][1]; assert_equals( headers.get(name), expected, "name: " + name + " has value: " + expected, ); } }, "Check set method with not normalized values");