| // Test that multiple fetch handlers do not confuse the implementation. |
| self.addEventListener('fetch', function(event) {}); |
| |
| self.addEventListener('fetch', function(event) { |
| var testcase = new URL(event.request.url).search; |
| switch (testcase) { |
| case '?reject': |
| event.respondWith(Promise.reject()); |
| break; |
| case '?prevent-default': |
| event.preventDefault(); |
| break; |
| case '?prevent-default-and-respond-with': |
| event.preventDefault(); |
| break; |
| case '?unused-body': |
| event.respondWith(new Response('body')); |
| break; |
| case '?used-body': |
| var res = new Response('body'); |
| res.text(); |
| event.respondWith(res); |
| break; |
| case '?unused-fetched-body': |
| event.respondWith(fetch('other.html').then(function(res){ |
| return res; |
| })); |
| break; |
| case '?used-fetched-body': |
| event.respondWith(fetch('other.html').then(function(res){ |
| res.text(); |
| return res; |
| })); |
| break; |
| case '?throw-exception': |
| throw('boom'); |
| break; |
| } |
| }); |
| |
| self.addEventListener('fetch', function(event) {}); |
| |
| self.addEventListener('fetch', function(event) { |
| var testcase = new URL(event.request.url).search; |
| if (testcase == '?prevent-default-and-respond-with') |
| event.respondWith(new Response('responding!')); |
| }); |
| |
| self.addEventListener('fetch', function(event) {}); |