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

Side by Side Diff: third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/fetch-request-resources.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
(Empty)
1 <!DOCTYPE html>
2 <title>Service Worker: FetchEvent for resources</title>
3 <script src="/resources/testharness.js"></script>
4 <script src="/resources/testharnessreport.js"></script>
5 <script src="resources/get-host-info.sub.js"></script>
6 <script src="resources/test-helpers.sub.js?pipe=sub"></script>
7 <script>
8 var url_count = 0;
9 var expected_results = {};
10
11 function image_test(frame, url, cross_origin, expected_mode,
12 expected_credentials) {
13 var actual_url = url + (++url_count);
14 expected_results[actual_url] = {
15 cross_origin: cross_origin,
16 mode: expected_mode,
17 credentials: expected_credentials,
18 integrity: '',
19 message: 'Image load (url:' +
20 actual_url + ' cross_origin:' + cross_origin + ')'
21 };
22 return frame.contentWindow.load_image(actual_url, cross_origin);
23 }
24
25 function script_test(frame, url, cross_origin, expected_mode,
26 expected_credentials) {
27 var actual_url = url + (++url_count);
28 expected_results[actual_url] = {
29 cross_origin: cross_origin,
30 mode: expected_mode,
31 credentials: expected_credentials,
32 integrity: '',
33 message: 'Script load (url:' +
34 actual_url + ' cross_origin:' + cross_origin + ')'
35 };
36 return frame.contentWindow.load_script(actual_url, cross_origin);
37 }
38
39 function css_test(frame, url, cross_origin, expected_mode,
40 expected_credentials) {
41 var actual_url = url + (++url_count);
42 expected_results[actual_url] = {
43 cross_origin: cross_origin,
44 mode: expected_mode,
45 credentials: expected_credentials,
46 integrity: '',
47 message: 'CSS load (url:' +
48 actual_url + ' cross_origin:' + cross_origin + ')'
49 };
50 return frame.contentWindow.load_css(actual_url, cross_origin);
51 }
52
53 function font_face_test(frame, url, expected_mode, expected_credentials) {
54 var actual_url = url + (++url_count);
55 expected_results[actual_url] = {
56 url: actual_url,
57 mode: expected_mode,
58 credentials: expected_credentials,
59 integrity: '',
60 message: 'FontFace load (url:' + actual_url + ')'
61 };
62 return frame.contentWindow.load_font(actual_url);
63 }
64
65 function script_integrity_test(frame, url, integrity, expected_integrity) {
66 var actual_url = url + (++url_count);
67 expected_results[actual_url] = {
68 url: actual_url,
69 mode: 'no-cors',
70 credentials: 'include',
71 integrity: expected_integrity,
72 message: 'Script load (url:' + actual_url + ')'
73 };
74 return frame.contentWindow.load_script_with_integrity(actual_url, integrity);
75 }
76
77 function css_integrity_test(frame, url, integrity, expected_integrity) {
78 var actual_url = url + (++url_count);
79 expected_results[actual_url] = {
80 url: actual_url,
81 mode: 'no-cors',
82 credentials: 'include',
83 integrity: expected_integrity,
84 message: 'CSS load (url:' + actual_url + ')'
85 };
86 return frame.contentWindow.load_css_with_integrity(actual_url, integrity);
87 }
88
89 async_test(function(t) {
90 var SCOPE = 'resources/fetch-request-resources-iframe.https.html';
91 var SCRIPT = 'resources/fetch-request-resources-worker.js';
92 var host_info = get_host_info();
93 var LOCAL_URL =
94 host_info['HTTPS_ORIGIN'] + base_path() + 'resources/dummy?test';
95 var REMOTE_URL =
96 host_info['HTTPS_REMOTE_ORIGIN'] + base_path() + 'resources/dummy?test';
97 var worker;
98 var frame;
99 service_worker_unregister_and_register(t, SCRIPT, SCOPE)
100 .then(function(registration) {
101 worker = registration.installing;
102 return wait_for_state(t, worker, 'activated');
103 })
104 .then(function() {
105 return new Promise(function(resolve) {
106 var channel = new MessageChannel();
107 channel.port1.onmessage = t.step_func(function(msg) {
108 if (msg.data.ready) {
109 resolve();
110 return;
111 }
112 var result = msg.data;
113 var expected = expected_results[result.url];
114 if (!expected) {
115 return;
116 }
117 assert_equals(
118 result.mode, expected.mode,
119 'mode of ' + expected.message + ' must be ' +
120 expected.mode + '.');
121 assert_equals(
122 result.credentials, expected.credentials,
123 'credentials of ' + expected.message + ' must be ' +
124 expected.credentials + '.');
125 assert_equals(
126 result.integrity, expected.integrity,
127 'integrity of ' + expected.message + ' must be ' +
128 expected.integrity + '.');
129 --url_count;
130 delete expected_results[result.url];
131 if (url_count == 0) {
132 frame.remove();
133 service_worker_unregister_and_done(t, SCOPE);
134 }
135 });
136 worker.postMessage(
137 {port: channel.port2}, [channel.port2]);
138 });
139 })
140 .then(function() { return with_iframe(SCOPE); })
141 .then(function(f) {
142 frame = f;
143
144 image_test(f, LOCAL_URL, '', 'no-cors', 'include');
145 image_test(f, REMOTE_URL, '', 'no-cors', 'include');
146 css_test(f, LOCAL_URL, '', 'no-cors', 'include');
147 css_test(f, REMOTE_URL, '', 'no-cors', 'include');
148
149 image_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin');
150 image_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include');
151 image_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin');
152 image_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include');
153
154 script_test(f, LOCAL_URL, '', 'no-cors', 'include');
155 script_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin');
156 script_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include');
157 script_test(f, REMOTE_URL, '', 'no-cors', 'include');
158 script_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin');
159 script_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include');
160
161 css_test(f, LOCAL_URL, 'anonymous', 'cors', 'same-origin');
162 css_test(f, LOCAL_URL, 'use-credentials', 'cors', 'include');
163 css_test(f, REMOTE_URL, 'anonymous', 'cors', 'same-origin');
164 css_test(f, REMOTE_URL, 'use-credentials', 'cors', 'include');
165
166 font_face_test(f, LOCAL_URL, 'cors', 'same-origin');
167 font_face_test(f, REMOTE_URL, 'cors', 'same-origin');
168
169 script_integrity_test(f, LOCAL_URL, ' ', ' ');
170 script_integrity_test(f, LOCAL_URL,
171 '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');
173 script_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-');
174 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 ');
176 script_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sha256-abc');
177
178 css_integrity_test(f, LOCAL_URL, ' ', ' ');
179 css_integrity_test(f, LOCAL_URL,
180 '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');
182 css_integrity_test(f, LOCAL_URL, 'sha256-', 'sha256-');
183 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 ');
185 css_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sh a256-abc');
186 })
187 .catch(unreached_rejection(t));
188 }, 'Verify FetchEvent for resources.');
189 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698