// 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");