diff options
Diffstat (limited to '')
-rw-r--r-- | testing/web-platform/tests/notifications/tag.https.html | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/notifications/tag.https.html b/testing/web-platform/tests/notifications/tag.https.html new file mode 100644 index 0000000000..99c61a7151 --- /dev/null +++ b/testing/web-platform/tests/notifications/tag.https.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Notification.tag (two tags with same or different value)</title> +<link rel="author" title="Intel" href="http://www.intel.com/"> +<link rel="author" title="Xin Liu" href="mailto:xinx.liu@intel.com"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/helpers.js"></script> +<script> +function promiseEvent(target, eventName, syncListener) { + return new Promise(resolve => { + target.addEventListener(eventName, ev => { + syncListener?.(); + resolve(ev); + }, { once: true }); + }); +} + +promise_setup(async () => { + await trySettingPermission("granted"); +}); + +promise_test(async t => { + const tom1 = new Notification("New Email to tom", { + tag: "Tom" + }); + t.add_cleanup(() => tom1.close()); + + let closed = false; + const promiseCloseEvent = promiseEvent(tom1, "close", () => closed = true); + await promiseEvent(tom1, "show"); + + const rose = new Notification("New Email to Rose", { + tag: "Rose" + }); + t.add_cleanup(() => rose.close()); + await promiseEvent(rose, "show"); + assert_false(closed, "Different tag should not close the first notification"); + + const tom2 = new Notification("New Email to tom", { + tag: "Tom" + }); + t.add_cleanup(() => tom2.close()); + + await promiseCloseEvent; // This should not timeout +}, "Opening two notifications with the same tag should close the first one"); +</script> |