| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../resources/testharness.js"></script> | 2 <script src="../resources/testharness.js"></script> |
| 3 <script src="../resources/testharnessreport.js"></script> | 3 <script src="../resources/testharnessreport.js"></script> |
| 4 <script src="resources/test-helpers.js"></script> | 4 <script src="resources/test-helpers.js"></script> |
| 5 <script> | 5 <script> |
| 6 async_test(function(t) { | 6 async_test(function(t) { |
| 7 navigator.serviceWorker.unregister('http://example.com/') | 7 navigator.serviceWorker.unregister('http://example.com/') |
| 8 .then(function() { | 8 .then(function() { |
| 9 assert_unreached('unregistering out of origin should fail'); | 9 assert_unreached('unregistering out of origin should fail'); |
| 10 }, function(reason) { | 10 }, function(reason) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 navigator.serviceWorker.register('resources/empty-worker.js', | 21 navigator.serviceWorker.register('resources/empty-worker.js', |
| 22 {scope: scope}) | 22 {scope: scope}) |
| 23 .then(function(r) { | 23 .then(function(r) { |
| 24 registration = r; | 24 registration = r; |
| 25 return registration.unregister(); | 25 return registration.unregister(); |
| 26 }) | 26 }) |
| 27 .then(function() { | 27 .then(function() { |
| 28 return registration.unregister(); | 28 return registration.unregister(); |
| 29 }) | 29 }) |
| 30 .then(function(value) { | 30 .then(function(value) { |
| 31 assert_equals(value, undefined, | 31 // FIXME: This value must be false in spec, |
| 32 'unregistering twice should resolve with no value'); | 32 // but this is not supported now. |
| 33 // See: https://crbug.com/390894#c16 |
| 34 assert_equals(value, true, |
| 35 'unregistering twice should resolve with true'); |
| 33 t.done(); | 36 t.done(); |
| 34 }) | 37 }) |
| 35 .catch(unreached_rejection(t)); | 38 .catch(unreached_rejection(t)); |
| 36 }, 'Unregister twice'); | 39 }, 'Unregister twice'); |
| 37 | 40 |
| 38 async_test(function(t) { | 41 async_test(function(t) { |
| 39 var scope = 'scope/successful-unregister/'; | 42 var scope = 'scope/successful-unregister/'; |
| 40 navigator.serviceWorker.register('resources/empty-worker.js', | 43 navigator.serviceWorker.register('resources/empty-worker.js', |
| 41 {scope: scope}) | 44 {scope: scope}) |
| 42 .then(function(registration) { | 45 .then(function(registration) { |
| 43 return registration.unregister(); | 46 return registration.unregister(); |
| 44 }) | 47 }) |
| 45 .then(function(value) { | 48 .then(function(value) { |
| 46 assert_equals(value, undefined, | 49 assert_equals(value, true, |
| 47 'unregistration should resolve with no value'); | 50 'unregistration should resolve with true'); |
| 48 t.done(); | 51 t.done(); |
| 49 }) | 52 }) |
| 50 .catch(unreached_rejection(t)); | 53 .catch(unreached_rejection(t)); |
| 51 }, 'Register then unregister'); | 54 }, 'Register then unregister'); |
| 52 | 55 |
| 53 // FIXME: Remove this test when ServiceWorkerContainer.unregister() is removed. | 56 // FIXME: Remove this test when ServiceWorkerContainer.unregister() is removed. |
| 54 async_test(function(t) { | 57 async_test(function(t) { |
| 55 var state_promise; | 58 var state_promise; |
| 56 navigator.serviceWorker.unregister() | 59 navigator.serviceWorker.unregister() |
| 57 .then(function() { | 60 .then(function() { |
| 58 return navigator.serviceWorker.register('resources/empty-worker.js'); | 61 return navigator.serviceWorker.register('resources/empty-worker.js'); |
| 59 }) | 62 }) |
| 60 .then(function(registration) { | 63 .then(function(registration) { |
| 61 return wait_for_update(t, registration); | 64 return wait_for_update(t, registration); |
| 62 }) | 65 }) |
| 63 .then(function(sw) { | 66 .then(function(sw) { |
| 64 state_promise = wait_for_state(t, sw, 'redundant'); | 67 state_promise = wait_for_state(t, sw, 'redundant'); |
| 65 return navigator.serviceWorker.unregister(); | 68 return navigator.serviceWorker.unregister(); |
| 66 }) | 69 }) |
| 67 .then(function(value) { | 70 .then(function(value) { |
| 68 assert_equals(value, undefined, | 71 assert_equals(value, true, |
| 69 'unregister with default scope should succeed'); | 72 'unregister with default scope should succeed'); |
| 70 return state_promise; | 73 return state_promise; |
| 71 }) | 74 }) |
| 72 .then(function(state) { | 75 .then(function(state) { |
| 73 assert_equals(state, 'redundant', | 76 assert_equals(state, 'redundant', |
| 74 'service worker registered with default scope ' + | 77 'service worker registered with default scope ' + |
| 75 'should be unregistered'); | 78 'should be unregistered'); |
| 76 t.done(); | 79 t.done(); |
| 77 }) | 80 }) |
| 78 .catch(unreached_rejection(t)); | 81 .catch(unreached_rejection(t)); |
| 79 }, 'ServiceWorkerContainer.unregister() with default scope'); | 82 }, 'ServiceWorkerContainer.unregister() with default scope'); |
| 80 </script> | 83 </script> |
| OLD | NEW |