| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <script> | |
| 3 function fetch_url(url) { | |
| 4 return new Promise(function(resolve, reject) { | |
| 5 var request = new XMLHttpRequest(); | |
| 6 request.addEventListener('load', function(event) { | |
| 7 resolve(); | |
| 8 }); | |
| 9 request.addEventListener('error', function(event) { | |
| 10 reject(); | |
| 11 }); | |
| 12 request.open('GET', url); | |
| 13 request.send(); | |
| 14 }); | |
| 15 } | |
| 16 | |
| 17 function make_test(testcase) { | |
| 18 var name = testcase.name; | |
| 19 return fetch_url(window.location.href + '?' + name) | |
| 20 .then( | |
| 21 function() { | |
| 22 if (testcase.expect_load) | |
| 23 return Promise.resolve(); | |
| 24 return Promise.reject(new Error( | |
| 25 name + ': expected network error but loaded')); | |
| 26 }, | |
| 27 function() { | |
| 28 if (!testcase.expect_load) | |
| 29 return Promise.resolve(); | |
| 30 return Promise.reject(new Error( | |
| 31 name + ': expected to load but got network error')); | |
| 32 }); | |
| 33 } | |
| 34 | |
| 35 function run_tests() { | |
| 36 var tests = [ | |
| 37 { name: 'prevent-default-and-respond-with', expect_load: true }, | |
| 38 { name: 'prevent-default', expect_load: false }, | |
| 39 { name: 'reject', expect_load: false }, | |
| 40 { name: 'unused-body', expect_load: true }, | |
| 41 { name: 'used-body', expect_load: false }, | |
| 42 { name: 'unused-fetched-body', expect_load: true }, | |
| 43 { name: 'used-fetched-body', expect_load: false } | |
| 44 ].map(make_test); | |
| 45 | |
| 46 Promise.all(tests) | |
| 47 .then(function() { | |
| 48 window.parent.notify_test_done('PASS'); | |
| 49 }) | |
| 50 .catch(function(error) { | |
| 51 window.parent.notify_test_done('FAIL: ' + error.message); | |
| 52 }); | |
| 53 } | |
| 54 | |
| 55 if (!navigator.serviceWorker.controller) | |
| 56 window.parent.notify_done('FAIL: no controller'); | |
| 57 else | |
| 58 run_tests(); | |
| 59 </script> | |
| OLD | NEW |