| OLD | NEW |
| 1 importScripts('worker-test-helpers.js'); | 1 importScripts('worker-test-helpers.js'); |
| 2 | 2 |
| 3 test(function() { | 3 test(function() { |
| 4 var expectedMap = { | 4 var expectedMap = { |
| 5 'Content-Language': 'ja', | 5 'content-language': 'ja', |
| 6 'Content-Type': 'text/html; charset=UTF-8', | 6 'content-type': 'text/html; charset=UTF-8', |
| 7 'X-ServiceWorker-Test': 'response test field' | 7 'x-serviceworker-test': 'response test field' |
| 8 }; | 8 }; |
| 9 | 9 |
| 10 var headers = new Headers; | 10 var headers = new Headers; |
| 11 Object.keys(expectedMap).forEach(function(key) { | 11 headers.set('Content-Language', 'ja'); |
| 12 headers.set(key, expectedMap[key]); | 12 headers.set('Content-Type', 'text/html; charset=UTF-8'); |
| 13 }); | 13 headers.set('X-ServiceWorker-Test', 'text/html; charset=UTF-8'); |
| 14 | 14 |
| 15 // 'size' | 15 // 'size' |
| 16 assert_equals(headers.size, 3, 'headers.size should match'); | 16 assert_equals(headers.size, 3, 'headers.size should match'); |
| 17 | 17 |
| 18 // 'has()', 'get()' | 18 // 'has()', 'get()' |
| 19 var key = 'Content-Type'; | 19 var key = 'Content-Type'; |
| 20 assert_true(headers.has(key)); | 20 assert_true(headers.has(key)); |
| 21 assert_equals(headers.get(key), expectedMap[key]); | 21 assert_true(headers.has(key.toUpperCase())); |
| 22 assert_equals(headers.get(key), expectedMap[key.toLowerCase()]); |
| 23 assert_equals(headers.get(key.toUpperCase()), expectedMap[key.toLowerCase()]
); |
| 22 assert_equals(headers.get('dummy'), null); | 24 assert_equals(headers.get('dummy'), null); |
| 23 assert_false(headers.has('dummy')); | 25 assert_false(headers.has('dummy')); |
| 24 | 26 |
| 25 // 'delete()' | 27 // 'delete()' |
| 26 var deleteKey = 'Content-Type'; | 28 var deleteKey = 'Content-Type'; |
| 27 headers.delete(deleteKey); | 29 headers.delete(deleteKey); |
| 28 assert_equals(headers.size, 2, 'headers.size should have -1 size'); | 30 assert_equals(headers.size, 2, 'headers.size should have -1 size'); |
| 29 Object.keys(expectedMap).forEach(function(key) { | 31 Object.keys(expectedMap).forEach(function(key) { |
| 30 if (key == deleteKey) | 32 if (key == deleteKey.toLowerCase()) |
| 31 assert_false(headers.has(key)); | 33 assert_false(headers.has(key)); |
| 32 else | 34 else |
| 33 assert_true(headers.has(key)); | 35 assert_true(headers.has(key)); |
| 34 }); | 36 }); |
| 35 | 37 |
| 36 // 'set()' | 38 // 'set()' |
| 37 var testCasesForSet = [ | 39 var testCasesForSet = [ |
| 38 // For a new key/value pair. | 40 // For a new key/value pair. |
| 39 { key: 'Cache-Control', | 41 { key: 'Cache-Control', |
| 40 value: 'max-age=3600', | 42 value: 'max-age=3600', |
| 41 isNewEntry: true }, | 43 isNewEntry: true }, |
| 42 | 44 |
| 43 // For an existing key. | 45 // For an existing key. |
| 44 { key: 'X-ServiceWorker-Test', | 46 { key: 'X-ServiceWorker-Test', |
| 45 value: 'response test field - updated', | 47 value: 'response test field - updated', |
| 46 isUpdate: true }, | 48 isUpdate: true }, |
| 47 | 49 |
| 48 // For setting a numeric value, expecting to see DOMString on getting. | 50 // For setting a numeric value, expecting to see DOMString on getting. |
| 49 { key: 'X-Numeric-Value', | 51 { key: 'X-Numeric-Value', |
| 50 value: 12345, | 52 value: 12345, |
| 51 expectedValue: '12345', | 53 expectedValue: '12345', |
| 52 isNewEntry: true }, | 54 isNewEntry: true }, |
| 53 | 55 |
| 54 // For case-sensitivity test. (FIXME: if we want HeaderMap to | 56 // For case-insensitivity test. |
| 55 // work in an case-insensitive way (as we do for headers in XHR) | |
| 56 // update the test and code) | |
| 57 { key: 'content-language', | 57 { key: 'content-language', |
| 58 value: 'fi', | 58 value: 'fi', |
| 59 isNewEntry: true } | 59 isUpdate: true } |
| 60 ]; | 60 ]; |
| 61 | 61 |
| 62 var expectedHeaderSize = headers.size; | 62 var expectedHeaderSize = headers.size; |
| 63 testCasesForSet.forEach(function(testCase) { | 63 testCasesForSet.forEach(function(testCase) { |
| 64 var key = testCase.key; | 64 var key = testCase.key; |
| 65 var value = testCase.value; | 65 var value = testCase.value; |
| 66 var expectedValue = ('expectedValue' in testCase) ? testCase.expectedVal
ue : testCase.value; | 66 var expectedValue = ('expectedValue' in testCase) ? testCase.expectedVal
ue : testCase.value; |
| 67 expectedHeaderSize = testCase.isNewEntry ? (expectedHeaderSize + 1) : ex
pectedHeaderSize; | 67 expectedHeaderSize = testCase.isNewEntry ? (expectedHeaderSize + 1) : ex
pectedHeaderSize; |
| 68 | 68 |
| 69 headers.set(key, value); | 69 headers.set(key, value); |
| 70 assert_true(headers.has(key)); | 70 assert_true(headers.has(key)); |
| 71 assert_equals(headers.get(key), expectedValue); | 71 assert_equals(headers.get(key), expectedValue); |
| 72 if (testCase.isUpdate) | 72 if (testCase.isUpdate) |
| 73 assert_true(headers.get(key) != expectedMap[key]); | 73 assert_true(headers.get(key) != expectedMap[key.toLowerCase()]); |
| 74 assert_equals(headers.size, expectedHeaderSize); | 74 assert_equals(headers.size, expectedHeaderSize); |
| 75 | 75 |
| 76 // Update expectedMap too for forEach() test below. | 76 // Update expectedMap too for forEach() test below. |
| 77 expectedMap[key] = expectedValue; | 77 expectedMap[key.toLowerCase()] = expectedValue; |
| 78 }); | 78 }); |
| 79 | 79 |
| 80 // 'forEach()' | 80 // 'forEach()' |
| 81 headers.forEach(function(value, key) { | 81 headers.forEach(function(value, key) { |
| 82 assert_true(key != deleteKey); | 82 assert_true(key != deleteKey.toLowerCase()); |
| 83 assert_true(key in expectedMap); | 83 assert_true(key in expectedMap); |
| 84 assert_equals(headers.get(key), expectedMap[key]); | 84 assert_equals(headers.get(key), expectedMap[key]); |
| 85 }); | 85 }); |
| 86 | 86 |
| 87 // 'append()', 'getAll()' | 87 // 'append()', 'getAll()' |
| 88 var allValues = headers.getAll('X-ServiceWorker-Test'); | 88 var allValues = headers.getAll('X-ServiceWorker-Test'); |
| 89 assert_equals(allValues.length, 1); | 89 assert_equals(allValues.length, 1); |
| 90 assert_equals(headers.size, 5); | 90 assert_equals(headers.size, 4); |
| 91 headers.append('X-ServiceWorker-Test', 'response test field - append'); | 91 headers.append('X-SERVICEWORKER-TEST', 'response test field - append'); |
| 92 assert_equals(headers.size, 6, 'headers.size should increase by 1.'); | 92 assert_equals(headers.size, 5, 'headers.size should increase by 1.'); |
| 93 assert_equals(headers.get('X-ServiceWorker-Test'), | 93 assert_equals(headers.get('X-SERVICEWORKER-Test'), |
| 94 'response test field - updated', | 94 'response test field - updated', |
| 95 'the value of the first header added should be returned.'); | 95 'the value of the first header added should be returned.'); |
| 96 allValues = headers.getAll('X-ServiceWorker-Test'); | 96 allValues = headers.getAll('X-SERVICEWorker-TEST'); |
| 97 assert_equals(allValues.length, 2); | 97 assert_equals(allValues.length, 2); |
| 98 assert_equals(allValues[0], 'response test field - updated'); | 98 assert_equals(allValues[0], 'response test field - updated'); |
| 99 assert_equals(allValues[1], 'response test field - append'); | 99 assert_equals(allValues[1], 'response test field - append'); |
| 100 headers.set('X-ServiceWorker-Test', 'response test field - set'); | 100 headers.set('X-SERVICEWorker-Test', 'response test field - set'); |
| 101 assert_equals(headers.size, 5, 'the second header should be deleted'); | 101 assert_equals(headers.size, 4, 'the second header should be deleted'); |
| 102 allValues = headers.getAll('X-ServiceWorker-Test'); | 102 allValues = headers.getAll('X-ServiceWorker-Test'); |
| 103 assert_equals(allValues.length, 1, 'the second header should be deleted'); | 103 assert_equals(allValues.length, 1, 'the second header should be deleted'); |
| 104 assert_equals(allValues[0], 'response test field - set'); | 104 assert_equals(allValues[0], 'response test field - set'); |
| 105 headers.append('X-ServiceWorker-Test', 'response test field - append'); | 105 headers.append('X-ServiceWorker-TEST', 'response test field - append'); |
| 106 assert_equals(headers.size, 6, 'headers.size should increase by 1.') | 106 assert_equals(headers.size, 5, 'headers.size should increase by 1.') |
| 107 headers.delete('X-ServiceWorker-Test'); | 107 headers.delete('X-ServiceWORKER-Test'); |
| 108 assert_equals(headers.size, 4, 'two headers should be deleted.') | 108 assert_equals(headers.size, 3, 'two headers should be deleted.') |
| 109 | 109 |
| 110 // new Headers with sequence<sequence<ByteString>> | 110 // new Headers with sequence<sequence<ByteString>> |
| 111 headers = new Headers([['a', 'b'], ['c', 'd'], ['c', 'e']]); | 111 headers = new Headers([['a', 'b'], ['c', 'd'], ['c', 'e']]); |
| 112 assert_equals(headers.size, 3, 'headers.size should match'); | 112 assert_equals(headers.size, 3, 'headers.size should match'); |
| 113 assert_equals(headers.get('a'), 'b'); | 113 assert_equals(headers.get('a'), 'b'); |
| 114 assert_equals(headers.get('c'), 'd'); | 114 assert_equals(headers.get('c'), 'd'); |
| 115 assert_equals(headers.getAll('c')[0], 'd'); | 115 assert_equals(headers.getAll('c')[0], 'd'); |
| 116 assert_equals(headers.getAll('c')[1], 'e'); | 116 assert_equals(headers.getAll('c')[1], 'e'); |
| 117 | 117 |
| 118 // new Headers with Headers | 118 // new Headers with Headers |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 headers.set('a', 'b'); | 201 headers.set('a', 'b'); |
| 202 headers.forEach(function() { saw_that = this; }, that); | 202 headers.forEach(function() { saw_that = this; }, that); |
| 203 assert_equals(saw_that, that, 'Passed thisArg should match'); | 203 assert_equals(saw_that, that, 'Passed thisArg should match'); |
| 204 | 204 |
| 205 headers.forEach(function() { 'use strict'; saw_that = this; }, 'abc'); | 205 headers.forEach(function() { 'use strict'; saw_that = this; }, 'abc'); |
| 206 assert_equals(saw_that, 'abc', 'Passed non-object thisArg should match'); | 206 assert_equals(saw_that, 'abc', 'Passed non-object thisArg should match'); |
| 207 | 207 |
| 208 headers.forEach(function() { saw_that = this; }, null); | 208 headers.forEach(function() { saw_that = this; }, null); |
| 209 assert_equals(saw_that, self, 'Passed null thisArg should be replaced with g
lobal object'); | 209 assert_equals(saw_that, self, 'Passed null thisArg should be replaced with g
lobal object'); |
| 210 }, 'Headers in ServiceWorkerGlobalScope'); | 210 }, 'Headers in ServiceWorkerGlobalScope'); |
| OLD | NEW |