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

Side by Side Diff: third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html

Issue 2415873002: Import w3c tests for the service workers (Closed)
Patch Set: Rebase Created 4 years, 2 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 <script src="../../resources/testharness.js"></script> 1 <script src="../resources/get-host-info.sub.js"></script>
2 <script src="../../resources/get-host-info.js?pipe=sub"></script> 2 <script src="test-helpers.sub.js?pipe=sub"></script>
3 <script src="test-helpers.js"></script>
4 <script> 3 <script>
4 var port;
5 var host_info = get_host_info(); 5 var host_info = get_host_info();
6 6
7 function assert_equals(a, b) {
8 port.postMessage({results: 'equals', got: a, expected: b});
9 }
10
7 function get_boundary(headers) { 11 function get_boundary(headers) {
8 var reg = new RegExp('multipart\/form-data; boundary=(.*)'); 12 var reg = new RegExp('multipart\/form-data; boundary=(.*)');
9 for (var i = 0; i < headers.length; ++i) { 13 for (var i = 0; i < headers.length; ++i) {
10 if (headers[i][0] != 'content-type') { 14 if (headers[i][0] != 'content-type') {
11 continue; 15 continue;
12 } 16 }
13 var regResult = reg.exec(headers[i][1]); 17 var regResult = reg.exec(headers[i][1]);
14 if (!regResult) { 18 if (!regResult) {
15 continue; 19 continue;
16 } 20 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 }; 52 };
49 xhr.responseType = 'text'; 53 xhr.responseType = 'text';
50 if (with_credentials) { 54 if (with_credentials) {
51 xhr.withCredentials = true; 55 xhr.withCredentials = true;
52 } 56 }
53 xhr.open(method, url_base + '/dummy?test', true); 57 xhr.open(method, url_base + '/dummy?test', true);
54 xhr.send(data); 58 xhr.send(data);
55 }); 59 });
56 } 60 }
57 61
58 function get_sorted_header_name_list(headers) {
59 const header_names = [];
60 for (const [name, value] of headers) {
61 header_names.push(name);
62 }
63 header_names.sort();
64 return header_names;
65 }
66
67 function get_header_test() {
68 return xhr_send(host_info['HTTP_ORIGIN'], 'GET', '', false)
69 .then(function(response) {
70 assert_array_equals(
71 get_sorted_header_name_list(response.headers),
72 ["accept", "user-agent"],
73 'event.request has the expected headers for same-origin GET.');
74 });
75 }
76
77 // TODO(tyoshino): Fix the stack not to include the Origin header as specified
78 // in the spec.
79 function post_header_test() {
80 return xhr_send(host_info['HTTP_ORIGIN'], 'POST', '', false)
81 .then(function(response) {
82 assert_array_equals(
83 get_sorted_header_name_list(response.headers),
84 ["accept", "content-type", "origin", "user-agent"],
85 'event.request has the expected headers for same-origin POST.');
86 });
87 }
88
89 function cross_origin_get_header_test() {
90 return xhr_send(host_info['HTTP_REMOTE_ORIGIN'], 'GET', '', false)
91 .then(function(response) {
92 assert_array_equals(
93 get_sorted_header_name_list(response.headers),
94 ["accept", "user-agent"],
95 'event.request has the expected headers for cross-origin GET.');
96 });
97 }
98
99 // TODO(tyoshino): Fix the stack not to include the Origin header as specified
100 // in the spec.
101 function cross_origin_post_header_test() {
102 return xhr_send(host_info['HTTP_REMOTE_ORIGIN'], 'POST', '', false)
103 .then(function(response) {
104 assert_array_equals(
105 get_sorted_header_name_list(response.headers),
106 ["accept", "content-type", "origin", "user-agent"],
107 'event.request has the expected headers for cross-origin POST.');
108 });
109 }
110
111 function string_test() { 62 function string_test() {
112 return xhr_send(host_info['HTTP_ORIGIN'], 'POST', 'test string', false) 63 return xhr_send(host_info['HTTPS_ORIGIN'], 'POST', 'test string', false)
113 .then(function(response) { 64 .then(function(response) {
114 assert_equals(response.method, 'POST'); 65 assert_equals(response.method, 'POST');
115 assert_equals(response.body, 'test string'); 66 assert_equals(response.body, 'test string');
116 }); 67 });
117 } 68 }
118 69
119 function blob_test() { 70 function blob_test() {
120 return xhr_send(host_info['HTTP_ORIGIN'], 'POST', new Blob(['test blob']), 71 return xhr_send(host_info['HTTPS_ORIGIN'], 'POST', new Blob(['test blob']),
121 false) 72 false)
122 .then(function(response) { 73 .then(function(response) {
123 assert_equals(response.method, 'POST'); 74 assert_equals(response.method, 'POST');
124 assert_equals(response.body, 'test blob'); 75 assert_equals(response.body, 'test blob');
125 }); 76 });
126 } 77 }
127 78
128 function custom_method_test() { 79 function custom_method_test() {
129 return xhr_send(host_info['HTTP_ORIGIN'], 'XXX', 'test string xxx', false) 80 return xhr_send(host_info['HTTPS_ORIGIN'], 'XXX', 'test string xxx', false)
130 .then(function(response) { 81 .then(function(response) {
131 assert_equals(response.method, 'XXX'); 82 assert_equals(response.method, 'XXX');
132 assert_equals(response.body, 'test string xxx'); 83 assert_equals(response.body, 'test string xxx');
133 }); 84 });
134 } 85 }
135 86
136 function options_method_test() { 87 function options_method_test() {
137 return xhr_send(host_info['HTTP_ORIGIN'], 'OPTIONS', 'test string xxx', false) 88 return xhr_send(host_info['HTTPS_ORIGIN'], 'OPTIONS', 'test string xxx', false )
138 .then(function(response) { 89 .then(function(response) {
139 assert_equals(response.method, 'OPTIONS'); 90 assert_equals(response.method, 'OPTIONS');
140 assert_equals(response.body, 'test string xxx'); 91 assert_equals(response.body, 'test string xxx');
141 }); 92 });
142 } 93 }
143 94
144 function form_data_test() { 95 function form_data_test() {
145 return create_file_system_file('fsfile.txt', 'fs file content') 96 var formData = new FormData();
146 .then(function(file_system_file) { 97 formData.append('sample string', '1234567890');
147 var formData = new FormData(); 98 formData.append('sample blob', new Blob(['blob content']));
148 formData.append('sample string', '1234567890'); 99 formData.append('sample file', new File(['file content'], 'file.dat'));
149 formData.append('sample blob', new Blob(['blob content'])); 100 return xhr_send(host_info['HTTPS_ORIGIN'], 'POST', formData, false)
150 formData.append('sample file', new File(['file content'], 'file.dat'));
151 formData.append('sample fs file', file_system_file);
152 return xhr_send(host_info['HTTP_ORIGIN'], 'POST', formData, false);
153 })
154 .then(function(response) { 101 .then(function(response) {
155 assert_equals(response.method, 'POST'); 102 assert_equals(response.method, 'POST');
156 var boundary = get_boundary(response.headers); 103 var boundary = get_boundary(response.headers);
157 var expected_body = 104 var expected_body =
158 '--' + boundary + '\r\n' + 105 '--' + boundary + '\r\n' +
159 'Content-Disposition: form-data; name="sample string"\r\n' + 106 'Content-Disposition: form-data; name="sample string"\r\n' +
160 '\r\n' + 107 '\r\n' +
161 '1234567890\r\n' + 108 '1234567890\r\n' +
162 '--' + boundary + '\r\n' + 109 '--' + boundary + '\r\n' +
163 'Content-Disposition: form-data; name="sample blob"; ' + 110 'Content-Disposition: form-data; name="sample blob"; ' +
164 'filename="blob"\r\n' + 111 'filename="blob"\r\n' +
165 'Content-Type: application/octet-stream\r\n' + 112 'Content-Type: application/octet-stream\r\n' +
166 '\r\n' + 113 '\r\n' +
167 'blob content\r\n' + 114 'blob content\r\n' +
168 '--' + boundary + '\r\n' + 115 '--' + boundary + '\r\n' +
169 'Content-Disposition: form-data; name="sample file"; ' + 116 'Content-Disposition: form-data; name="sample file"; ' +
170 'filename="file.dat"\r\n' + 117 'filename="file.dat"\r\n' +
171 'Content-Type: application/octet-stream\r\n' + 118 'Content-Type: application/octet-stream\r\n' +
172 '\r\n' + 119 '\r\n' +
173 'file content\r\n' + 120 'file content\r\n' +
174 '--' + boundary + '\r\n' +
175 'Content-Disposition: form-data; name="sample fs file"; ' +
176 'filename="fsfile.txt"\r\n' +
177 'Content-Type: text/plain\r\n' +
178 '\r\n' +
179 'fs file content\r\n' +
180 '--' + boundary + '--\r\n'; 121 '--' + boundary + '--\r\n';
181 assert_equals(response.body, expected_body); 122 assert_equals(response.body, expected_body);
182 }); 123 });
183 } 124 }
184 125
185 function mode_credentials_test() { 126 function mode_credentials_test() {
186 return xhr_send(host_info['HTTP_ORIGIN'], 'GET', '', false) 127 return xhr_send(host_info['HTTPS_ORIGIN'], 'GET', '', false)
187 .then(function(response){ 128 .then(function(response){
188 assert_equals(response.mode, 'cors'); 129 assert_equals(response.mode, 'cors');
189 assert_equals(response.credentials, 'include'); 130 assert_equals(response.credentials, 'same-origin');
190 return xhr_send(host_info['HTTP_ORIGIN'], 'GET', '', true); 131 return xhr_send(host_info['HTTPS_ORIGIN'], 'GET', '', true);
191 }) 132 })
192 .then(function(response){ 133 .then(function(response){
193 assert_equals(response.mode, 'cors'); 134 assert_equals(response.mode, 'cors');
194 assert_equals(response.credentials, 'include'); 135 assert_equals(response.credentials, 'include');
195 return xhr_send(host_info['HTTP_REMOTE_ORIGIN'], 'GET', '', false); 136 return xhr_send(host_info['HTTPS_REMOTE_ORIGIN'], 'GET', '', false);
196 }) 137 })
197 .then(function(response){ 138 .then(function(response){
198 assert_equals(response.mode, 'cors'); 139 assert_equals(response.mode, 'cors');
199 assert_equals(response.credentials, 'same-origin'); 140 assert_equals(response.credentials, 'same-origin');
200 return xhr_send(host_info['HTTP_REMOTE_ORIGIN'], 'GET', '', true); 141 return xhr_send(host_info['HTTPS_REMOTE_ORIGIN'], 'GET', '', true);
201 }) 142 })
202 .then(function(response){ 143 .then(function(response){
203 assert_equals(response.mode, 'cors'); 144 assert_equals(response.mode, 'cors');
204 assert_equals(response.credentials, 'include'); 145 assert_equals(response.credentials, 'include');
205 }); 146 });
206 } 147 }
207 148
208 function data_url_test() { 149 function data_url_test() {
209 return new Promise(function(resolve, reject) { 150 return new Promise(function(resolve, reject) {
210 var xhr = new XMLHttpRequest(); 151 var xhr = new XMLHttpRequest();
211 xhr.onload = function() { 152 xhr.onload = function() {
212 resolve(xhr.response); 153 resolve(xhr.response);
213 }; 154 };
214 xhr.onerror = function() { 155 xhr.onerror = function() {
215 reject('XHR should succeed.'); 156 reject('XHR should succeed.');
216 }; 157 };
217 xhr.responseType = 'text'; 158 xhr.responseType = 'text';
218 xhr.open('GET', 'data:text/html,Foobar', true); 159 xhr.open('GET', 'data:text/html,Foobar', true);
219 xhr.send(); 160 xhr.send();
220 }) 161 })
221 .then(function(data) { 162 .then(function(data) {
222 assert_equals(data, 'Foobar'); 163 assert_equals(data, 'Foobar');
223 }); 164 });
224 } 165 }
225 166
226 window.addEventListener('message', function(evt) { 167 window.addEventListener('message', function(evt) {
227 var port = evt.ports[0]; 168 port = evt.ports[0];
228 get_header_test() 169 string_test()
229 .then(post_header_test)
230 .then(cross_origin_get_header_test)
231 .then(cross_origin_post_header_test)
232 .then(string_test)
233 .then(blob_test) 170 .then(blob_test)
234 .then(custom_method_test) 171 .then(custom_method_test)
235 .then(options_method_test) 172 .then(options_method_test)
236 .then(form_data_test) 173 .then(form_data_test)
237 .then(mode_credentials_test) 174 .then(mode_credentials_test)
238 .then(data_url_test) 175 .then(data_url_test)
239 .then(function() { port.postMessage({results: 'finish'}); }) 176 .then(function() { port.postMessage({results: 'finish'}); })
240 .catch(function(e) { port.postMessage({results: 'failure:' + e}); }); 177 .catch(function(e) { port.postMessage({results: 'failure:' + e}); });
241 }); 178 });
242 </script> 179 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698