OLD | NEW |
---|---|
(Empty) | |
1 <!DOCTYPE html> | |
horo
2016/10/25 07:51:47
Nit:
Why are you using camelCase filename?
I don't
falken
2016/10/25 08:06:29
Done. No reason, just forgot.
| |
2 <meta charset="utf-8"> | |
3 <title>NavigationPreloadManager.getState</title> | |
4 <script src="../../resources/testharness.js"></script> | |
5 <script src="../../resources/testharnessreport.js"></script> | |
6 <script src="../resources/test-helpers.js"></script> | |
7 <body> | |
8 <script> | |
9 function post_and_wait_for_reply(worker, message) { | |
10 return new Promise(resolve => { | |
11 navigator.serviceWorker.onmessage = e => { resolve(e.data); }; | |
12 worker.postMessage(message); | |
13 }); | |
14 } | |
15 | |
16 promise_test(t => { | |
17 const scope = '../resources/getState'; | |
18 const script = '../resources/empty-worker.js'; | |
19 var registration; | |
20 | |
21 return service_worker_unregister_and_register(t, script, scope) | |
22 .then(r => { | |
23 registration = r; | |
24 add_completion_callback(() => registration.unregister()); | |
25 return registration.navigationPreload.getState(); | |
26 }) | |
27 .then(state => { | |
28 assert_equals(state.enabled, false, | |
29 '.enabled should be false by default'); | |
30 return registration.navigationPreload.enable(); | |
31 }) | |
32 .then(() => registration.navigationPreload.getState()) | |
33 .then(state => { | |
34 assert_equals(state.enabled, true, | |
35 '.enabled should be true after enable()'); | |
36 return registration.navigationPreload.disable(); | |
37 }) | |
38 .then(() => registration.navigationPreload.getState()) | |
39 .then(state => { | |
40 assert_equals(state.enabled, false, | |
41 '.enabled should be false after disable()'); | |
42 }); | |
43 }, 'getState'); | |
44 | |
45 // This test sends commands to a worker to call enable()/disable()/getState(). | |
46 // It checks the results from the worker and verifies that they match the | |
47 // navigation preload state accessible from the page. | |
48 promise_test(t => { | |
49 const scope = 'resources/getState-worker'; | |
50 const script = 'resources/get-state-worker.js'; | |
51 var worker; | |
52 | |
53 return service_worker_unregister_and_register(t, script, scope) | |
54 .then(r => { | |
55 registration = r; | |
56 add_completion_callback(() => registration.unregister()); | |
57 worker = registration.installing; | |
58 // Call getState(). | |
59 return post_and_wait_for_reply(worker, 'getState'); | |
60 }) | |
61 .then(data => { | |
62 return Promise.all([data, registration.navigationPreload.getState()]); | |
63 }) | |
64 .then(states => { | |
65 assert_equals(states[0].enabled, false, | |
66 '.enabled should be false by default (from worker)'); | |
67 assert_equals(states[1].enabled, false, | |
68 '.enabled should be false by default (from page)'); | |
69 // Call enable() and then getState(). | |
70 return post_and_wait_for_reply(worker, 'enable'); | |
71 }) | |
72 .then(data => { | |
73 assert_equals(data, undefined, 'enable() should resolve to undefined'); | |
74 return Promise.all([ | |
75 post_and_wait_for_reply(worker, 'getState'), | |
76 registration.navigationPreload.getState() | |
77 ]) | |
horo
2016/10/25 07:51:47
]);
falken
2016/10/25 08:06:29
Done.
| |
78 }) | |
79 .then(states => { | |
80 assert_equals(states[0].enabled, true, | |
81 '.enabled should be true after enable() (from worker)'); | |
82 assert_equals(states[1].enabled, true, | |
83 '.enabled should be true after enable() (from page)'); | |
84 // Call disable() and then getState(). | |
85 return post_and_wait_for_reply(worker, 'disable'); | |
86 }) | |
87 .then(data => { | |
88 assert_equals(data, undefined, | |
89 '.disable() should resolve to undefined'); | |
90 return Promise.all([ | |
91 post_and_wait_for_reply(worker, 'getState'), | |
92 registration.navigationPreload.getState() | |
93 ]) | |
horo
2016/10/25 07:51:47
]);
falken
2016/10/25 08:06:29
Done.
| |
94 }) | |
95 .then(states => { | |
96 assert_equals(states[0].enabled, false, | |
97 '.enabled should be false after disable() (from worker)'); | |
98 assert_equals(states[1].enabled, false, | |
99 '.enabled should be false after disable() (from page)'); | |
100 }); | |
101 }, 'getState from a worker'); | |
102 </script> | |
103 </body> | |
OLD | NEW |