dom/mobilemessage/tests/marionette/test_incoming_delete.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/ */
     4 MARIONETTE_TIMEOUT = 60000;
     6 SpecialPowers.setBoolPref("dom.sms.enabled", true);
     7 SpecialPowers.addPermission("sms", true, document);
     9 const SENDER = "5555552368"; // the remote number
    10 const RECEIVER = "15555215554"; // the emulator's number
    12 let manager = window.navigator.mozMobileMessage;
    13 let msgText = "Mozilla Firefox OS!";
    15 function verifyInitialState() {
    16   log("Verifying initial state.");
    17   ok(manager instanceof MozMobileMessageManager,
    18      "manager is instance of " + manager.constructor);
    19   simulateIncomingSms();  
    20 }
    22 function simulateIncomingSms() {
    23   log("Simulating incoming SMS.");
    25   manager.onreceived = function onreceived(event) {
    26     log("Received 'onreceived' event.");
    27     let incomingSms = event.message;
    28     ok(incomingSms, "incoming sms");
    29     ok(incomingSms.id, "sms id");
    30     log("Received SMS (id: " + incomingSms.id + ").");
    31     ok(incomingSms.threadId, "thread id");
    32     is(incomingSms.body, msgText, "msg body");
    33     is(incomingSms.delivery, "received", "delivery");
    34     is(incomingSms.deliveryStatus, "success", "deliveryStatus");
    35     is(incomingSms.read, false, "read");
    36     is(incomingSms.receiver, RECEIVER, "receiver");
    37     is(incomingSms.sender, SENDER, "sender");
    38     is(incomingSms.messageClass, "normal", "messageClass");
    39     is(incomingSms.deliveryTimestamp, 0, "deliveryTimestamp is 0");
    41     verifySmsExists(incomingSms);
    42   };
    43   runEmulatorCmd("sms send " + SENDER + " " + msgText, function(result) {
    44     is(result[0], "OK", "emulator output");
    45   });
    46 }
    48 function verifySmsExists(incomingSms) {
    49   log("Getting SMS (id: " + incomingSms.id + ").");
    50   let requestRet = manager.getMessage(incomingSms.id);
    51   ok(requestRet, "smsrequest obj returned");
    53   requestRet.onsuccess = function(event) {
    54     log("Received 'onsuccess' smsrequest event.");
    55     ok(event.target.result, "smsrequest event.target.result");
    56     let foundSms = event.target.result;
    57     is(foundSms.id, incomingSms.id, "found SMS id matches");
    58     is(foundSms.threadId, incomingSms.threadId, "found SMS thread id matches");
    59     is(foundSms.body, msgText, "found SMS msg text matches");
    60     is(foundSms.delivery, "received", "delivery");
    61     is(foundSms.deliveryStatus, "success", "deliveryStatus");
    62     is(foundSms.read, false, "read");
    63     is(foundSms.receiver, RECEIVER, "receiver");
    64     is(foundSms.sender, SENDER, "sender");
    65     is(foundSms.messageClass, "normal", "messageClass");
    66     log("Got SMS (id: " + foundSms.id + ") as expected.");
    67     deleteSms(incomingSms);
    68   };
    70   requestRet.onerror = function(event) {
    71     log("Received 'onerror' smsrequest event.");
    72     ok(event.target.error, "domerror obj");
    73     is(event.target.error.name, "NotFoundError", "error returned");
    74     log("Could not get SMS (id: " + incomingSms.id + ") but should have.");
    75     ok(false,"SMS was not found");
    76     cleanUp();
    77   };
    78 }
    80 function deleteSms(smsMsgObj){
    81   log("Deleting SMS (id: " + smsMsgObj.id + ") using smsmsg obj parameter.");
    82   let requestRet = manager.delete(smsMsgObj);
    83   ok(requestRet,"smsrequest obj returned");
    85   requestRet.onsuccess = function(event) {
    86     log("Received 'onsuccess' smsrequest event.");
    87     if(event.target.result){
    88       verifySmsDeleted(smsMsgObj.id);
    89     } else {
    90       log("smsrequest returned false for manager.delete");
    91       ok(false,"SMS delete failed");
    92       cleanUp();
    93     }
    94   };
    96   requestRet.onerror = function(event) {
    97     log("Received 'onerror' smsrequest event.");
    98     ok(event.target.error, "domerror obj");
    99     ok(false, "manager.delete request returned unexpected error: "
   100         + event.target.error.name );
   101     cleanUp();
   102   };
   103 }
   105 function verifySmsDeleted(smsId) {
   106   log("Getting SMS (id: " + smsId + ").");
   107   let requestRet = manager.getMessage(smsId);
   108   ok(requestRet, "smsrequest obj returned");
   110   requestRet.onsuccess = function(event) {
   111     log("Received 'onsuccess' smsrequest event.");
   112     ok(event.target.result, "smsrequest event.target.result");
   113     let foundSms = event.target.result;
   114     is(foundSms.id, smsId, "found SMS id matches");
   115     is(foundSms.body, msgText, "found SMS msg text matches");
   116     log("Got SMS (id: " + foundSms.id + ") but should not have.");
   117     ok(false, "SMS was not deleted");
   118     cleanUp();
   119   };
   121   requestRet.onerror = function(event) {
   122     log("Received 'onerror' smsrequest event.");
   123     ok(event.target.error, "domerror obj");
   124     is(event.target.error.name, "NotFoundError", "error returned");
   125     log("Could not get SMS (id: " + smsId + ") as expected.");
   126     cleanUp();
   127   };
   128 }
   130 function cleanUp() {
   131   manager.onreceived = null;
   132   SpecialPowers.removePermission("sms", document);
   133   SpecialPowers.setBoolPref("dom.sms.enabled", false);
   134   finish();
   135 }
   137 // Start the test
   138 verifyInitialState();

mercurial