summaryrefslogtreecommitdiffstats
path: root/dom/notification/test/unit/head_notificationdb.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/notification/test/unit/head_notificationdb.js')
-rw-r--r--dom/notification/test/unit/head_notificationdb.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/dom/notification/test/unit/head_notificationdb.js b/dom/notification/test/unit/head_notificationdb.js
new file mode 100644
index 0000000000..1b23d88729
--- /dev/null
+++ b/dom/notification/test/unit/head_notificationdb.js
@@ -0,0 +1,61 @@
+"use strict";
+
+var { XPCOMUtils } = ChromeUtils.importESModule(
+ "resource://gre/modules/XPCOMUtils.sys.mjs"
+);
+
+function getNotificationObject(app, id, tag, includeScope) {
+ const origin = `https://${app}.gaiamobile.org/`;
+ return {
+ origin,
+ id,
+ title: app + "Notification:" + Date.now(),
+ dir: "auto",
+ lang: "",
+ body: app + " notification body",
+ tag: tag || "",
+ icon: "icon.png",
+ serviceWorkerRegistrationScope: includeScope ? origin : undefined,
+ };
+}
+
+var systemNotification = getNotificationObject(
+ "system",
+ "{2bc883bf-2809-4432-b0f4-f54e10372764}"
+);
+
+var calendarNotification = getNotificationObject(
+ "calendar",
+ "{d8d11299-a58e-429b-9a9a-57c562982fbf}"
+);
+
+// Helper to start the NotificationDB
+function startNotificationDB() {
+ ChromeUtils.importESModule("resource://gre/modules/NotificationDB.sys.mjs");
+}
+
+// Helper function to add a listener, send message and treat the reply
+function addAndSend(msg, reply, callback, payload, runNext = true) {
+ let handler = {
+ receiveMessage(message) {
+ if (message.name === reply) {
+ Services.cpmm.removeMessageListener(reply, handler);
+ callback(message);
+ if (runNext) {
+ run_next_test();
+ }
+ }
+ },
+ };
+ Services.cpmm.addMessageListener(reply, handler);
+ Services.cpmm.sendAsyncMessage(msg, payload);
+}
+
+// helper fonction, comparing two notifications
+function compareNotification(notif1, notif2) {
+ // retrieved notification should be the second one sent
+ for (let prop in notif1) {
+ // compare each property
+ Assert.equal(notif1[prop], notif2[prop]);
+ }
+}