OLD | NEW |
---|---|
1 // controlled by 'init'/'done' messages. | 1 // controlled by 'init'/'done' messages. |
2 var resolveLockPromise; | 2 var resolveLockPromise; |
3 var port; | 3 var port; |
4 | 4 |
5 self.addEventListener('message', function(event) { | 5 self.addEventListener('message', function(event) { |
6 var waitPromise; | 6 var waitPromise; |
7 var resolveTestPromise; | 7 var resolveTestPromise; |
8 | 8 |
9 switch (event.data.step) { | 9 switch (event.data.step) { |
10 case 'init': | 10 case 'init': |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
43 async_task_waituntil(event).then(reportResultExpecting('InvalidStateErro r')); | 43 async_task_waituntil(event).then(reportResultExpecting('InvalidStateErro r')); |
44 break; | 44 break; |
45 case 'script-extendable-event': | 45 case 'script-extendable-event': |
46 new_event_waituntil().then(reportResultExpecting('InvalidStateError')); | 46 new_event_waituntil().then(reportResultExpecting('InvalidStateError')); |
47 break; | 47 break; |
48 } | 48 } |
49 event.source.postMessage('ACK'); | 49 event.source.postMessage('ACK'); |
50 }); | 50 }); |
51 | 51 |
52 self.addEventListener('fetch', function(event) { | 52 self.addEventListener('fetch', function(event) { |
53 var resolveFetch; | 53 if (event.request.url.indexOf('pending-respondwith-async-waituntil') != -1) { |
54 let response = new Promise((res) => { resolveFetch = res; }); | 54 var resolveFetch; |
55 event.respondWith(response); | 55 let response = new Promise((res) => { resolveFetch = res; }); |
56 async_task_waituntil(event) | 56 event.respondWith(response); |
57 .then(reportResultExpecting('OK')) | 57 async_task_waituntil(event) |
58 .then(() => { resolveFetch(new Response('OK')); }); | 58 .then(reportResultExpecting('OK')) |
59 .then(() => { resolveFetch(new Response('OK')); }); | |
60 } else if (event.request.url.endsWith('respondwith-microtask-sync-waituntil' ) != -1) { | |
61 event.respondWith(Promise.resolve().then(() => { | |
62 sync_waituntil(event).then(reportResultExpecting('OK')); | |
63 return new Response('OK'); | |
64 })); | |
falken
2017/05/24 08:24:18
did these tests catch an implementation bug?
i wo
leonhsl(Using Gerrit)
2017/05/25 00:16:39
I thought test coverage for respondWith is not eno
leonhsl(Using Gerrit)
2017/05/25 06:43:55
Done.
| |
65 } else if (event.request.url.endsWith('respondwith-microtask-async-waituntil ') != -1) { | |
66 event.respondWith(Promise.resolve().then(() => { | |
67 async_microtask_waituntil(event).then(reportResultExpecting('OK')); | |
68 return new Response('OK'); | |
69 })); | |
falken
2017/05/24 08:24:18
nit: indentation looks wrong, 62-63 and 67-68 shou
leonhsl(Using Gerrit)
2017/05/25 00:16:39
Acknowledged.
| |
70 } | |
59 }); | 71 }); |
60 | 72 |
61 function reportResultExpecting(expectedResult) { | 73 function reportResultExpecting(expectedResult) { |
62 return function (result) { | 74 return function (result) { |
63 port.postMessage({result : result, expected: expectedResult}); | 75 port.postMessage({result : result, expected: expectedResult}); |
64 return result; | 76 return result; |
65 }; | 77 }; |
66 } | 78 } |
67 | 79 |
68 function sync_waituntil(event) { | 80 function sync_waituntil(event) { |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
106 setTimeout(() => { | 118 setTimeout(() => { |
107 try { | 119 try { |
108 event.waitUntil(Promise.resolve()); | 120 event.waitUntil(Promise.resolve()); |
109 res('OK'); | 121 res('OK'); |
110 } catch (error) { | 122 } catch (error) { |
111 res(error.name); | 123 res(error.name); |
112 } | 124 } |
113 }, 0); | 125 }, 0); |
114 }); | 126 }); |
115 } | 127 } |
OLD | NEW |