var t = async_test('activation occurs after registration');
t.step(function() {
var scope = 'resources/blank.html';
- service_worker_unregister_and_register(
- t, 'resources/worker-no-op.js', scope, onRegister);
+ var registration;
- function onRegister(worker) {
- assert_equals(worker.state, 'parsed', 'worker should be in the "parsed" state upon registration');
- worker.addEventListener('statechange', t.step_func(function(event) {
- if (event.target.state == 'active')
- service_worker_unregister_and_done(t, scope);
- }));
- }
+ service_worker_unregister_and_register(
+ t, 'resources/worker-no-op.js', scope)
+ .then(t.step_func(function(r) {
+ registration = r;
+ return wait_for_update(t, registration);
+ }))
+ .then(t.step_func(function(worker) {
+ assert_equals(worker.state, 'parsed', 'worker should be in the "parsed" state upon registration');
+ worker.addEventListener('statechange', t.step_func(function(event) {
+ if (event.target.state == 'activated')
+ service_worker_unregister_and_done(t, scope);
+ }));
+ }))
+ .catch(unreached_rejection(t));
});
</script>
</body>