1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- 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"});
- }
|