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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/fetch/script-tests/response-content.js

Issue 2292763002: [Fetch API] Implement Request.formData and Response.formData. (Closed)
Patch Set: More global-interface-listing*-expected.txt, urlencoded-parser-expected.txt Created 3 years, 7 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 promise_test(function() { 5 promise_test(function() {
6 var response = new Response; 6 var response = new Response;
7 return response.text() 7 return response.text()
8 .then(function(text) { 8 .then(function(text) {
9 assert_equals(text, '', 9 assert_equals(text, '',
10 'response.text() must return an empty string' + 10 'response.text() must return an empty string' +
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 return response.arrayBuffer() 71 return response.arrayBuffer()
72 .then(function(buffer) { 72 .then(function(buffer) {
73 var resultIntView = new Int32Array(buffer); 73 var resultIntView = new Int32Array(buffer);
74 assert_array_equals( 74 assert_array_equals(
75 resultIntView, [1, 2, 3], 75 resultIntView, [1, 2, 3],
76 'Response body ArrayBuffer should match ArrayBufferView ' + 76 'Response body ArrayBuffer should match ArrayBufferView ' +
77 'slice it was constructed with.'); 77 'slice it was constructed with.');
78 }); 78 });
79 }, 'Behavior of Response with ArrayBufferView content with a slice.'); 79 }, 'Behavior of Response with ArrayBufferView content with a slice.');
80 80
81 promise_test(function() { 81 promise_test(function(t) {
82 var formData = new FormData(); 82 var formData = new FormData();
83 formData.append('sample string', '1234567890'); 83 formData.append('sample string', '1234567890');
84 formData.append('sample blob', new Blob(['blob content'])); 84 formData.append('sample blob', new Blob(['blob content']));
85 formData.append('sample file', 85 formData.append('sample file',
86 new File(['file content'], 'file.dat')); 86 new File(['file content'], 'file.dat'));
87 var response = new Response(formData); 87 var response = new Response(formData);
88 return response.text() 88 return response.text()
89 .then(function(result) { 89 .then(function(result) {
90 var reg = new RegExp('multipart\/form-data; boundary=(.*)'); 90 var reg = new RegExp('multipart\/form-data; boundary=(.*)');
91 var regResult = reg.exec(getContentType(response.headers)); 91 var regResult = reg.exec(getContentType(response.headers));
(...skipping 12 matching lines...) Expand all
104 '--' + boundary + '\r\n' + 104 '--' + boundary + '\r\n' +
105 'Content-Disposition: form-data; name="sample file"; ' + 105 'Content-Disposition: form-data; name="sample file"; ' +
106 'filename="file.dat"\r\n' + 106 'filename="file.dat"\r\n' +
107 'Content-Type: application/octet-stream\r\n' + 107 'Content-Type: application/octet-stream\r\n' +
108 '\r\n' + 108 '\r\n' +
109 'file content\r\n' + 109 'file content\r\n' +
110 '--' + boundary + '--\r\n'; 110 '--' + boundary + '--\r\n';
111 assert_equals( 111 assert_equals(
112 result, expected_body, 112 result, expected_body,
113 'Creating a Response with FormData body must succeed.'); 113 'Creating a Response with FormData body must succeed.');
114 response = new Response(
115 expected_body, {headers: [['Content-Type', regResult[0]]]});
116 return response.formData();
117 })
118 .then(function(result) {
119 assert_equals(result.get('sample string'),
120 formData.get('sample string'));
121 assert_equals(result.get('sample blob').name,
122 formData.get('sample blob').name);
123 assert_equals(result.get('sample blob').size,
124 formData.get('sample blob').size);
125 assert_equals(result.get('sample blob').type,
126 'application/octet-stream');
127 assert_equals(result.get('sample file').name,
128 formData.get('sample file').name);
129 assert_equals(result.get('sample file').size,
130 formData.get('sample file').size);
131 assert_equals(result.get('sample file').type,
132 'application/octet-stream');
114 }); 133 });
115 }, 'Behavior of Response with FormData content'); 134 }, 'Behavior of Response with FormData content');
116 135
117 promise_test(function() { 136 promise_test(function() {
118 const urlSearchParams = new URLSearchParams(); 137 const urlSearchParams = new URLSearchParams();
119 urlSearchParams.append('sample string', '1234567890'); 138 urlSearchParams.append('sample string', '1234567890');
120 urlSearchParams.append('sample string 2', '1234567890 & 2'); 139 urlSearchParams.append('sample string 2', '1234567890 & 2');
121 var response = new Response(urlSearchParams); 140 var response = new Response(urlSearchParams);
122 assert_equals( 141 assert_equals(
123 response.headers.get('Content-Type'), 142 response.headers.get('Content-Type'),
124 'application/x-www-form-urlencoded;charset=UTF-8', 143 'application/x-www-form-urlencoded;charset=UTF-8',
125 'A Response constructed with a URLSearchParams should have a Content-Type. '); 144 'A Response constructed with a URLSearchParams should have a Content-Type. ');
126 return response.text() 145 return response.text()
127 .then(function(result) { 146 .then(function(result) {
147 const expected_body =
148 'sample+string=1234567890&sample+string+2=1234567890+%26+2';
128 assert_equals( 149 assert_equals(
129 result, 'sample+string=1234567890&sample+string+2=1234567890+%26+2', 150 result, expected_body,
130 'Creating a Response with URLSearchParams body must succeed.'); 151 'Creating a Response with URLSearchParams body must succeed.');
152 response = new Response(
153 expected_body, {headers: [
154 ['Content-Type',
155 'application/x-www-form-urlencoded; charset=UTF-8']]});
156 return response.formData();
157 })
158 .then(function(result) {
159 assert_equals(result.get('sample string'),
160 urlSearchParams.get('sample string'));
161 assert_equals(result.get('sample string 2'),
162 urlSearchParams.get('sample string 2'));
131 }); 163 });
132 }, 'Behavior of Response with URLSearchParams content'); 164 }, 'Behavior of Response with URLSearchParams content');
133 165
134 promise_test(function() { 166 promise_test(function() {
135 var headers = new Headers; 167 var headers = new Headers;
136 headers.set('Content-Language', 'ja'); 168 headers.set('Content-Language', 'ja');
137 var response = new Response( 169 var response = new Response(
138 'test string', {method: 'GET', headers: headers}); 170 'test string', {method: 'GET', headers: headers});
139 assert_false(response.bodyUsed); 171 assert_false(response.bodyUsed);
140 var response2 = response.clone(); 172 var response2 = response.clone();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 'A Response constructed with no body should have no Content-Type.'); 217 'A Response constructed with no body should have no Content-Type.');
186 return response.text() 218 return response.text()
187 .then(function(text) { 219 .then(function(text) {
188 assert_equals(text, '', 220 assert_equals(text, '',
189 'Response with no body accessed as text should ' + 221 'Response with no body accessed as text should ' +
190 'resolve to the empty string.'); 222 'resolve to the empty string.');
191 }); 223 });
192 }, 'Behavior of Response with no body.'); 224 }, 'Behavior of Response with no body.');
193 225
194 done(); 226 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698