OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <title>Service Worker: Controller on load</title> | 2 <title>Service Worker: ready in a controlled document</title> |
3 <script src="../resources/testharness.js"></script> | 3 <script src="../resources/testharness.js"></script> |
4 <script src="../resources/testharnessreport.js"></script> | 4 <script src="../resources/testharnessreport.js"></script> |
5 <script src="resources/test-helpers.js"></script> | 5 <script src="resources/test-helpers.js"></script> |
6 <body> | 6 <body> |
7 <script> | 7 <script> |
8 var t = async_test('controller is set for a controlled document'); | 8 var t = async_test('ready in a controlled document'); |
9 t.step(function() { | 9 t.step(function() { |
10 var url = 'resources/worker-no-op.js'; | 10 var url = 'resources/worker-no-op.js'; |
11 var scope = 'resources/blank.html'; | 11 var scope = 'resources/blank.html'; |
12 service_worker_unregister_and_register(t, url, scope, onRegister); | 12 service_worker_unregister_and_register(t, url, scope, onRegister); |
13 | 13 |
14 function onRegister(worker) { | 14 function onRegister(worker) { |
15 worker.addEventListener('statechange', t.step_func(function(event) { | 15 worker.addEventListener('statechange', t.step_func(function(event) { |
16 if (event.target.state == 'active') | 16 if (event.target.state == 'active') |
17 onActive(); | 17 onActive(); |
18 })); | 18 })); |
19 } | 19 } |
20 | 20 |
| 21 var controller; |
| 22 |
21 function onActive() { | 23 function onActive() { |
22 with_iframe(scope, t.step_func(function(frame) { | 24 with_iframe(scope, t.step_func(function(frame) { |
23 var w = frame.contentWindow; | 25 var w = frame.contentWindow; |
24 var controller = w.navigator.serviceWorker.controller; | 26 controller = w.navigator.serviceWorker.controller; |
25 assert_true(controller instanceof w.ServiceWorker, | 27 w.navigator.serviceWorker.ready.then(t.step_func(onReady)); |
26 'controller should be a ServiceWorker object'); | |
27 assert_equals(controller.scope, normalizeURL(scope)); | |
28 assert_equals(controller.url, normalizeURL(url)); | |
29 service_worker_unregister_and_done(t, scope); | |
30 })); | 28 })); |
31 } | 29 } |
| 30 |
| 31 function onReady(serviceWorker) { |
| 32 assert_equals(serviceWorker, controller, |
| 33 'ready should resolve to the controller of a ' + |
| 34 'controlled document'); |
| 35 service_worker_unregister_and_done(t, scope); |
| 36 } |
32 }); | 37 }); |
33 </script> | 38 </script> |
34 </body> | |
OLD | NEW |