Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: LayoutTests/http/tests/serviceworker/resources/headers-worker.js

Issue 435453002: [ServiceWorker] Update formatting for tests. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 importScripts('worker-testharness.js'); 1 importScripts('worker-testharness.js');
2 2
3 test(function() { 3 test(function() {
4 function size(headers) { 4 function size(headers) {
5 var count = 0; 5 var count = 0;
6 for (var header of headers) { 6 for (var header of headers) {
7 ++count; 7 ++count;
8 } 8 }
9 return count; 9 return count;
10 } 10 }
11 11
12 var expectedMap = { 12 var expectedMap = {
13 'content-language': 'ja', 13 'content-language': 'ja',
14 'content-type': 'text/html; charset=UTF-8', 14 'content-type': 'text/html; charset=UTF-8',
15 'x-serviceworker-test': 'response test field' 15 'x-serviceworker-test': 'response test field'
16 }; 16 };
17 17
18 var headers = new Headers; 18 var headers = new Headers;
19 headers.set('Content-Language', 'ja'); 19 headers.set('Content-Language', 'ja');
20 headers.set('Content-Type', 'text/html; charset=UTF-8'); 20 headers.set('Content-Type', 'text/html; charset=UTF-8');
21 headers.set('X-ServiceWorker-Test', 'text/html; charset=UTF-8'); 21 headers.set('X-ServiceWorker-Test', 'text/html; charset=UTF-8');
22 22
23 assert_equals(size(headers), 3, 'headers size should match'); 23 assert_equals(size(headers), 3, 'headers size should match');
24 24
25 // 'has()', 'get()' 25 // 'has()', 'get()'
26 var key = 'Content-Type'; 26 var key = 'Content-Type';
27 assert_true(headers.has(key)); 27 assert_true(headers.has(key));
28 assert_true(headers.has(key.toUpperCase())); 28 assert_true(headers.has(key.toUpperCase()));
29 assert_equals(headers.get(key), expectedMap[key.toLowerCase()]); 29 assert_equals(headers.get(key), expectedMap[key.toLowerCase()]);
30 assert_equals(headers.get(key.toUpperCase()), expectedMap[key.toLowerCase()] ); 30 assert_equals(headers.get(key.toUpperCase()),
31 expectedMap[key.toLowerCase()]);
31 assert_equals(headers.get('dummy'), null); 32 assert_equals(headers.get('dummy'), null);
32 assert_false(headers.has('dummy')); 33 assert_false(headers.has('dummy'));
33 34
34 // 'delete()' 35 // 'delete()'
35 var deleteKey = 'Content-Type'; 36 var deleteKey = 'Content-Type';
36 headers.delete(deleteKey); 37 headers.delete(deleteKey);
37 assert_equals(size(headers), 2, 'headers size should have -1 size'); 38 assert_equals(size(headers), 2, 'headers size should have -1 size');
38 Object.keys(expectedMap).forEach(function(key) { 39 Object.keys(expectedMap).forEach(function(key) {
39 if (key == deleteKey.toLowerCase()) 40 if (key == deleteKey.toLowerCase())
40 assert_false(headers.has(key)); 41 assert_false(headers.has(key));
41 else 42 else
42 assert_true(headers.has(key)); 43 assert_true(headers.has(key));
43 }); 44 });
44 45
45 // 'set()' 46 // 'set()'
46 var testCasesForSet = [ 47 var testCasesForSet = [
47 // For a new key/value pair. 48 // For a new key/value pair.
48 { key: 'Cache-Control', 49 { key: 'Cache-Control',
49 value: 'max-age=3600', 50 value: 'max-age=3600',
50 isNewEntry: true }, 51 isNewEntry: true },
51 52
52 // For an existing key. 53 // For an existing key.
53 { key: 'X-ServiceWorker-Test', 54 { key: 'X-ServiceWorker-Test',
54 value: 'response test field - updated', 55 value: 'response test field - updated',
55 isUpdate: true }, 56 isUpdate: true },
56 57
57 // For setting a numeric value, expecting to see DOMString on getting. 58 // For setting a numeric value, expecting to see DOMString on getting.
58 { key: 'X-Numeric-Value', 59 { key: 'X-Numeric-Value',
59 value: 12345, 60 value: 12345,
60 expectedValue: '12345', 61 expectedValue: '12345',
61 isNewEntry: true }, 62 isNewEntry: true },
62 63
63 // For case-insensitivity test. 64 // For case-insensitivity test.
64 { key: 'content-language', 65 { key: 'content-language',
65 value: 'fi', 66 value: 'fi',
66 isUpdate: true } 67 isUpdate: true }
67 ]; 68 ];
68 69
69 var expectedHeaderSize = size(headers); 70 var expectedHeaderSize = size(headers);
70 testCasesForSet.forEach(function(testCase) { 71 testCasesForSet.forEach(function(testCase) {
71 var key = testCase.key; 72 var key = testCase.key;
72 var value = testCase.value; 73 var value = testCase.value;
73 var expectedValue = ('expectedValue' in testCase) ? testCase.expectedVal ue : testCase.value; 74 var expectedValue = ('expectedValue' in testCase) ?
74 expectedHeaderSize = testCase.isNewEntry ? (expectedHeaderSize + 1) : ex pectedHeaderSize; 75 testCase.expectedValue : testCase.value;
76 expectedHeaderSize = testCase.isNewEntry ?
77 (expectedHeaderSize + 1) : expectedHeaderSize;
75 78
76 headers.set(key, value); 79 headers.set(key, value);
77 assert_true(headers.has(key)); 80 assert_true(headers.has(key));
78 assert_equals(headers.get(key), expectedValue); 81 assert_equals(headers.get(key), expectedValue);
79 if (testCase.isUpdate) 82 if (testCase.isUpdate)
80 assert_true(headers.get(key) != expectedMap[key.toLowerCase()]); 83 assert_true(headers.get(key) != expectedMap[key.toLowerCase()]);
81 assert_equals(size(headers), expectedHeaderSize); 84 assert_equals(size(headers), expectedHeaderSize);
82 85
83 // Update expectedMap too for forEach() test below. 86 // Update expectedMap too for forEach() test below.
84 expectedMap[key.toLowerCase()] = expectedValue; 87 expectedMap[key.toLowerCase()] = expectedValue;
85 }); 88 });
86 89
87 // '[Symbol.iterator]()' 90 // '[Symbol.iterator]()'
88 for (var header of headers) { 91 for (var header of headers) {
89 var key = header[0], value = header[1]; 92 var key = header[0], value = header[1];
90 assert_true(key != deleteKey.toLowerCase()); 93 assert_true(key != deleteKey.toLowerCase());
91 assert_true(key in expectedMap); 94 assert_true(key in expectedMap);
92 assert_equals(headers.get(key), expectedMap[key]); 95 assert_equals(headers.get(key), expectedMap[key]);
93 } 96 }
94 97
95 // 'append()', 'getAll()' 98 // 'append()', 'getAll()'
96 var allValues = headers.getAll('X-ServiceWorker-Test'); 99 var allValues = headers.getAll('X-ServiceWorker-Test');
97 assert_equals(allValues.length, 1); 100 assert_equals(allValues.length, 1);
98 assert_equals(size(headers), 4); 101 assert_equals(size(headers), 4);
99 headers.append('X-SERVICEWORKER-TEST', 'response test field - append'); 102 headers.append('X-SERVICEWORKER-TEST', 'response test field - append');
100 assert_equals(size(headers), 5, 'headers size should increase by 1.'); 103 assert_equals(size(headers), 5, 'headers size should increase by 1.');
101 assert_equals(headers.get('X-SERVICEWORKER-Test'), 104 assert_equals(headers.get('X-SERVICEWORKER-Test'),
102 'response test field - updated', 105 'response test field - updated',
103 'the value of the first header added should be returned.'); 106 'the value of the first header added should be returned.');
104 allValues = headers.getAll('X-SERVICEWorker-TEST'); 107 allValues = headers.getAll('X-SERVICEWorker-TEST');
105 assert_equals(allValues.length, 2); 108 assert_equals(allValues.length, 2);
106 assert_equals(allValues[0], 'response test field - updated'); 109 assert_equals(allValues[0], 'response test field - updated');
107 assert_equals(allValues[1], 'response test field - append'); 110 assert_equals(allValues[1], 'response test field - append');
108 headers.set('X-SERVICEWorker-Test', 'response test field - set'); 111 headers.set('X-SERVICEWorker-Test', 'response test field - set');
109 assert_equals(size(headers), 4, 'the second header should be deleted'); 112 assert_equals(size(headers), 4, 'the second header should be deleted');
110 allValues = headers.getAll('X-ServiceWorker-Test'); 113 allValues = headers.getAll('X-ServiceWorker-Test');
111 assert_equals(allValues.length, 1, 'the second header should be deleted'); 114 assert_equals(allValues.length, 1, 'the second header should be deleted');
112 assert_equals(allValues[0], 'response test field - set'); 115 assert_equals(allValues[0], 'response test field - set');
113 headers.append('X-ServiceWorker-TEST', 'response test field - append'); 116 headers.append('X-ServiceWorker-TEST', 'response test field - append');
114 assert_equals(size(headers), 5, 'headers size should increase by 1.') 117 assert_equals(size(headers), 5, 'headers size should increase by 1.');
115 headers.delete('X-ServiceWORKER-Test'); 118 headers.delete('X-ServiceWORKER-Test');
116 assert_equals(size(headers), 3, 'two headers should be deleted.') 119 assert_equals(size(headers), 3, 'two headers should be deleted.');
117 120
118 // new Headers with sequence<sequence<ByteString>> 121 // new Headers with sequence<sequence<ByteString>>
119 headers = new Headers([['a', 'b'], ['c', 'd'], ['c', 'e']]); 122 headers = new Headers([['a', 'b'], ['c', 'd'], ['c', 'e']]);
120 assert_equals(size(headers), 3, 'headers size should match'); 123 assert_equals(size(headers), 3, 'headers size should match');
121 assert_equals(headers.get('a'), 'b'); 124 assert_equals(headers.get('a'), 'b');
122 assert_equals(headers.get('c'), 'd'); 125 assert_equals(headers.get('c'), 'd');
123 assert_equals(headers.getAll('c')[0], 'd'); 126 assert_equals(headers.getAll('c')[0], 'd');
124 assert_equals(headers.getAll('c')[1], 'e'); 127 assert_equals(headers.getAll('c')[1], 'e');
125 128
126 // new Headers with Headers 129 // new Headers with Headers
(...skipping 10 matching lines...) Expand all
137 // new Headers with Dictionary 140 // new Headers with Dictionary
138 headers = new Headers({'a': 'b', 'c': 'd'}); 141 headers = new Headers({'a': 'b', 'c': 'd'});
139 assert_equals(size(headers), 2, 'headers size should match'); 142 assert_equals(size(headers), 2, 'headers size should match');
140 assert_equals(headers.get('a'), 'b'); 143 assert_equals(headers.get('a'), 'b');
141 assert_equals(headers.get('c'), 'd'); 144 assert_equals(headers.get('c'), 'd');
142 145
143 // Throw errors 146 // Throw errors
144 var invalidNames = ['', '(', ')', '<', '>', '@', ',', ';', ':', '\\', '"', 147 var invalidNames = ['', '(', ')', '<', '>', '@', ',', ';', ':', '\\', '"',
145 '/', '[', ']', '?', '=', '{', '}', '\u3042', 'a(b']; 148 '/', '[', ']', '?', '=', '{', '}', '\u3042', 'a(b'];
146 invalidNames.forEach(function(name) { 149 invalidNames.forEach(function(name) {
147 assert_throws({name:'TypeError'}, 150 assert_throws({name: 'TypeError'},
148 function() { headers.append(name, 'a'); }, 151 function() { headers.append(name, 'a'); },
149 'Headers.append with an invalid name (' + name +') should throw'); 152 'Headers.append with an invalid name (' + name +
150 assert_throws({name:'TypeError'}, 153 ') should throw');
154 assert_throws({name: 'TypeError'},
151 function() { headers.delete(name); }, 155 function() { headers.delete(name); },
152 'Headers.delete with an invalid name (' + name +') should throw'); 156 'Headers.delete with an invalid name (' + name +
153 assert_throws({name:'TypeError'}, 157 ') should throw');
158 assert_throws({name: 'TypeError'},
154 function() { headers.get(name); }, 159 function() { headers.get(name); },
155 'Headers.get with an invalid name (' + name +') should thr ow'); 160 'Headers.get with an invalid name (' + name +
156 assert_throws({name:'TypeError'}, 161 ') should throw');
162 assert_throws({name: 'TypeError'},
157 function() { headers.getAll(name); }, 163 function() { headers.getAll(name); },
158 'Headers.getAll with an invalid name (' + name +') should throw'); 164 'Headers.getAll with an invalid name (' + name +
159 assert_throws({name:'TypeError'}, 165 ') should throw');
166 assert_throws({name: 'TypeError'},
160 function() { headers.has(name); }, 167 function() { headers.has(name); },
161 'Headers.has with an invalid name (' + name +') should thr ow'); 168 'Headers.has with an invalid name (' + name +
162 assert_throws({name:'TypeError'}, 169 ') should throw');
170 assert_throws({name: 'TypeError'},
163 function() { headers.set(name, 'a'); }, 171 function() { headers.set(name, 'a'); },
164 'Headers.set with an invalid name (' + name +') should thr ow'); 172 'Headers.set with an invalid name (' + name +
165 assert_throws({name:'TypeError'}, 173 ') should throw');
174 assert_throws({name: 'TypeError'},
166 function() { 175 function() {
167 var obj = {}; 176 var obj = {};
168 obj[name] = 'a'; 177 obj[name] = 'a';
169 var headers = new Headers(obj); 178 var headers = new Headers(obj);
170 }, 179 },
171 'new Headers with an invalid name (' + name +') should thr ow'); 180 'new Headers with an invalid name (' + name +
172 assert_throws({name:'TypeError'}, 181 ') should throw');
182 assert_throws({name: 'TypeError'},
173 function() { var headers = new Headers([[name, 'a']]); }, 183 function() { var headers = new Headers([[name, 'a']]); },
174 'new Headers with an invalid name (' + name +') should thr ow'); 184 'new Headers with an invalid name (' + name +
175 }); 185 ') should throw');
186 });
176 187
177 var invalidValues = ['test \r data', 'test \n data']; 188 var invalidValues = ['test \r data', 'test \n data'];
178 invalidValues.forEach(function(value) { 189 invalidValues.forEach(function(value) {
179 assert_throws({name:'TypeError'}, 190 assert_throws({name: 'TypeError'},
180 function() { headers.append('a', value); }, 191 function() { headers.append('a', value); },
181 'Headers.append with an invalid value should throw'); 192 'Headers.append with an invalid value should throw');
182 assert_throws({name:'TypeError'}, 193 assert_throws({name: 'TypeError'},
183 function() { headers.set('a', value); }, 194 function() { headers.set('a', value); },
184 'Headers.set with an invalid value should throw'); 195 'Headers.set with an invalid value should throw');
185 assert_throws({name:'TypeError'}, 196 assert_throws({name: 'TypeError'},
186 function() { var headers = new Headers({'a': value}); }, 197 function() { var headers = new Headers({'a': value}); },
187 'new Headers with an invalid value should throw'); 198 'new Headers with an invalid value should throw');
188 assert_throws({name:'TypeError'}, 199 assert_throws({name: 'TypeError'},
189 function() { var headers = new Headers([['a', value]]); }, 200 function() { var headers = new Headers([['a', value]]); },
190 'new Headers with an invalid value should throw'); 201 'new Headers with an invalid value should throw');
191 }); 202 });
192 203
193 assert_throws({name:'TypeError'}, 204 assert_throws({name: 'TypeError'},
194 function() { var headers = new Headers([[]]); }, 205 function() { var headers = new Headers([[]]); },
195 'new Headers with a sequence with less than two strings should throw'); 206 'new Headers with a sequence with less than two strings ' +
196 assert_throws({name:'TypeError'}, 207 'should throw');
208 assert_throws({name: 'TypeError'},
197 function() { var headers = new Headers([['a']]); }, 209 function() { var headers = new Headers([['a']]); },
198 'new Headers with a sequence with less than two strings should throw'); 210 'new Headers with a sequence with less than two strings ' +
199 assert_throws({name:'TypeError'}, 211 'should throw');
212 assert_throws({name: 'TypeError'},
200 function() { var headers = new Headers([['a', 'b'], []]); }, 213 function() { var headers = new Headers([['a', 'b'], []]); },
201 'new Headers with a sequence with less than two strings should throw'); 214 'new Headers with a sequence with less than two strings ' +
202 assert_throws({name:'TypeError'}, 215 'should throw');
203 function() { var headers = new Headers([['a', 'b'], ['x', 'y', 'z']]); }, 216 assert_throws({name: 'TypeError'},
204 'new Headers with a sequence with more than two strings should throw'); 217 function() { var headers = new Headers([['a', 'b'],
205 }, 'Headers in ServiceWorkerGlobalScope'); 218 ['x', 'y', 'z']]); },
219 'new Headers with a sequence with more than two strings ' +
220 'should throw');
221 }, 'Headers in ServiceWorkerGlobalScope');
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698