headers-casing.any.js (2033B)
1 // META: title=Headers case management 2 // META: global=window,worker 3 4 "use strict"; 5 6 var headerDictCase = {"UPPERCASE": "value1", 7 "lowercase": "value2", 8 "mixedCase": "value3", 9 "Content-TYPE": "value4" 10 }; 11 12 function checkHeadersCase(originalName, headersToCheck, expectedDict) { 13 var lowCaseName = originalName.toLowerCase(); 14 var upCaseName = originalName.toUpperCase(); 15 var expectedValue = expectedDict[originalName]; 16 assert_equals(headersToCheck.get(originalName), expectedValue, 17 "name: " + originalName + " has value: " + expectedValue); 18 assert_equals(headersToCheck.get(lowCaseName), expectedValue, 19 "name: " + lowCaseName + " has value: " + expectedValue); 20 assert_equals(headersToCheck.get(upCaseName), expectedValue, 21 "name: " + upCaseName + " has value: " + expectedValue); 22 } 23 24 test(function() { 25 var headers = new Headers(headerDictCase); 26 for (const name in headerDictCase) 27 checkHeadersCase(name, headers, headerDictCase) 28 }, "Create headers, names use characters with different case"); 29 30 test(function() { 31 var headers = new Headers(); 32 for (const name in headerDictCase) { 33 headers.append(name, headerDictCase[name]); 34 checkHeadersCase(name, headers, headerDictCase); 35 } 36 }, "Check append method, names use characters with different case"); 37 38 test(function() { 39 var headers = new Headers(); 40 for (const name in headerDictCase) { 41 headers.set(name, headerDictCase[name]); 42 checkHeadersCase(name, headers, headerDictCase); 43 } 44 }, "Check set method, names use characters with different case"); 45 46 test(function() { 47 var headers = new Headers(); 48 for (const name in headerDictCase) 49 headers.set(name, headerDictCase[name]); 50 for (const name in headerDictCase) 51 headers.delete(name.toLowerCase()); 52 for (const name in headerDictCase) 53 assert_false(headers.has(name), "header " + name + " should have been deleted"); 54 }, "Check delete method, names use characters with different case");