mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-06-25 07:09:19 +00:00
77 lines
1.9 KiB
JavaScript
77 lines
1.9 KiB
JavaScript
function debug(msg) {
|
|
dump("[mmMessageChannelChild]" + msg + "\n");
|
|
}
|
|
|
|
/**
|
|
* Preparation Test
|
|
*/
|
|
let port;
|
|
let toString = Object.prototype.toString;
|
|
|
|
(function prepare() {
|
|
debug("Script loaded.");
|
|
addTestReceiver();
|
|
sendAsyncMessage("mmMessagePort:finishScriptLoad", {}, {});
|
|
})();
|
|
|
|
function ok(condition, message) {
|
|
debug('condition: ' + condition + ', ' + message + '\n');
|
|
if (!condition) {
|
|
sendAsyncMessage("mmMessagePort:fail", { message: message });
|
|
throw 'failed check: ' + message;
|
|
}
|
|
}
|
|
|
|
function is(a, b, message) {
|
|
ok(a===b, message);
|
|
}
|
|
|
|
|
|
/**
|
|
* Testing codes.
|
|
*/
|
|
function addTestReceiver() {
|
|
addMessageListener("BasicTest:PortCreated", basicTest);
|
|
addMessageListener("CloseTest:PortCreated", closeTest);
|
|
addMessageListener("EmptyTest:PortCreated", emptyTest);
|
|
addMessageListener("NotTransferableTest:PortCreated", notTransferableTest);
|
|
}
|
|
|
|
function basicTest(msg) {
|
|
port = msg.ports[0];
|
|
is(toString.call(port), "[object MessagePort]", "created MessagePort.");
|
|
|
|
port.onmessage = (msg) => {
|
|
is(msg.data, "BasicTest:StartTest", "Replied message is correct.");
|
|
port.postMessage("BasicTest:TestOK");
|
|
};
|
|
|
|
sendAsyncMessage("BasicTest:FinishPrepare", { message: "OK" });
|
|
}
|
|
|
|
function closeTest(msg) {
|
|
port = msg.ports[0];
|
|
is(toString.call(port), "[object MessagePort]", "created MessagePort.");
|
|
|
|
port.onmessage = (msg) => {
|
|
ok(msg.data,"CloseTest:StartTest", "Replied message is correct.");
|
|
port.postMessage("CloseTest:TestOK");
|
|
};
|
|
|
|
port.close();
|
|
|
|
sendAsyncMessage("CloseTest:FinishPrepare", { message: "OK"});
|
|
}
|
|
|
|
function emptyTest(msg) {
|
|
let portSize = msg.ports.length;
|
|
is(portSize, 0, "transfered port size is zero.");
|
|
|
|
sendAsyncMessage("EmptyTest:FinishPrepare", { message: "OK"});
|
|
}
|
|
|
|
function notTransferableTest(msg) {
|
|
sendAsyncMessage("NotTransferableTest:FinishPrepare", {message: "OK"});
|
|
}
|
|
|