michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: MARIONETTE_TIMEOUT = 60000; michael@0: michael@0: SpecialPowers.setBoolPref("dom.sms.enabled", true); michael@0: SpecialPowers.addPermission("sms", true, document); michael@0: michael@0: const SENDER = "5555552368"; // the remote number michael@0: const RECEIVER = "15555215554"; // the emulator's number michael@0: michael@0: let manager = window.navigator.mozMobileMessage; michael@0: ok(manager instanceof MozMobileMessageManager, michael@0: "manager is instance of " + manager.constructor); michael@0: michael@0: let body = "Hello SMS world!"; michael@0: michael@0: let completed = false; michael@0: runEmulatorCmd("sms send " + SENDER + " " + body, function(result) { michael@0: log("Sent fake SMS: " + result); michael@0: is(result[0], "OK", "Emulator command result"); michael@0: completed = true; michael@0: }); michael@0: michael@0: manager.onreceived = function onreceived(event) { michael@0: log("Received an SMS!"); michael@0: michael@0: let message = event.message; michael@0: ok(message instanceof MozSmsMessage, "Message is instanceof MozSmsMessage"); michael@0: michael@0: ok(message.threadId, "thread id"); michael@0: is(message.delivery, "received", "Message delivery"); michael@0: is(message.deliveryStatus, "success", "Delivery status"); michael@0: is(message.sender, SENDER, "Message sender"); michael@0: is(message.receiver, RECEIVER, "Message receiver"); michael@0: is(message.body, body, "Message body"); michael@0: is(message.messageClass, "normal", "Message class"); michael@0: is(message.deliveryTimestamp, 0, "deliveryTimestamp is 0"); michael@0: michael@0: cleanUp(); michael@0: }; michael@0: michael@0: function cleanUp() { michael@0: if (!completed) { michael@0: window.setTimeout(cleanUp, 100); michael@0: return; michael@0: } michael@0: michael@0: SpecialPowers.removePermission("sms", document); michael@0: finish(); michael@0: }