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

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

Issue 2676733002: Upstream foreign fetch tests. (Closed)
Patch Set: rebase Created 3 years, 10 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 <script src="../resources/testharness.js"></script> 2 <title>Service Worker: Foreign Fetch CORS functionality</title>
3 <script src="../resources/testharnessreport.js"></script> 3 <script src="/resources/testharness.js"></script>
4 <script src="../resources/get-host-info.js"></script> 4 <script src="/resources/testharnessreport.js"></script>
5 <script src="resources/test-helpers.js"></script> 5 <script src="resources/get-host-info.sub.js"></script>
6 <script src="resources/test-helpers.sub.js"></script>
6 <script src="resources/foreign-fetch-helpers.js"></script> 7 <script src="resources/foreign-fetch-helpers.js"></script>
7 <body> 8 <body>
8 <script> 9 <script>
9 var host_info = get_host_info(); 10 var host_info = get_host_info();
10 var origin = new URL(self.location).origin; 11 var origin = new URL(self.location).origin;
11 var wrong_origin = 'https://example.com/'; 12 var wrong_origin = 'https://example.com/';
12 var test_header = 'X-ServiceWorker-ServerHeader'; 13 var test_header = 'X-ServiceWorker-ServerHeader';
13 14
14 function url_to_fetch(scope) { 15 function url_to_fetch(scope) {
15 return host_info.HTTPS_REMOTE_ORIGIN + '/serviceworker/resources/' + scope; 16 return host_info.HTTPS_REMOTE_ORIGIN + new URL('resources/', location).pathnam e + scope;
16 } 17 }
17 18
18 function worker_for_response(response) { 19 function worker_for_response(response) {
19 return 'foreign-fetch-cors-worker.js?' + 20 return 'foreign-fetch-cors-worker.js?' +
20 encodeURIComponent(JSON.stringify(response)); 21 encodeURIComponent(JSON.stringify(response));
21 } 22 }
22 23
23 function scope_for_params(params) { 24 function scope_for_params(params) {
24 return 'simple.txt?' + encodeURIComponent(JSON.stringify(params)); 25 return 'simple.txt?' + encodeURIComponent(JSON.stringify(params));
25 } 26 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 var response; 70 var response;
70 var cache; 71 var cache;
71 return fetch(url) 72 return fetch(url)
72 .then(r => { 73 .then(r => {
73 response = r.clone(); 74 response = r.clone();
74 assert_equals(r.type, 'cors'); 75 assert_equals(r.type, 'cors');
75 assert_equals(r.headers.get(test_header), header_value, 'From fetch'); 76 assert_equals(r.headers.get(test_header), header_value, 'From fetch');
76 return r.text(); 77 return r.text();
77 }) 78 })
78 .then(response_text => { 79 .then(response_text => {
79 assert_true(response_text.startsWith('report(')); 80 assert_true(response_text.startsWith('report('),
81 'Correct content via fetch');
80 return self.caches.open(url); 82 return self.caches.open(url);
81 }) 83 })
82 .then(c => { 84 .then(c => {
83 cache = c; 85 cache = c;
84 return cache.put(url, response); 86 return cache.put(url, response);
85 }) 87 })
86 .then(() => cache.match(url)) 88 .then(() => cache.match(url))
87 .then(r => { 89 .then(r => {
88 assert_equals(r.type, 'cors'); 90 assert_equals(r.type, 'cors');
89 assert_equals(r.headers.get(test_header), header_value, 'From cache'); 91 assert_equals(r.headers.get(test_header), header_value, 'From cache');
90 return r.text(); 92 return r.text();
91 }) 93 })
92 .then(response_text => { 94 .then(response_text => {
93 assert_true(response_text.startsWith('report(')); 95 assert_true(response_text.startsWith('report('),
96 'Correct content via cache');
94 return self.caches.delete(url); 97 return self.caches.delete(url);
95 }) 98 })
96 .then(() => new Promise(resolve => { 99 .then(() => new Promise(resolve => {
97 var request = new XMLHttpRequest(); 100 var request = new XMLHttpRequest();
98 request.open('GET', url); 101 request.open('GET', url);
99 request.onreadystatechange = () => { 102 request.onreadystatechange = () => {
100 if (request.readyState == 4) resolve(request); 103 if (request.readyState == 4) resolve(request);
101 }; 104 };
102 request.send(); 105 request.send();
103 })) 106 }))
104 .then(xhr => { 107 .then(xhr => {
105 assert_true(xhr.responseText.startsWith('report(')); 108 assert_true(xhr.responseText.startsWith('report('),
109 'Correct content via xhr');
106 assert_equals(xhr.getResponseHeader(test_header), header_value); 110 assert_equals(xhr.getResponseHeader(test_header), header_value);
107 var headers = xhr.getAllResponseHeaders().toLowerCase(); 111 var headers = xhr.getAllResponseHeaders().toLowerCase();
108 if (header_value) { 112 if (header_value) {
109 assert_true(headers.includes(test_header.toLowerCase() + ': ' + 113 assert_true(headers.includes(test_header.toLowerCase() + ': ' +
110 header_value.toLowerCase())); 114 header_value.toLowerCase()));
111 } else { 115 } else {
112 assert_false(headers.includes(test_header.toLowerCase())); 116 assert_false(headers.includes(test_header.toLowerCase()));
113 } 117 }
114 }); 118 });
115 } 119 }
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 for (var i = 0; i < tests.length; ++i) (data => { 297 for (var i = 0; i < tests.length; ++i) (data => {
294 promise_test(t => { 298 promise_test(t => {
295 var scope = scope_for_params(data.params); 299 var scope = scope_for_params(data.params);
296 var worker = worker_for_response(data.response); 300 var worker = worker_for_response(data.response);
297 return install_cross_origin_worker(t, worker, scope) 301 return install_cross_origin_worker(t, worker, scope)
298 .then(() => data.expectation(url_to_fetch(scope), t)); 302 .then(() => data.expectation(url_to_fetch(scope), t));
299 }, data.description); 303 }, data.description);
300 })(tests[i]); 304 })(tests[i]);
301 </script> 305 </script>
302 </body> 306 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698