summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/notifications
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/notifications')
-rw-r--r--testing/web-platform/tests/notifications/tag-different-manual.https.html37
-rw-r--r--testing/web-platform/tests/notifications/tag-same-manual.https.html37
-rw-r--r--testing/web-platform/tests/notifications/tag.https.html47
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>