Index: LayoutTests/http/tests/serviceworker/resources/fetch-event-network-error-controllee-iframe.html |
diff --git a/LayoutTests/http/tests/serviceworker/resources/fetch-event-network-error-controllee-iframe.html b/LayoutTests/http/tests/serviceworker/resources/fetch-event-network-error-controllee-iframe.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..281e8ebd65eec7ecc56faf28681a7c754fdc703a |
--- /dev/null |
+++ b/LayoutTests/http/tests/serviceworker/resources/fetch-event-network-error-controllee-iframe.html |
@@ -0,0 +1,55 @@ |
+<!DOCTYPE html> |
+<script> |
+function fetch_url(url) { |
+ return new Promise(function(resolve, reject) { |
+ var request = new XMLHttpRequest(); |
+ request.addEventListener('load', function(event) { |
+ resolve(); |
+ }); |
+ request.addEventListener('error', function(event) { |
+ reject(); |
+ }); |
+ request.open('GET', url); |
+ request.send(); |
+ }); |
+} |
+ |
+function make_test(testcase) { |
+ var name = testcase.name; |
+ return fetch_url(window.location.href + '?' + name) |
+ .then( |
+ function() { |
+ if (testcase.expect_load) |
+ return Promise.resolve(); |
+ return Promise.reject(new Error( |
+ name + ': expected network error but loaded')); |
+ }, |
+ function() { |
+ if (!testcase.expect_load) |
+ return Promise.resolve(); |
+ return Promise.reject(new Error( |
+ name + ': expected to load but got network error')); |
+ }); |
+} |
+ |
+function run_tests() { |
+ var tests = [ |
+ { name: 'prevent-default-and-respond-with', expect_load: true }, |
+ { name: 'prevent-default', expect_load: false }, |
+ { name: 'reject', expect_load: false } |
+ ].map(make_test); |
+ |
+ Promise.all(tests) |
+ .then(function() { |
+ window.parent.notify_test_done('PASS'); |
+ }) |
+ .catch(function(error) { |
+ window.parent.notify_test_done('FAIL: ' + error.message); |
+ }); |
+} |
+ |
+if (!navigator.serviceWorker.controller) |
+ window.parent.notify_done('FAIL: no controller'); |
+else |
+ run_tests(); |
+</script> |