| // META: script=/resources/testdriver.js | |
| // META: script=/resources/testdriver-vendor.js | |
| // META: script=resources/helpers.js | |
| "use strict"; | |
| /** @type {ServiceWorkerRegistration} */ | |
| let registration; | |
| promise_setup(async () => { | |
| registration = await prepareActiveServiceWorker("noop-sw.js"); | |
| await trySettingPermission("granted"); | |
| }); | |
| promise_test(async (t) => { | |
| t.add_cleanup(closeAllNotifications); | |
| await registration.showNotification("foo"); | |
| await registration.unregister(); | |
| registration = await prepareActiveServiceWorker("noop-sw.js"); | |
| const notifications = await registration.getNotifications(); | |
| // The spec says notifications should be associated with service worker registration | |
| // and thus unregistering should dissociate the notification. | |
| // | |
| // (Step 5.2 of https://notifications.spec.whatwg.org/#dom-serviceworkerregistration-getnotifications) | |
| // > Let notifications be a list of all notifications in the list of notifications whose origin | |
| // > is same origin with origin, whose service worker registration is this, and whose tag, if tag | |
| // > is not the empty string, is tag. | |
| assert_equals(notifications.length, 0, "Should return zero notification"); | |
| }, "A new SW registration gets no previous notification"); | |
| promise_test(async (t) => { | |
| await registration.showNotification("foo"); | |
| await registration.unregister(); | |
| const notifications = await registration.getNotifications(); | |
| assert_equals(notifications.length, 0, "Should return zero notification"); | |
| }, "An unregistered SW registration gets no previous notification"); |