diff options
Diffstat (limited to 'testing/web-platform/tests/notifications/shownotification-window.https.html')
-rw-r--r-- | testing/web-platform/tests/notifications/shownotification-window.https.html | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/testing/web-platform/tests/notifications/shownotification-window.https.html b/testing/web-platform/tests/notifications/shownotification-window.https.html new file mode 100644 index 0000000000..b21a5621df --- /dev/null +++ b/testing/web-platform/tests/notifications/shownotification-window.https.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="resources/helpers.js"></script> +<iframe id="iframe" src="resources/shownotification-window-iframe.html"></iframe> +<script> +/** @type {ServiceWorkerRegistration} */ +let registration; + +promise_setup(async (t) => { + await trySettingPermission("granted"); + registration = await getActiveServiceWorker("noop-sw.js"); + await closeAllNotifications(); +}); + +promise_test(async (t) => { + t.add_cleanup(closeAllNotifications); + + if (iframe.contentDocument.readyState !== "complete") { + await new Promise(resolve => iframe.onload = resolve); + } + + await iframe.contentWindow.showNotification(); + let notifications = await registration.getNotifications(); + assert_equals(notifications.length, 1, "Should persist the notification"); + + iframe.contentWindow.location.reload(); + // Wait for some time for potential notification close requests to be sent + await new Promise(resolve => iframe.onload = resolve); + notifications = await registration.getNotifications(); + assert_equals(notifications.length, 1, "Should keep the notification"); +}, 'Refreshing window does not clear persistent notifications'); +</script> +</body> |