129 lines
3.1 KiB
JavaScript
129 lines
3.1 KiB
JavaScript
"use strict";
|
|
|
|
const { AppConstants } = ChromeUtils.importESModule(
|
|
"resource://gre/modules/AppConstants.sys.mjs"
|
|
);
|
|
|
|
const fooNotification = getNotificationObject(
|
|
"foo",
|
|
"a4f1d54a-98b7-4231-9120-5afc26545bad",
|
|
null,
|
|
true
|
|
);
|
|
const barNotification = getNotificationObject(
|
|
"bar",
|
|
"a4f1d54a-98b7-4231-9120-5afc26545bad",
|
|
"baz",
|
|
true
|
|
);
|
|
const msg = "Notification:GetAll";
|
|
const msgReply = "Notification:GetAll:Return:OK";
|
|
|
|
do_get_profile();
|
|
const OLD_STORE_PATH = PathUtils.join(
|
|
PathUtils.profileDir,
|
|
"notificationstore.json"
|
|
);
|
|
|
|
let nextRequestID = 0;
|
|
|
|
// Create the old datastore and populate it with data before we initialize
|
|
// the notification database so it has data to migrate. This is a setup step,
|
|
// not a test, but it seems like we need to do it in a test function
|
|
// rather than in run_test() because the test runner doesn't handle async steps
|
|
// in run_test().
|
|
add_task(
|
|
{
|
|
skip_if: () => !AppConstants.MOZ_NEW_NOTIFICATION_STORE,
|
|
},
|
|
async function test_create_old_datastore() {
|
|
const notifications = {
|
|
[fooNotification.origin]: {
|
|
[fooNotification.id]: fooNotification,
|
|
},
|
|
[barNotification.origin]: {
|
|
[barNotification.id]: barNotification,
|
|
},
|
|
};
|
|
|
|
await IOUtils.writeJSON(OLD_STORE_PATH, notifications);
|
|
|
|
startNotificationDB();
|
|
}
|
|
);
|
|
|
|
add_test(
|
|
{
|
|
skip_if: () => !AppConstants.MOZ_NEW_NOTIFICATION_STORE,
|
|
},
|
|
function test_get_system_notification() {
|
|
const requestID = nextRequestID++;
|
|
const msgHandler = function (message) {
|
|
Assert.equal(requestID, message.data.requestID);
|
|
Assert.equal(0, message.data.notifications.length);
|
|
};
|
|
|
|
addAndSend(msg, msgReply, msgHandler, {
|
|
origin: systemNotification.origin,
|
|
requestID,
|
|
});
|
|
}
|
|
);
|
|
|
|
add_test(
|
|
{
|
|
skip_if: () => !AppConstants.MOZ_NEW_NOTIFICATION_STORE,
|
|
},
|
|
function test_get_foo_notification() {
|
|
const requestID = nextRequestID++;
|
|
const msgHandler = function (message) {
|
|
Assert.equal(requestID, message.data.requestID);
|
|
Assert.equal(1, message.data.notifications.length);
|
|
Assert.deepEqual(
|
|
fooNotification,
|
|
message.data.notifications[0],
|
|
"Notification data migrated"
|
|
);
|
|
};
|
|
|
|
addAndSend(msg, msgReply, msgHandler, {
|
|
origin: fooNotification.origin,
|
|
requestID,
|
|
});
|
|
}
|
|
);
|
|
|
|
add_test(
|
|
{
|
|
skip_if: () => !AppConstants.MOZ_NEW_NOTIFICATION_STORE,
|
|
},
|
|
function test_get_bar_notification() {
|
|
const requestID = nextRequestID++;
|
|
const msgHandler = function (message) {
|
|
Assert.equal(requestID, message.data.requestID);
|
|
Assert.equal(1, message.data.notifications.length);
|
|
Assert.deepEqual(
|
|
barNotification,
|
|
message.data.notifications[0],
|
|
"Notification data migrated"
|
|
);
|
|
};
|
|
|
|
addAndSend(msg, msgReply, msgHandler, {
|
|
origin: barNotification.origin,
|
|
requestID,
|
|
});
|
|
}
|
|
);
|
|
|
|
add_task(
|
|
{
|
|
skip_if: () => !AppConstants.MOZ_NEW_NOTIFICATION_STORE,
|
|
},
|
|
async function test_old_datastore_deleted() {
|
|
Assert.ok(
|
|
!(await IOUtils.exists(OLD_STORE_PATH)),
|
|
"old datastore no longer exists"
|
|
);
|
|
}
|
|
);
|