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 |