| Index: LayoutTests/http/tests/serviceworker/update.html
|
| diff --git a/LayoutTests/http/tests/serviceworker/update.html b/LayoutTests/http/tests/serviceworker/update.html
|
| index 9eb392a9898336b51f14b1d476611b9d50b2046c..61a8a2dfba6db07c3e7c9bf7f93ddae77365578d 100644
|
| --- a/LayoutTests/http/tests/serviceworker/update.html
|
| +++ b/LayoutTests/http/tests/serviceworker/update.html
|
| @@ -17,42 +17,59 @@ promise_test(function(t) {
|
| })
|
| .then(function() {
|
| assert_equals(registration.installing, null,
|
| - 'installing should be null in the initial state');
|
| + 'installing should be null in the initial state.');
|
| assert_equals(registration.waiting, null,
|
| - 'waiting should be null in the initial state');
|
| + 'waiting should be null in the initial state.');
|
| assert_equals(registration.active.scriptURL, expected_url,
|
| - 'active should exist in the initial state');
|
| + 'active should exist in the initial state.');
|
|
|
| - // A new worker should be found.
|
| - registration.update();
|
| - return wait_for_update(t, registration);
|
| + // A new worker (generated by update-worker.php) should be found.
|
| + // The returned promise should resolve when a new worker script is
|
| + // fetched and starts installing.
|
| + return Promise.all([registration.update(),
|
| + wait_for_update(t, registration)]);
|
| })
|
| .then(function() {
|
| assert_equals(registration.installing.scriptURL, expected_url,
|
| - 'new installing should be set after updatefound');
|
| + 'new installing should be set after update resolves.');
|
| assert_equals(registration.waiting, null,
|
| - 'waiting should still be null after updatefound');
|
| + 'waiting should still be null after update resolves.');
|
| assert_equals(registration.active.scriptURL, expected_url,
|
| - 'active should still exist after update found');
|
| + 'active should still exist after update found.');
|
| return wait_for_state(t, registration.installing, 'installed');
|
| })
|
| .then(function() {
|
| assert_equals(registration.installing, null,
|
| - 'installing should be null after installing');
|
| + 'installing should be null after installing.');
|
| assert_equals(registration.waiting.scriptURL, expected_url,
|
| - 'waiting should be set after installing');
|
| + 'waiting should be set after installing.');
|
| assert_equals(registration.active.scriptURL, expected_url,
|
| - 'active should still exist after installing');
|
| + 'active should still exist after installing.');
|
| return wait_for_state(t, registration.waiting, 'activated');
|
| })
|
| .then(function() {
|
| assert_equals(registration.installing, null,
|
| - 'installing should be null after activated');
|
| + 'installing should be null after activated.');
|
| assert_equals(registration.waiting, null,
|
| - 'waiting should be null after activated');
|
| + 'waiting should be null after activated.');
|
| assert_equals(registration.active.scriptURL, expected_url,
|
| - 'new worker should be promoted to active');
|
| - return service_worker_unregister_and_done(t, scope);
|
| + 'new worker should be promoted to active.');
|
| + })
|
| + .then(function() {
|
| + // A new worker(generated by update-worker.php) should be found.
|
| + // The returned promise should reject as update-worker.php sets the
|
| + // mimetype to a disallowed value for this attempt.
|
| + return registration.update();
|
| })
|
| - }, 'Update a registration');
|
| + .then(
|
| + function() { assert_unreached("update() should reject."); },
|
| + function(e) {
|
| + assert_throws('SecurityError', function() { throw e; },
|
| + 'Using a disallowed mimetype should make update() ' +
|
| + 'promise reject with a SecurityError.');
|
| + assert_equals(registration.active.scriptURL, expected_url,
|
| + 'active should still exist after update failure.');
|
| + return service_worker_unregister_and_done(t, scope);
|
| + });
|
| + }, 'Update a registration.');
|
| </script>
|
|
|