38ab23f90bccee4c3d8b97a725a3113d977dbbf4
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / serviceworker / resources / fetch-event-test-worker.js
1 function handleHelloWorld(event) {
2     event.respondWith(new Response(new Blob(["hello, world"])));
3 }
4
5 function handleNullBody(event) {
6     event.respondWith(new Response(null));
7 }
8
9 function handleReject(event) {
10     event.respondWith(new Promise(function(resolve, reject) {
11         reject('rejected!');
12     }));
13 }
14
15 function handleFetch(event) {
16     event.respondWith(fetch('other.html'));
17 }
18
19 self.addEventListener('fetch', function(event) {
20     var url = event.request.url;
21     var handlers = [
22         { pattern: 'helloworld', fn: handleHelloWorld },
23         { pattern: '?ignore', fn: function() {} },
24         { pattern: '?null', fn: handleNullBody },
25         { pattern: '?reject', fn: handleReject },
26         { pattern: '?fetch', fn: handleFetch }
27     ];
28
29     var handler = null;
30     for (var i = 0; i < handlers.length; ++i) {
31        if (url.indexOf(handlers[i].pattern) != -1) {
32            handler = handlers[i];
33            break;
34        }
35     }
36
37     if (handler)
38         handler.fn(event);
39     else
40         event.respondWith(new Response(new Blob(['Service Worker got an unexpected request: ' + url])));
41 });