OLD | NEW |
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="resources/test-helpers.js?pipe=sub"></script> | 5 <script src="resources/test-helpers.js?pipe=sub"></script> |
6 <script> | 6 <script> |
7 var url_count = 0; | 7 var url_count = 0; |
8 var expected_results = {}; | 8 var expected_results = {}; |
9 | 9 |
10 function image_test(frame, url, cross_origin, | 10 function image_test(frame, url, cross_origin, expected_context, |
11 expexted_mode, expected_credentials) { | 11 expexted_mode, expected_credentials) { |
12 var actual_url = url + (++url_count); | 12 var actual_url = url + (++url_count); |
13 expected_results[actual_url] = { | 13 expected_results[actual_url] = { |
14 cross_origin: cross_origin, | 14 cross_origin: cross_origin, |
| 15 context: expected_context, |
15 mode: expexted_mode, | 16 mode: expexted_mode, |
16 credentials: expected_credentials, | 17 credentials: expected_credentials, |
17 message: 'Image load (url:' + | 18 message: 'Image load (url:' + |
18 actual_url + ' cross_origin:' + cross_origin + ')' | 19 actual_url + ' cross_origin:' + cross_origin + ')' |
19 }; | 20 }; |
20 return frame.contentWindow.load_image(actual_url, cross_origin); | 21 return frame.contentWindow.load_image(actual_url, cross_origin); |
21 } | 22 } |
22 | 23 |
23 function script_test(frame, url, cross_origin, | 24 function script_test(frame, url, cross_origin, expected_context, |
24 expexted_mode, expected_credentials) { | 25 expexted_mode, expected_credentials) { |
25 var actual_url = url + (++url_count); | 26 var actual_url = url + (++url_count); |
26 expected_results[actual_url] = { | 27 expected_results[actual_url] = { |
27 cross_origin: cross_origin, | 28 cross_origin: cross_origin, |
| 29 context: expected_context, |
28 mode: expexted_mode, | 30 mode: expexted_mode, |
29 credentials: expected_credentials, | 31 credentials: expected_credentials, |
30 message: 'Script load (url:' + | 32 message: 'Script load (url:' + |
31 actual_url + ' cross_origin:' + cross_origin + ')' | 33 actual_url + ' cross_origin:' + cross_origin + ')' |
32 }; | 34 }; |
33 return frame.contentWindow.load_script(actual_url, cross_origin); | 35 return frame.contentWindow.load_script(actual_url, cross_origin); |
34 } | 36 } |
35 | 37 |
36 function css_test(frame, url, cross_origin, | 38 function css_test(frame, url, cross_origin, expected_context, |
37 expexted_mode, expected_credentials) { | 39 expexted_mode, expected_credentials) { |
38 var actual_url = url + (++url_count); | 40 var actual_url = url + (++url_count); |
39 expected_results[actual_url] = { | 41 expected_results[actual_url] = { |
40 cross_origin: cross_origin, | 42 cross_origin: cross_origin, |
| 43 context: expected_context, |
41 mode: expexted_mode, | 44 mode: expexted_mode, |
42 credentials: expected_credentials, | 45 credentials: expected_credentials, |
43 message: 'CSS load (url:' + | 46 message: 'CSS load (url:' + |
44 actual_url + ' cross_origin:' + cross_origin + ')' | 47 actual_url + ' cross_origin:' + cross_origin + ')' |
45 }; | 48 }; |
46 return frame.contentWindow.load_css(actual_url, cross_origin); | 49 return frame.contentWindow.load_css(actual_url, cross_origin); |
47 } | 50 } |
48 | 51 |
49 function font_face_test(frame, url, expexted_mode, expected_credentials) { | 52 function font_face_test(frame, url, expected_context, expexted_mode, |
| 53 expected_credentials) { |
50 var actual_url = url + (++url_count); | 54 var actual_url = url + (++url_count); |
51 expected_results[actual_url] = { | 55 expected_results[actual_url] = { |
52 url: actual_url, | 56 url: actual_url, |
| 57 context: expected_context, |
53 mode: expexted_mode, | 58 mode: expexted_mode, |
54 credentials: expected_credentials, | 59 credentials: expected_credentials, |
55 message: 'FontFace load (url:' + actual_url + ')' | 60 message: 'FontFace load (url:' + actual_url + ')' |
56 }; | 61 }; |
57 return frame.contentWindow.load_font(actual_url); | 62 return frame.contentWindow.load_font(actual_url); |
58 } | 63 } |
59 | 64 |
60 function css_image_test(frame, url, type, expexted_mode, expected_credentials) { | 65 function css_image_test(frame, url, type, expected_context, |
| 66 expexted_mode, expected_credentials) { |
61 var actual_url = url + (++url_count); | 67 var actual_url = url + (++url_count); |
62 expected_results[actual_url] = { | 68 expected_results[actual_url] = { |
63 url: actual_url, | 69 url: actual_url, |
| 70 context: expected_context, |
64 mode: expexted_mode, | 71 mode: expexted_mode, |
65 credentials: expected_credentials, | 72 credentials: expected_credentials, |
66 message: 'CSSImage load (url:' + actual_url + ' type:' + type + ')' | 73 message: 'CSSImage load (url:' + actual_url + ' type:' + type + ')' |
67 }; | 74 }; |
68 return frame.contentWindow.load_css_image(actual_url, type); | 75 return frame.contentWindow.load_css_image(actual_url, type); |
69 } | 76 } |
70 | 77 |
71 function css_image_set_test(frame, url, type, | 78 function css_image_set_test(frame, url, type, expected_context, |
72 expexted_mode, expected_credentials) { | 79 expexted_mode, expected_credentials) { |
73 var actual_url = url + (++url_count); | 80 var actual_url = url + (++url_count); |
74 expected_results[actual_url] = { | 81 expected_results[actual_url] = { |
75 url: actual_url, | 82 url: actual_url, |
| 83 context: expected_context, |
76 mode: expexted_mode, | 84 mode: expexted_mode, |
77 credentials: expected_credentials, | 85 credentials: expected_credentials, |
78 message: 'CSSImageSet load (url:' + actual_url + ' type:' + type + ')' | 86 message: 'CSSImageSet load (url:' + actual_url + ' type:' + type + ')' |
79 }; | 87 }; |
80 return frame.contentWindow.load_css_image_set(actual_url, type); | 88 return frame.contentWindow.load_css_image_set(actual_url, type); |
81 } | 89 } |
82 | 90 |
83 async_test(function(t) { | 91 async_test(function(t) { |
84 var SCOPE = 'resources/fetch-request-resources-iframe.html'; | 92 var SCOPE = 'resources/fetch-request-resources-iframe.html'; |
85 var SCRIPT = 'resources/fetch-request-resources-worker.js'; | 93 var SCRIPT = 'resources/fetch-request-resources-worker.js'; |
(...skipping 16 matching lines...) Expand all Loading... |
102 if (msg.data.ready) { | 110 if (msg.data.ready) { |
103 resolve(); | 111 resolve(); |
104 return; | 112 return; |
105 } | 113 } |
106 var result = msg.data; | 114 var result = msg.data; |
107 var expected = expected_results[result.url]; | 115 var expected = expected_results[result.url]; |
108 if (!expected) { | 116 if (!expected) { |
109 return; | 117 return; |
110 } | 118 } |
111 assert_equals( | 119 assert_equals( |
| 120 result.context, expected.context, |
| 121 'context of ' + expected.message + ' must be ' + |
| 122 expected.context + '.'); |
| 123 assert_equals( |
| 124 result.context_clone, expected.context, |
| 125 'context of clone() of' + expected.message + |
| 126 ' must be ' + expected.context + '.'); |
| 127 assert_equals( |
| 128 result.context_new, '', |
| 129 'context of new Request() must be the empty string'); |
| 130 assert_equals( |
112 result.mode, expected.mode, | 131 result.mode, expected.mode, |
113 'mode of ' + expected.message + ' must be ' + | 132 'mode of ' + expected.message + ' must be ' + |
114 expected.mode + '.'); | 133 expected.mode + '.'); |
115 assert_equals( | 134 assert_equals( |
116 result.credentials, expected.credentials, | 135 result.credentials, expected.credentials, |
117 'credentials of ' + expected.message + ' must be ' + | 136 'credentials of ' + expected.message + ' must be ' + |
118 expected.credentials + '.'); | 137 expected.credentials + '.'); |
119 --url_count; | 138 --url_count; |
120 delete expected_results[result.url]; | 139 delete expected_results[result.url]; |
121 if (url_count == 0) { | 140 if (url_count == 0) { |
122 frame.remove(); | 141 frame.remove(); |
123 service_worker_unregister_and_done(t, SCOPE); | 142 service_worker_unregister_and_done(t, SCOPE); |
124 } | 143 } |
125 }); | 144 }); |
126 worker.postMessage( | 145 worker.postMessage( |
127 {port: channel.port2}, [channel.port2]); | 146 {port: channel.port2}, [channel.port2]); |
128 }); | 147 }); |
129 }) | 148 }) |
130 .then(function() { return with_iframe(SCOPE); }) | 149 .then(function() { return with_iframe(SCOPE); }) |
131 .then(function(f) { | 150 .then(function(f) { |
132 frame = f; | 151 frame = f; |
133 image_test(f, LOCAL_URL, '', 'no-cors', 'same-origin'); | 152 image_test(f, LOCAL_URL, '', 'image', 'no-cors', 'same-origin'); |
134 image_test(f, LOCAL_URL, 'anonymous', 'cors', 'omit'); | 153 image_test(f, LOCAL_URL, 'anonymous', 'image', 'cors', 'omit'); |
135 image_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); | 154 image_test(f, LOCAL_URL, 'use-credentials', 'image', 'cors', |
136 image_test(f, REMOTE_URL, '', 'no-cors', 'same-origin'); | 155 'include'); |
137 image_test(f, REMOTE_URL, 'anonymous', 'cors', 'omit'); | 156 image_test(f, REMOTE_URL, '', 'image', 'no-cors', 'same-origin'); |
138 image_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); | 157 image_test(f, REMOTE_URL, 'anonymous', 'image', 'cors', 'omit'); |
| 158 image_test(f, REMOTE_URL, 'use-credentials', 'image', 'cors', |
| 159 'include'); |
139 | 160 |
140 script_test(f, LOCAL_URL, '', 'no-cors', 'same-origin'); | 161 script_test(f, LOCAL_URL, '', 'script', 'no-cors', 'same-origin'); |
141 script_test(f, LOCAL_URL, 'anonymous', 'cors', 'omit'); | 162 script_test(f, LOCAL_URL, 'anonymous', 'script', 'cors', 'omit'); |
142 script_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); | 163 script_test(f, LOCAL_URL, 'use-credentials', 'script', 'cors', |
143 script_test(f, REMOTE_URL, '', 'no-cors', 'same-origin'); | 164 'include'); |
144 script_test(f, REMOTE_URL, 'anonymous', 'cors', 'omit'); | 165 script_test(f, REMOTE_URL, '', 'script', 'no-cors', 'same-origin'); |
145 script_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); | 166 script_test(f, REMOTE_URL, 'anonymous', 'script', 'cors', 'omit'); |
| 167 script_test(f, REMOTE_URL, 'use-credentials', 'script', 'cors', |
| 168 'include'); |
146 | 169 |
147 css_test(f, LOCAL_URL, '', 'no-cors', 'same-origin'); | 170 css_test(f, LOCAL_URL, '', 'style', 'no-cors', 'same-origin'); |
148 css_test(f, LOCAL_URL, 'anonymous', 'cors', 'omit'); | 171 css_test(f, LOCAL_URL, 'anonymous', 'style', 'cors', 'omit'); |
149 css_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include'); | 172 css_test(f, LOCAL_URL, 'use-credentials', 'style', 'cors', |
150 css_test(f, REMOTE_URL, '', 'no-cors', 'same-origin'); | 173 'include'); |
151 css_test(f, REMOTE_URL, 'anonymous', 'cors', 'omit'); | 174 css_test(f, REMOTE_URL, '', 'style', 'no-cors', 'same-origin'); |
152 css_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include'); | 175 css_test(f, REMOTE_URL, 'anonymous', 'style', 'cors', 'omit'); |
| 176 css_test(f, REMOTE_URL, 'use-credentials', 'style', 'cors', |
| 177 'include'); |
153 | 178 |
154 font_face_test(f, LOCAL_URL, 'no-cors', 'same-origin'); | 179 font_face_test(f, LOCAL_URL, 'font', 'no-cors', 'same-origin'); |
155 font_face_test(f, REMOTE_URL, 'cors', 'omit'); | 180 font_face_test(f, REMOTE_URL, 'font', 'cors', 'omit'); |
156 | 181 |
157 css_image_test(f, LOCAL_URL, 'backgroundImage', | 182 css_image_test(f, LOCAL_URL, 'backgroundImage', 'image', |
158 'no-cors', 'same-origin'); | 183 'no-cors', 'same-origin'); |
159 css_image_test(f, REMOTE_URL, 'backgroundImage', | 184 css_image_test(f, REMOTE_URL, 'backgroundImage', 'image', |
160 'no-cors', 'same-origin'); | 185 'no-cors', 'same-origin'); |
161 css_image_test(f, LOCAL_URL, 'shapeOutside', 'cors', 'omit'); | 186 css_image_test(f, LOCAL_URL, 'shapeOutside', 'image', 'cors', |
162 css_image_test(f, REMOTE_URL, 'shapeOutside', 'cors', 'omit'); | 187 'omit'); |
| 188 css_image_test(f, REMOTE_URL, 'shapeOutside', 'image', 'cors', |
| 189 'omit'); |
163 | 190 |
164 css_image_set_test(f, LOCAL_URL, 'backgroundImage', | 191 css_image_set_test(f, LOCAL_URL, 'backgroundImage', 'image', |
165 'no-cors', 'same-origin'); | 192 'no-cors', 'same-origin'); |
166 css_image_set_test(f, REMOTE_URL, 'backgroundImage', | 193 css_image_set_test(f, REMOTE_URL, 'backgroundImage', 'image', |
167 'no-cors', 'same-origin'); | 194 'no-cors', 'same-origin'); |
168 css_image_set_test(f, LOCAL_URL, 'shapeOutside', 'cors', 'omit'); | 195 css_image_set_test(f, LOCAL_URL, 'shapeOutside', 'image', 'cors', |
169 css_image_set_test(f, REMOTE_URL, 'shapeOutside', 'cors', 'omit'); | 196 'omit'); |
| 197 css_image_set_test(f, REMOTE_URL, 'shapeOutside', 'image', 'cors', |
| 198 'omit'); |
170 | 199 |
171 }) | 200 }) |
172 .catch(unreached_rejection(t)); | 201 .catch(unreached_rejection(t)); |
173 }, 'Verify FetchEvent for resources.'); | 202 }, 'Verify FetchEvent for resources.'); |
174 </script> | 203 </script> |
OLD | NEW |