summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/notificationbox/browser_notification_stacking.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/notificationbox/browser_notification_stacking.js')
-rw-r--r--browser/base/content/test/notificationbox/browser_notification_stacking.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/browser/base/content/test/notificationbox/browser_notification_stacking.js b/browser/base/content/test/notificationbox/browser_notification_stacking.js
new file mode 100644
index 0000000000..bd8817ea4b
--- /dev/null
+++ b/browser/base/content/test/notificationbox/browser_notification_stacking.js
@@ -0,0 +1,78 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+async function addNotification(box, label, value, priorityName) {
+ let added = BrowserTestUtils.waitForNotificationInNotificationBox(box, value);
+ let priority = gNotificationBox[`PRIORITY_${priorityName}_MEDIUM`];
+ let notification = box.appendNotification(value, { label, priority });
+ await added;
+ return notification;
+}
+
+add_task(async function testStackingOrder() {
+ const tabNotificationBox = gBrowser.getNotificationBox();
+ ok(
+ gNotificationBox.stack.hasAttribute("prepend-notifications"),
+ "Browser stack will prepend"
+ );
+ ok(
+ !tabNotificationBox.stack.hasAttribute("prepend-notifications"),
+ "Tab stack will append"
+ );
+
+ let browserOne = await addNotification(
+ gNotificationBox,
+ "My first browser notification",
+ "browser-one",
+ "INFO"
+ );
+
+ let tabOne = await addNotification(
+ tabNotificationBox,
+ "My first tab notification",
+ "tab-one",
+ "CRITICAL"
+ );
+
+ let browserTwo = await addNotification(
+ gNotificationBox,
+ "My second browser notification",
+ "browser-two",
+ "CRITICAL"
+ );
+ let browserThree = await addNotification(
+ gNotificationBox,
+ "My third browser notification",
+ "browser-three",
+ "WARNING"
+ );
+
+ let tabTwo = await addNotification(
+ tabNotificationBox,
+ "My second tab notification",
+ "tab-two",
+ "INFO"
+ );
+ let tabThree = await addNotification(
+ tabNotificationBox,
+ "My third tab notification",
+ "tab-three",
+ "WARNING"
+ );
+
+ Assert.deepEqual(
+ [browserThree, browserTwo, browserOne],
+ [...gNotificationBox.stack.children],
+ "Browser notifications prepended"
+ );
+ Assert.deepEqual(
+ [tabOne, tabTwo, tabThree],
+ [...tabNotificationBox.stack.children],
+ "Tab notifications appended"
+ );
+
+ gNotificationBox.removeAllNotifications(true);
+ tabNotificationBox.removeAllNotifications(true);
+});