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

Side by Side Diff: LayoutTests/http/tests/fetch/script-tests/headers.js

Issue 848673002: Add keys(), values() and entries() methods on iterable<> interfaces (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 11 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 unified diff | Download patch
OLDNEW
1 if (self.importScripts) { 1 if (self.importScripts) {
2 importScripts('../resources/fetch-test-helpers.js'); 2 importScripts('../resources/fetch-test-helpers.js');
3 } 3 }
4 4
5 test(function() { 5 test(function() {
6 function size(headers) { 6 function size(headers) {
7 var count = 0; 7 var count = 0;
8 for (var header of headers) { 8 for (var header of headers) {
9 ++count; 9 ++count;
10 } 10 }
11 return count; 11 return count;
12 } 12 }
13 13
14 var expectedMap = { 14 var expectedValueMap = {
15 'content-language': 'ja', 15 'content-language': 'ja',
16 'content-type': 'text/html; charset=UTF-8', 16 'content-type': 'text/html; charset=UTF-8',
17 'x-fetch-test': 'response test field' 17 'x-fetch-test': 'response test field'
18 }; 18 };
19 19
20 var headers = new Headers; 20 var headers = new Headers;
21 headers.set('Content-Language', 'ja'); 21 headers.set('Content-Language', 'ja');
22 headers.set('Content-Type', 'text/html; charset=UTF-8'); 22 headers.set('Content-Type', 'text/html; charset=UTF-8');
23 headers.set('X-Fetch-Test', 'text/html; charset=UTF-8'); 23 headers.set('X-Fetch-Test', 'text/html; charset=UTF-8');
24 24
25 assert_equals(size(headers), 3, 'headers size should match'); 25 assert_equals(size(headers), 3, 'headers size should match');
26 26
27 // 'has()', 'get()' 27 // 'has()', 'get()'
28 var key = 'Content-Type'; 28 var key = 'Content-Type';
29 assert_true(headers.has(key)); 29 assert_true(headers.has(key));
30 assert_true(headers.has(key.toUpperCase())); 30 assert_true(headers.has(key.toUpperCase()));
31 assert_equals(headers.get(key), expectedMap[key.toLowerCase()]); 31 assert_equals(headers.get(key), expectedValueMap[key.toLowerCase()]);
32 assert_equals(headers.get(key.toUpperCase()), 32 assert_equals(headers.get(key.toUpperCase()),
33 expectedMap[key.toLowerCase()]); 33 expectedValueMap[key.toLowerCase()]);
34 assert_equals(headers.get('dummy'), null); 34 assert_equals(headers.get('dummy'), null);
35 assert_false(headers.has('dummy')); 35 assert_false(headers.has('dummy'));
36 36
37 // 'delete()' 37 // 'delete()'
38 var deleteKey = 'Content-Type'; 38 var deleteKey = 'Content-Type';
39 headers.delete(deleteKey); 39 headers.delete(deleteKey);
40 assert_equals(size(headers), 2, 'headers size should have -1 size'); 40 assert_equals(size(headers), 2, 'headers size should have -1 size');
41 Object.keys(expectedMap).forEach(function(key) { 41 Object.keys(expectedValueMap).forEach(function(key) {
42 if (key == deleteKey.toLowerCase()) 42 if (key == deleteKey.toLowerCase())
43 assert_false(headers.has(key)); 43 assert_false(headers.has(key));
44 else 44 else
45 assert_true(headers.has(key)); 45 assert_true(headers.has(key));
46 }); 46 });
47 47
48 // 'set()' 48 // 'set()'
49 var testCasesForSet = [ 49 var testCasesForSet = [
50 // For a new key/value pair. 50 // For a new key/value pair.
51 { key: 'Cache-Control', 51 { key: 'Cache-Control',
(...skipping 23 matching lines...) Expand all
75 var value = testCase.value; 75 var value = testCase.value;
76 var expectedValue = ('expectedValue' in testCase) ? 76 var expectedValue = ('expectedValue' in testCase) ?
77 testCase.expectedValue : testCase.value; 77 testCase.expectedValue : testCase.value;
78 expectedHeaderSize = testCase.isNewEntry ? 78 expectedHeaderSize = testCase.isNewEntry ?
79 (expectedHeaderSize + 1) : expectedHeaderSize; 79 (expectedHeaderSize + 1) : expectedHeaderSize;
80 80
81 headers.set(key, value); 81 headers.set(key, value);
82 assert_true(headers.has(key)); 82 assert_true(headers.has(key));
83 assert_equals(headers.get(key), expectedValue); 83 assert_equals(headers.get(key), expectedValue);
84 if (testCase.isUpdate) 84 if (testCase.isUpdate)
85 assert_true(headers.get(key) != expectedMap[key.toLowerCase()]); 85 assert_true(headers.get(key) != expectedValueMap[key.toLowerCase()]);
86 assert_equals(size(headers), expectedHeaderSize); 86 assert_equals(size(headers), expectedHeaderSize);
87 87
88 // Update expectedMap too for forEach() test below. 88 // Update expectedValueMap too for forEach() test below.
89 expectedMap[key.toLowerCase()] = expectedValue; 89 expectedValueMap[key.toLowerCase()] = expectedValue;
90 }); 90 });
91 91
92 // '[Symbol.iterator]()' 92 // '[Symbol.iterator]()'
93 for (var header of headers) { 93 for (var header of headers) {
94 var key = header[0], value = header[1]; 94 var key = header[0], value = header[1];
95 assert_true(key != deleteKey.toLowerCase()); 95 assert_true(key != deleteKey.toLowerCase());
96 assert_true(key in expectedMap); 96 assert_true(key in expectedValueMap);
97 assert_equals(headers.get(key), expectedMap[key]); 97 assert_equals(headers.get(key), expectedValueMap[key]);
98 assert_equals(value, expectedValueMap[key]);
99 }
100
101 // 'keys()'
102 for (var key of headers.keys()) {
103 assert_true(key != deleteKey.toLowerCase());
jsbell 2015/01/12 17:14:07 I know this is copy/paste but.. assert_not_equals
104 assert_true(key in expectedValueMap);
105 assert_equals(headers.get(key), expectedValueMap[key]);
106 }
107
108 // 'values()'
109 var expectedKeyMap = {};
110 for (var key in expectedValueMap)
111 expectedKeyMap[expectedValueMap[key]] = key;
112 for (var value of headers.values()) {
113 assert_true(value in expectedKeyMap);
114 var key = expectedKeyMap[value];
115 assert_true(key != deleteKey.toLowerCase());
jsbell 2015/01/12 17:14:07 assert_not_equals
116 }
117
118 // 'entries()'
119 for (var header of headers.entries()) {
120 var key = header[0], value = header[1];
121 assert_true(key != deleteKey.toLowerCase());
jsbell 2015/01/12 17:14:07 assert_not_equals
122 assert_true(key in expectedValueMap);
123 assert_equals(headers.get(key), expectedValueMap[key]);
124 assert_equals(value, expectedValueMap[key]);
98 } 125 }
99 126
100 // 'append()', 'getAll()' 127 // 'append()', 'getAll()'
101 var allValues = headers.getAll('X-Fetch-Test'); 128 var allValues = headers.getAll('X-Fetch-Test');
102 assert_equals(allValues.length, 1); 129 assert_equals(allValues.length, 1);
103 assert_equals(size(headers), 4); 130 assert_equals(size(headers), 4);
104 headers.append('X-FETCH-TEST', 'response test field - append'); 131 headers.append('X-FETCH-TEST', 'response test field - append');
105 assert_equals(size(headers), 5, 'headers size should increase by 1.'); 132 assert_equals(size(headers), 5, 'headers size should increase by 1.');
106 assert_equals(headers.get('X-FETCH-Test'), 133 assert_equals(headers.get('X-FETCH-Test'),
107 'response test field - updated', 134 'response test field - updated',
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 'new Headers with a sequence with less than two strings ' + 243 'new Headers with a sequence with less than two strings ' +
217 'should throw'); 244 'should throw');
218 assert_throws({name: 'TypeError'}, 245 assert_throws({name: 'TypeError'},
219 function() { var headers = new Headers([['a', 'b'], 246 function() { var headers = new Headers([['a', 'b'],
220 ['x', 'y', 'z']]); }, 247 ['x', 'y', 'z']]); },
221 'new Headers with a sequence with more than two strings ' + 248 'new Headers with a sequence with more than two strings ' +
222 'should throw'); 249 'should throw');
223 }, 'Headers'); 250 }, 'Headers');
224 251
225 done(); 252 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698