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

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

Issue 358573002: [ServiceWorker] Implement Headers class. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase Created 6 years, 6 months 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 side-by-side diff with in-line comments
Download patch
Index: LayoutTests/http/tests/serviceworker/resources/headers-worker.js
diff --git a/LayoutTests/http/tests/serviceworker/resources/headermap-worker.js b/LayoutTests/http/tests/serviceworker/resources/headers-worker.js
similarity index 36%
copy from LayoutTests/http/tests/serviceworker/resources/headermap-worker.js
copy to LayoutTests/http/tests/serviceworker/resources/headers-worker.js
index c6c746cc410cf7f9f0b176219fc61487e4bd9e11..7f1803c48b3cd28a865dab230f452aa0ea6273e4 100644
--- a/LayoutTests/http/tests/serviceworker/resources/headermap-worker.js
+++ b/LayoutTests/http/tests/serviceworker/resources/headers-worker.js
@@ -7,7 +7,7 @@ test(function() {
'X-ServiceWorker-Test': 'response test field'
};
- var headers = new HeaderMap;
+ var headers = new Headers;
Object.keys(expectedMap).forEach(function(key) {
headers.set(key, expectedMap[key]);
});
@@ -19,6 +19,7 @@ test(function() {
var key = 'Content-Type';
assert_true(headers.has(key));
assert_equals(headers.get(key), expectedMap[key]);
+ assert_equals(headers.get('dummy'), null);
// 'delete()'
var deleteKey = 'Content-Type';
@@ -82,9 +83,110 @@ test(function() {
assert_equals(headers.get(key), expectedMap[key]);
});
+ // 'append()', 'getAll()'
+ var allValues = headers.getAll('X-ServiceWorker-Test');
+ assert_equals(allValues.length, 1);
+ assert_equals(headers.size, 5);
+ headers.append('X-ServiceWorker-Test', 'response test field - append');
+ assert_equals(headers.size, 6);
falken 2014/06/27 02:08:06 can you add a description indicating the size shou
horo 2014/06/27 04:19:10 Done.
+ allValues = headers.getAll('X-ServiceWorker-Test');
+ assert_equals(headers.get('X-ServiceWorker-Test'), 'response test field - updated');
falken 2014/06/27 02:08:05 nit: seems to read better if line 92 and 93 are sw
falken 2014/06/27 02:08:06 add a description that the value of the first head
horo 2014/06/27 04:19:10 Done.
horo 2014/06/27 04:19:10 Done.
+ assert_equals(allValues.length, 2);
+ assert_equals(allValues[0], 'response test field - updated');
+ assert_equals(allValues[1], 'response test field - append');
+ headers.set('X-ServiceWorker-Test', 'response test field - set');
+ assert_equals(headers.size, 5);
falken 2014/06/27 02:08:05 seems a description would be useful here, and for
horo 2014/06/27 04:19:10 Done.
+ allValues = headers.getAll('X-ServiceWorker-Test');
+ assert_equals(allValues.length, 1);
+ assert_equals(allValues[0], 'response test field - set');
+ headers.append('X-ServiceWorker-Test', 'response test field - append');
+ assert_equals(headers.size, 6);
+ headers.delete('X-ServiceWorker-Test');
+ assert_equals(headers.size, 4);
+
+ // new Headers with sequence<sequence<ByteString>>
+ headers = new Headers([['a', 'b'], ['c', 'd'], ['c', 'e']]);
+ assert_equals(headers.size, 3, 'headers.size should match');
+ assert_equals(headers.get('a'), 'b');
+ assert_equals(headers.get('c'), 'd');
+ assert_equals(headers.getAll('c')[0], 'd');
+ assert_equals(headers.getAll('c')[1], 'e');
+
+ // new Headers with Headers
+ var headers2 = new Headers(headers);
+ assert_equals(headers2.size, 3, 'headers.size should match');
+ assert_equals(headers2.get('a'), 'b');
+ assert_equals(headers2.get('c'), 'd');
+ assert_equals(headers2.getAll('c')[0], 'd');
+ assert_equals(headers2.getAll('c')[1], 'e');
+ headers.set('a', 'x');
+ assert_equals(headers.get('a'), 'x');
+ assert_equals(headers2.get('a'), 'b');
+
+ // new Headers with Dictionary
+ headers = new Headers({'a': 'b', 'c': 'd'});
+ assert_equals(headers.size, 2, 'headers.size should match');
+ assert_equals(headers.get('a'), 'b');
+ assert_equals(headers.get('c'), 'd');
+
+ // Throw errors
+ assert_throws({name:'TypeError'}, function() { headers.append('', 'a'); },
+ 'Headers.append with an invalid name should throw');
falken 2014/06/27 02:08:05 are there any invalid names other than ''? could b
horo 2014/06/27 04:19:10 Done.
+ assert_throws({name:'TypeError'}, function() { headers.delete(''); },
+ 'Headers.delete with an invalid name should throw');
+ assert_throws({name:'TypeError'}, function() { headers.get(''); },
+ 'Headers.get with an invalid name should throw');
+ assert_throws({name:'TypeError'}, function() { headers.getAll(''); },
+ 'Headers.getAll with an invalid name should throw');
+ assert_throws({name:'TypeError'}, function() { headers.has(''); },
+ 'Headers.has with an invalid name should throw');
+ assert_throws({name:'TypeError'}, function() { headers.set('', 'a'); },
+ 'Headers.set with an invalid name should throw');
+
+ assert_throws({name:'TypeError'},
+ function() { headers.append('a', 'test \r data'); },
+ 'Headers.append with an invalid value should throw');
+ assert_throws({name:'TypeError'},
+ function() { headers.append('a', 'test \n data'); },
+ 'Headers.append with an invalid value should throw');
+ assert_throws({name:'TypeError'},
+ function() { headers.set('a', 'test \r data'); },
+ 'Headers.set with an invalid value should throw');
+ assert_throws({name:'TypeError'},
+ function() { headers.set('a', 'test \n data'); },
+ 'Headers.set with an invalid value should throw');
+
+ assert_throws({name:'TypeError'},
+ function() { var headers = new Headers({'': 'a'}); },
+ 'new Headers with an invalid name should throw');
+ assert_throws({name:'TypeError'},
+ function() { var headers = new Headers([['', 'a']]); },
+ 'new Headers with an invalid name should throw');
+ assert_throws({name:'TypeError'},
+ function() { var headers = new Headers({'a': 'a\rb'}); },
+ 'new Headers with an invalid value should throw');
+ assert_throws({name:'TypeError'},
+ function() { var headers = new Headers({'a': 'a\nb'}); },
+ 'new Headers with an invalid value should throw');
+ assert_throws({name:'TypeError'},
+ function() { var headers = new Headers([['a', 'a\rb']]); },
+ 'new Headers with an invalid value should throw');
+ assert_throws({name:'TypeError'},
+ function() { var headers = new Headers([['a', 'a\nb']]); },
+ 'new Headers with an invalid value should throw');
+ assert_throws({name:'TypeError'},
+ function() { var headers = new Headers([[]]); },
+ 'new Headers with an invalid value should throw');
+ assert_throws({name:'TypeError'},
+ function() { var headers = new Headers([['a']]); },
+ 'new Headers with an invalid value should throw');
+ assert_throws({name:'TypeError'},
+ function() { var headers = new Headers([['a', 'b'], []]); },
+ 'new Headers with an invalid value should throw');
+
// 'forEach()' with thisArg
var that = {}, saw_that;
- headers = new HeaderMap;
+ headers = new Headers;
headers.set('a', 'b');
headers.forEach(function() { saw_that = this; }, that);
assert_equals(saw_that, that, 'Passed thisArg should match');
@@ -95,4 +197,4 @@ test(function() {
headers.forEach(function() { saw_that = this; }, null);
assert_equals(saw_that, self, 'Passed null thisArg should be replaced with global object');
-}, 'HeaderMap in ServiceWorkerGlobalScope');
+}, 'Headers in ServiceWorkerGlobalScope');

Powered by Google App Engine
This is Rietveld 408576698