Source code

Revision control

Copy as Markdown

Other Tools

// 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) {});