blob: 4779f1df2a416916e446ab7ccd5e0f7fcfc49ab0 [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="resources/test-helpers.js"></script>
<script>
async_test(function(t) {
var scope = 'resources/scope/installing-waiting-active-after-registration';
var worker_url = 'resources/empty-worker.js';
var expected_url = normalizeURL(worker_url);
service_worker_unregister_and_register(t, worker_url, scope)
.then(function(r) {
registration = r;
assert_equals(registration.installing.scriptURL, expected_url,
'installing before updatefound');
assert_equals(registration.waiting, null,
'waiting before updatefound');
assert_equals(registration.active, null,
'active before updatefound');
return wait_for_update(t, registration);
})
.then(function(worker) {
assert_equals(registration.installing.scriptURL, expected_url,
'installing after updatefound');
assert_equals(registration.waiting, null,
'waiting after updatefound');
assert_equals(registration.active, null,
'active after updatefound');
return wait_for_state(t, registration.installing, 'installed');
})
.then(function() {
assert_equals(registration.installing, null,
'installing after installed');
assert_equals(registration.waiting.scriptURL, expected_url,
'waiting after installed');
assert_equals(registration.active, null,
'active after installed');
return wait_for_state(t, registration.waiting, 'activated');
})
.then(function() {
assert_equals(registration.installing, null,
'installing after activated');
assert_equals(registration.waiting, null,
'waiting after activated');
assert_equals(registration.active.scriptURL, expected_url,
'active after activated');
return Promise.all([
wait_for_state(t, registration.active, 'redundant'),
registration.unregister()
]);
})
.then(function() {
assert_equals(registration.installing, null,
'installing after redundant');
assert_equals(registration.waiting, null,
'waiting after redundant');
assert_equals(registration.active.scriptURL, expected_url,
'active after redundant');
t.done();
})
.catch(unreached_rejection(t));
}, 'installing/waiting/active after registration');
</script>