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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/serviceworker/fetch-frame-resource.html

Issue 1920873002: Enable error pages for layout tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: TEST. Created 4 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: Fetch for the frame loading.</title> 2 <title>Service Worker: Fetch for the frame loading.</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/get-host-info.js"></script> 5 <script src="../resources/get-host-info.js"></script>
6 <script src="resources/test-helpers.js"></script> 6 <script src="resources/test-helpers.js"></script>
7 <body> 7 <body>
8 <script> 8 <script>
9 var worker = 'resources/fetch-rewrite-worker.js'; 9 var worker = 'resources/fetch-rewrite-worker.js';
10 var path = base_path() + 'resources/fetch-access-control.php'; 10 var path = base_path() + 'resources/fetch-access-control.php';
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 service_worker_unregister_and_register(t, worker, scope) 64 service_worker_unregister_and_register(t, worker, scope)
65 .then(function(reg) { 65 .then(function(reg) {
66 return wait_for_state(t, reg.installing, 'activated'); 66 return wait_for_state(t, reg.installing, 'activated');
67 }) 67 })
68 .then(function() { 68 .then(function() {
69 var frame = document.createElement('iframe'); 69 var frame = document.createElement('iframe');
70 frame.src = 70 frame.src =
71 scope + '?mode=no-cors&url=' + 71 scope + '?mode=no-cors&url=' +
72 encodeURIComponent(host_info['HTTP_REMOTE_ORIGIN'] + path); 72 encodeURIComponent(host_info['HTTP_REMOTE_ORIGIN'] + path);
73 document.body.appendChild(frame); 73 document.body.appendChild(frame);
74 // We can't catch the network error on iframe. So we use the timer.
75 return new Promise(function(resolve) { 74 return new Promise(function(resolve) {
76 setTimeout(function() { resolve(frame); }, 1000); 75 frame.onload = function () { resolve(frame) };
77 }); 76 });
78 }) 77 })
79 .then(function(frame) { 78 .then(function(frame) {
80 assert_equals( 79 assert_throws('SecurityError', _ => {
81 frame.contentDocument.body.textContent, 80 assert_equals(frame.contentDocument.body.textContent, '');
82 '', 81 }, 'Opaque response renders error page in the iframe.');
83 'Opaque type response could not be loaded in the iframe.');
84 frame.remove(); 82 frame.remove();
85 return service_worker_unregister_and_done(t, scope); 83 return service_worker_unregister_and_done(t, scope);
86 }) 84 })
87 .catch(unreached_rejection(t)); 85 .catch(unreached_rejection(t));
88 }, 'Opaque type response could not be loaded in the iframe.'); 86 }, 'Opaque type response could not be loaded in the iframe.');
89 87
90 async_test(function(t) { 88 async_test(function(t) {
91 var scope = 'resources/fetch-frame-resource/window-basic'; 89 var scope = 'resources/fetch-frame-resource/window-basic';
92 service_worker_unregister_and_register(t, worker, scope) 90 service_worker_unregister_and_register(t, worker, scope)
93 .then(function(reg) { 91 .then(function(reg) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 .catch(unreached_rejection(t)); 136 .catch(unreached_rejection(t));
139 }, 'CORS type response could be loaded in the new window.'); 137 }, 'CORS type response could be loaded in the new window.');
140 138
141 async_test(function(t) { 139 async_test(function(t) {
142 var scope = 'resources/fetch-frame-resource/window-opaque'; 140 var scope = 'resources/fetch-frame-resource/window-opaque';
143 service_worker_unregister_and_register(t, worker, scope) 141 service_worker_unregister_and_register(t, worker, scope)
144 .then(function(reg) { 142 .then(function(reg) {
145 return wait_for_state(t, reg.installing, 'activated'); 143 return wait_for_state(t, reg.installing, 'activated');
146 }) 144 })
147 .then(function() { 145 .then(function() {
148 var win = window.open( 146 return window.open(
149 scope + '?mode=no-cors&url=' + 147 scope + '?mode=no-cors&url=' +
150 encodeURIComponent(host_info['HTTP_REMOTE_ORIGIN'] + path)); 148 encodeURIComponent(host_info['HTTP_REMOTE_ORIGIN'] + path));
151 // We can't catch the network error on window. So we use the timer.
152 return new Promise(function(resolve) {
153 setTimeout(function() { resolve(win); }, 1000);
154 });
155 }) 149 })
156 .then(function(win) { 150 .then(function(win) {
157 assert_equals( 151 // Give the window time to load: we won't get any error or load events
158 win.document.body.textContent, 152 // so we'll set a timeout instead:
159 '', 153 setTimeout(_ => {
160 'Opaque type response could not be loaded in the new window.'); 154 assert_throws('SecurityError', _ => {
161 win.close(); 155 assert_equals(win.document.body.textContent, '');
162 return service_worker_unregister_and_done(t, scope); 156 }, 'Opaque response renders error page in the new window.');
157 win.close();
158 return service_worker_unregister_and_done(t, scope);
159 }, 1000);
163 }) 160 })
164 .catch(unreached_rejection(t)); 161 // .catch(unreached_rejection(t));
165 }, 'Opaque type response could not be loaded in the new window.'); 162 }, 'Opaque type response could not be loaded in the new window.');
166 </script> 163 </script>
167 </body> 164 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698