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

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

Issue 2858093002: Upstream service worker `fetch` test to WPT (Closed)
Patch Set: 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 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <title>Service Worker: FetchEvent for resources</title> 2 <title>Service Worker: FetchEvent for resources</title>
3 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharness.js"></script>
4 <script src="/resources/testharnessreport.js"></script> 4 <script src="/resources/testharnessreport.js"></script>
5 <script src="/common/get-host-info.sub.js"></script> 5 <script src="/common/get-host-info.sub.js"></script>
6 <script src="resources/test-helpers.sub.js?pipe=sub"></script> 6 <script src="resources/test-helpers.sub.js?pipe=sub"></script>
Marijn Kruisselbrink 2017/05/04 18:38:19 nit: get rid of the pipe=sub here too?
mike3 2017/05/05 16:44:00 Acknowledged.
7 <script> 7 <script>
8 var url_count = 0; 8 var url_count = 0;
9 var expected_results = {}; 9 var expected_results = {};
10 10
11 function image_test(frame, url, cross_origin, expected_mode, 11 function image_test(frame, url, cross_origin, expected_mode,
12 expected_credentials) { 12 expected_credentials) {
13 var actual_url = url + (++url_count); 13 var actual_url = url + (++url_count);
14 expected_results[actual_url] = { 14 expected_results[actual_url] = {
15 cross_origin: cross_origin, 15 cross_origin: cross_origin,
16 mode: expected_mode, 16 mode: expected_mode,
17 credentials: expected_credentials, 17 credentials: expected_credentials,
18 redirect: 'follow',
18 integrity: '', 19 integrity: '',
19 message: 'Image load (url:' + 20 message: 'Image load (url:' +
20 actual_url + ' cross_origin:' + cross_origin + ')' 21 actual_url + ' cross_origin:' + cross_origin + ')'
21 }; 22 };
22 return frame.contentWindow.load_image(actual_url, cross_origin); 23 return frame.contentWindow.load_image(actual_url, cross_origin);
23 } 24 }
24 25
25 function script_test(frame, url, cross_origin, expected_mode, 26 function script_test(frame, url, cross_origin, expected_mode,
26 expected_credentials) { 27 expected_credentials) {
27 var actual_url = url + (++url_count); 28 var actual_url = url + (++url_count);
28 expected_results[actual_url] = { 29 expected_results[actual_url] = {
29 cross_origin: cross_origin, 30 cross_origin: cross_origin,
30 mode: expected_mode, 31 mode: expected_mode,
31 credentials: expected_credentials, 32 credentials: expected_credentials,
33 redirect: 'follow',
32 integrity: '', 34 integrity: '',
33 message: 'Script load (url:' + 35 message: 'Script load (url:' +
34 actual_url + ' cross_origin:' + cross_origin + ')' 36 actual_url + ' cross_origin:' + cross_origin + ')'
35 }; 37 };
36 return frame.contentWindow.load_script(actual_url, cross_origin); 38 return frame.contentWindow.load_script(actual_url, cross_origin);
37 } 39 }
38 40
39 function css_test(frame, url, cross_origin, expected_mode, 41 function css_test(frame, url, cross_origin, expected_mode,
40 expected_credentials) { 42 expected_credentials) {
41 var actual_url = url + (++url_count); 43 var actual_url = url + (++url_count);
42 expected_results[actual_url] = { 44 expected_results[actual_url] = {
43 cross_origin: cross_origin, 45 cross_origin: cross_origin,
44 mode: expected_mode, 46 mode: expected_mode,
45 credentials: expected_credentials, 47 credentials: expected_credentials,
48 redirect: 'follow',
46 integrity: '', 49 integrity: '',
47 message: 'CSS load (url:' + 50 message: 'CSS load (url:' +
48 actual_url + ' cross_origin:' + cross_origin + ')' 51 actual_url + ' cross_origin:' + cross_origin + ')'
49 }; 52 };
50 return frame.contentWindow.load_css(actual_url, cross_origin); 53 return frame.contentWindow.load_css(actual_url, cross_origin);
51 } 54 }
52 55
53 function font_face_test(frame, url, expected_mode, expected_credentials) { 56 function font_face_test(frame, url, expected_mode, expected_credentials) {
54 var actual_url = url + (++url_count); 57 var actual_url = url + (++url_count);
55 expected_results[actual_url] = { 58 expected_results[actual_url] = {
56 url: actual_url, 59 url: actual_url,
57 mode: expected_mode, 60 mode: expected_mode,
58 credentials: expected_credentials, 61 credentials: expected_credentials,
62 redirect: 'follow',
59 integrity: '', 63 integrity: '',
60 message: 'FontFace load (url:' + actual_url + ')' 64 message: 'FontFace load (url:' + actual_url + ')'
61 }; 65 };
62 return frame.contentWindow.load_font(actual_url); 66 return frame.contentWindow.load_font(actual_url);
63 } 67 }
64 68
65 function script_integrity_test(frame, url, integrity, expected_integrity) { 69 function script_integrity_test(frame, url, integrity, expected_integrity) {
66 var actual_url = url + (++url_count); 70 var actual_url = url + (++url_count);
67 expected_results[actual_url] = { 71 expected_results[actual_url] = {
68 url: actual_url, 72 url: actual_url,
69 mode: 'no-cors', 73 mode: 'no-cors',
70 credentials: 'include', 74 credentials: 'include',
75 redirect: 'follow',
71 integrity: expected_integrity, 76 integrity: expected_integrity,
72 message: 'Script load (url:' + actual_url + ')' 77 message: 'Script load (url:' + actual_url + ')'
73 }; 78 };
74 return frame.contentWindow.load_script_with_integrity(actual_url, integrity); 79 return frame.contentWindow.load_script_with_integrity(actual_url, integrity);
75 } 80 }
76 81
77 function css_integrity_test(frame, url, integrity, expected_integrity) { 82 function css_integrity_test(frame, url, integrity, expected_integrity) {
78 var actual_url = url + (++url_count); 83 var actual_url = url + (++url_count);
79 expected_results[actual_url] = { 84 expected_results[actual_url] = {
80 url: actual_url, 85 url: actual_url,
81 mode: 'no-cors', 86 mode: 'no-cors',
82 credentials: 'include', 87 credentials: 'include',
88 redirect: 'follow',
83 integrity: expected_integrity, 89 integrity: expected_integrity,
84 message: 'CSS load (url:' + actual_url + ')' 90 message: 'CSS load (url:' + actual_url + ')'
85 }; 91 };
86 return frame.contentWindow.load_css_with_integrity(actual_url, integrity); 92 return frame.contentWindow.load_css_with_integrity(actual_url, integrity);
87 } 93 }
88 94
95 function fetch_test(frame, url, mode, credentials,
96 expected_mode, expected_credentials) {
97 var actual_url = url + (++url_count);
98 expected_results[actual_url] = {
99 mode: expected_mode,
100 credentials: expected_credentials,
101 redirect: 'follow',
102 integrity: '',
103 message: 'fetch (url:' + actual_url + ' mode:' + mode + ' credentials:' +
104 credentials + ')'
105 };
106 return frame.contentWindow.fetch(
107 new Request(actual_url, {mode: mode, credentials: credentials}));
108 }
109
110 function audio_test(frame, url, cross_origin,
111 expected_mode, expected_credentials) {
112 var actual_url = url + (++url_count);
113 expected_results[actual_url] = {
114 mode: expected_mode,
115 credentials: expected_credentials,
116 redirect: 'follow',
117 integrity: '',
118 message: 'Audio load (url:' + actual_url + ' cross_origin:' +
119 cross_origin + ')'
120 };
121 return frame.contentWindow.load_audio(actual_url, cross_origin);
122 }
123
89 async_test(function(t) { 124 async_test(function(t) {
90 var SCOPE = 'resources/fetch-request-resources-iframe.https.html'; 125 var SCOPE = 'resources/fetch-request-resources-iframe.https.html';
91 var SCRIPT = 'resources/fetch-request-resources-worker.js'; 126 var SCRIPT = 'resources/fetch-request-resources-worker.js';
92 var host_info = get_host_info(); 127 var host_info = get_host_info();
93 var LOCAL_URL = 128 var LOCAL_URL =
94 host_info['HTTPS_ORIGIN'] + base_path() + 'resources/dummy?test'; 129 host_info['HTTPS_ORIGIN'] + base_path() + 'resources/dummy?test';
95 var REMOTE_URL = 130 var REMOTE_URL =
96 host_info['HTTPS_REMOTE_ORIGIN'] + base_path() + 'resources/dummy?test'; 131 host_info['HTTPS_REMOTE_ORIGIN'] + base_path() + 'resources/dummy?test';
97 var worker; 132 var worker;
98 var frame; 133 var frame;
(...skipping 16 matching lines...) Expand all
115 return; 150 return;
116 } 151 }
117 assert_equals( 152 assert_equals(
118 result.mode, expected.mode, 153 result.mode, expected.mode,
119 'mode of ' + expected.message + ' must be ' + 154 'mode of ' + expected.message + ' must be ' +
120 expected.mode + '.'); 155 expected.mode + '.');
121 assert_equals( 156 assert_equals(
122 result.credentials, expected.credentials, 157 result.credentials, expected.credentials,
123 'credentials of ' + expected.message + ' must be ' + 158 'credentials of ' + expected.message + ' must be ' +
124 expected.credentials + '.'); 159 expected.credentials + '.');
160 assert_equals(
161 result.redirect, expected.redirect,
162 'redirect mode of ' + expected.message + ' must be ' +
163 expected.redirect + '.');
125 assert_equals( 164 assert_equals(
126 result.integrity, expected.integrity, 165 result.integrity, expected.integrity,
127 'integrity of ' + expected.message + ' must be ' + 166 'integrity of ' + expected.message + ' must be ' +
128 expected.integrity + '.'); 167 expected.integrity + '.');
129 --url_count; 168 --url_count;
130 delete expected_results[result.url]; 169 delete expected_results[result.url];
131 if (url_count == 0) { 170 if (url_count == 0) {
132 frame.remove(); 171 frame.remove();
133 service_worker_unregister_and_done(t, SCOPE); 172 service_worker_unregister_and_done(t, SCOPE);
134 } 173 }
135 }); 174 });
136 worker.postMessage( 175 worker.postMessage(
137 {port: channel.port2}, [channel.port2]); 176 {port: channel.port2}, [channel.port2]);
138 }); 177 });
139 }) 178 })
140 .then(function() { return with_iframe(SCOPE); }) 179 .then(function() { return with_iframe(SCOPE); })
141 .then(function(f) { 180 .then(function(f) {
142 frame = f; 181 frame = f;
143 182
144 image_test(f, LOCAL_URL, '', 'no-cors', 'include'); 183 image_test(f, LOCAL_URL, '', 'no-cors', 'include');
145 image_test(f, REMOTE_URL, '', 'no-cors', 'include'); 184 image_test(f, REMOTE_URL, '', 'no-cors', 'include');
146 css_test(f, LOCAL_URL, '', 'no-cors', 'include'); 185 css_test(f, LOCAL_URL, '', 'no-cors', 'include');
147 css_test(f, REMOTE_URL, '', 'no-cors', 'include'); 186 css_test(f, REMOTE_URL, '', 'no-cors', 'include');
148 187
149 image_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); 188 image_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin');
150 image_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); 189 image_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include');
190 image_test(f, REMOTE_URL, '', 'no-cors', 'include');
151 image_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); 191 image_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin');
152 image_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); 192 image_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include');
153 193
154 script_test(f, LOCAL_URL, '', 'no-cors', 'include'); 194 script_test(f, LOCAL_URL, '', 'no-cors', 'include');
155 script_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); 195 script_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin');
156 script_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); 196 script_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include');
157 script_test(f, REMOTE_URL, '', 'no-cors', 'include'); 197 script_test(f, REMOTE_URL, '', 'no-cors', 'include');
158 script_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); 198 script_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin');
159 script_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); 199 script_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include');
160 200
201 css_test(f, LOCAL_URL, '', 'no-cors', 'include');
161 css_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin'); 202 css_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin');
162 css_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); 203 css_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include');
204 css_test(f, REMOTE_URL, '', 'no-cors', 'include');
163 css_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin'); 205 css_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin');
164 css_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); 206 css_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include');
165 207
166 font_face_test(f, LOCAL_URL, 'cors', 'same-origin'); 208 font_face_test(f, LOCAL_URL, 'cors', 'same-origin');
167 font_face_test(f, REMOTE_URL, 'cors', 'same-origin'); 209 font_face_test(f, REMOTE_URL, 'cors', 'same-origin');
168 210
169 script_integrity_test(f, LOCAL_URL, ' ', ' '); 211 script_integrity_test(f, LOCAL_URL, ' ', ' ');
170 script_integrity_test(f, LOCAL_URL, 212 script_integrity_test(f, LOCAL_URL,
171 'This is not a valid integrity because it has no d ashes', 213 'This is not a valid integrity because it has no d ashes',
172 'This is not a valid integrity because it has no d ashes'); 214 'This is not a valid integrity because it has no d ashes');
173 script_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-'); 215 script_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-');
174 script_integrity_test(f, LOCAL_URL, 'sha256-foo?123', 'sha256-foo?123'); 216 script_integrity_test(f, LOCAL_URL, 'sha256-foo?123', 'sha256-foo?123');
175 script_integrity_test(f, LOCAL_URL, 'sha256-foo sha384-abc ', 'sha256-fo o sha384-abc '); 217 script_integrity_test(f, LOCAL_URL, 'sha256-foo sha384-abc ', 'sha256-fo o sha384-abc ');
176 script_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sha256-abc'); 218 script_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sha256-abc');
177 219
178 css_integrity_test(f, LOCAL_URL, ' ', ' '); 220 css_integrity_test(f, LOCAL_URL, ' ', ' ');
179 css_integrity_test(f, LOCAL_URL, 221 css_integrity_test(f, LOCAL_URL,
180 'This is not a valid integrity because it has no dash es', 222 'This is not a valid integrity because it has no dash es',
181 'This is not a valid integrity because it has no dash es'); 223 'This is not a valid integrity because it has no dash es');
182 css_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-'); 224 css_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-');
183 css_integrity_test(f, LOCAL_URL, 'sha256-foo?123', 'sha256-foo?123'); 225 css_integrity_test(f, LOCAL_URL, 'sha256-foo?123', 'sha256-foo?123');
184 css_integrity_test(f, LOCAL_URL, 'sha256-foo sha384-abc ', 'sha256-foo s ha384-abc '); 226 css_integrity_test(f, LOCAL_URL, 'sha256-foo sha384-abc ', 'sha256-foo s ha384-abc ');
185 css_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sh a256-abc'); 227 css_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sh a256-abc');
228
229 fetch_test(f, LOCAL_URL, 'same-origin', 'omit', 'same-origin', 'omit');
230 fetch_test(f, LOCAL_URL, 'same-origin', 'same-origin',
231 'same-origin', 'same-origin');
232 fetch_test(f, LOCAL_URL, 'same-origin', 'include',
233 'same-origin', 'include');
234 fetch_test(f, LOCAL_URL, 'no-cors', 'omit', 'no-cors', 'omit');
235 fetch_test(f, LOCAL_URL, 'no-cors', 'same-origin',
236 'no-cors', 'same-origin');
237 fetch_test(f, LOCAL_URL, 'no-cors', 'include', 'no-cors', 'include');
238 fetch_test(f, LOCAL_URL, 'cors', 'omit', 'cors', 'omit');
239 fetch_test(f, LOCAL_URL, 'cors', 'same-origin', 'cors', 'same-origin');
240 fetch_test(f, LOCAL_URL, 'cors', 'include', 'cors', 'include');
241 fetch_test(f, REMOTE_URL, 'no-cors', 'omit', 'no-cors', 'omit');
242 fetch_test(f, REMOTE_URL, 'no-cors', 'same-origin',
243 'no-cors', 'same-origin');
244 fetch_test(f, REMOTE_URL, 'no-cors', 'include', 'no-cors', 'include');
245 fetch_test(f, REMOTE_URL, 'cors', 'omit', 'cors', 'omit');
246 fetch_test(f, REMOTE_URL, 'cors', 'same-origin', 'cors', 'same-origin');
247 fetch_test(f, REMOTE_URL, 'cors', 'include', 'cors', 'include');
248
249 audio_test(f, LOCAL_URL, '', 'no-cors', 'include');
250 audio_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin');
251 audio_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include');
252 audio_test(f, REMOTE_URL, '', 'no-cors', 'include');
253 audio_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin');
254 audio_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include');
186 }) 255 })
187 .catch(unreached_rejection(t)); 256 .catch(unreached_rejection(t));
188 }, 'Verify FetchEvent for resources.'); 257 }, 'Verify FetchEvent for resources.');
189 </script> 258 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698