2 <title>ServiceWorker: navigator.serviceWorker.installing</title>
3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script>
5 <script src="resources/test-helpers.js"></script>
9 async_test(function(t) {
10 var step = t.step_func.bind(t);
11 var url = 'resources/worker-no-op.js';
12 var scope = 'resources/blank.html';
16 navigator.serviceWorker.unregister(scope)
17 .then(step(function() { return with_iframe(scope); }),
18 unreached_rejection(t, 'Unregister should not fail'))
19 .then(step(function(f) {
21 return navigator.serviceWorker.register(url, {scope: scope});
23 .then(step(function(r) {
25 return wait_for_update(t, registration);
27 .then(step(function(serviceWorker) {
28 return wait_for_state(t, serviceWorker, 'installing');
29 }), unreached_rejection(t, 'Registration should not fail'))
30 .then(step(function() {
31 var container = frame.contentWindow.navigator.serviceWorker;
32 assert_equals(container.controller, null);
33 assert_equals(registration.active, null);
34 assert_equals(registration.waiting, null);
35 assert_equals(registration.installing.scriptURL, normalizeURL(url));
37 // FIXME: Add a test for a frame created after installation.
38 // Should the existing frame ("frame") block activation?
40 .then(step(function() {
42 return service_worker_unregister_and_done(t, scope);
44 }, 'installing is set');