diff options
Diffstat (limited to 'testing/web-platform/tests/notifications')
3 files changed, 47 insertions, 74 deletions
diff --git a/testing/web-platform/tests/notifications/tag-different-manual.https.html b/testing/web-platform/tests/notifications/tag-different-manual.https.html deleted file mode 100644 index e463e97670..0000000000 --- a/testing/web-platform/tests/notifications/tag-different-manual.https.html +++ /dev/null @@ -1,37 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>Notification.tag (two tags with different values)</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="common.js"></script> -<div id=passfail></div> -<script> -setup({ explicit_timeout: true }) -if (hasNotificationPermission()) { - async_test(function (t) { - t.step(function () { - var notification1 = null, - notification2 = null, - notifications = [], - text1 = "This is the body: Room 101", - text2 = "This is the body: Room 202" - createPassFail("If two notifications appear: First one with the" - + " text \"" + text1 + "\", followed by one with the text \"" - + text2 + "\"", - t, closeNotifications, notifications) - notification1 = new Notification("New Email Received", { - body: text1, - tag: "Tom" - }) - notification2 = new Notification("New Email Received", { - body: text2, - tag: "Rose" - }) - notifications.push(notification1) - notifications.push(notification2) - }) - }) -} -</script> diff --git a/testing/web-platform/tests/notifications/tag-same-manual.https.html b/testing/web-platform/tests/notifications/tag-same-manual.https.html deleted file mode 100644 index 4454944c53..0000000000 --- a/testing/web-platform/tests/notifications/tag-same-manual.https.html +++ /dev/null @@ -1,37 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>Notification.tag (two tags with same 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="common.js"></script> -<div id=passfail></div> -<script> -setup({ explicit_timeout: true }) -if (hasNotificationPermission()) { - async_test(function (t) { - t.step(function () { - var notification1 = null, - notification2 = null, - notifications = [], - text1 = "This is the body: Room 101", - text2 = "This is the body: Room 202" - createPassFail("If a notification with the text \"" - + text2 + "\", replaces the notification with the text \"" - + text1 + "\" in the same position", - t, closeNotifications, notifications) - notification1 = new Notification("New Email Received", { - body: text1, - tag: "Tom" - }) - notification2 = new Notification("New Email Received", { - body: text2, - tag: "Tom" - }) - notifications.push(notification1) - notifications.push(notification2) - }) - }) -} -</script> 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> |