dom/mobilemessage/tests/marionette/test_outgoing_max_segments.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 let manager = window.navigator.mozMobileMessage;
    10 // https://developer.mozilla.org/en-US/docs/DOM/SmsManager
    11 let maxCharsPerSms = 160;
    12 let maxSegments = 10; // 10 message segments concatenated into 1 multipart SMS
    14 function verifyInitialState() {
    15   log("Verifying initial state.");
    16   ok(manager instanceof MozMobileMessageManager,
    17      "manager is instance of " + manager.constructor);
    18   sendSms();
    19 }
    21 function sendSms() {
    22   let destNumber = "5551234567";
    23   let msgText = "";
    24   let gotReqOnSuccess = false;
    25   let gotSmsOnSent = false;
    26   let sentSms;
    28   // Build the message text
    29   msgText = new Array((maxCharsPerSms * maxSegments) + 1).join('a');
    30   log("Sending multipart SMS (" + msgText.length + " chars total).");
    32   manager.onsent = function(event) {
    33     manager.onsent = null;
    34     log("Received 'onsent' event.");
    36     gotSmsOnSent = true;
    37     sentSms = event.message;
    38     ok(sentSms, "outgoing sms");
    39     ok(sentSms.id, "sms id");
    40     log("Sent SMS (id: " + sentSms.id + ").");
    41     ok(sentSms.threadId, "thread id");
    42     is(sentSms.body.length, msgText.length, "text length");
    43     is(sentSms.body, msgText, "msg body");
    44     is(sentSms.delivery, "sent", "delivery");
    46     if (gotReqOnSuccess) { verifySmsExists(sentSms); }
    47   };
    49   let requestRet = manager.send(destNumber, msgText);
    50   ok(requestRet, "smsrequest obj returned");
    52   requestRet.onsuccess = function(event) {
    53     log("Received 'onsuccess' smsrequest event.");
    54     gotReqOnSuccess = true;
    55     if (event.target.result) {
    56       if (gotSmsOnSent) { verifySmsExists(sentSms); }
    57     } else {
    58       log("smsrequest returned false for manager.send");
    59       ok(false, "SMS send failed");
    60       cleanUp();
    61     }
    62   };
    64   requestRet.onerror = function(event) {
    65     log("Received 'onerror' smsrequest event.");
    66     ok(event.target.error, "domerror obj");
    67     ok(false, "manager.send request returned unexpected error: " +
    68               event.target.error.name);
    69     cleanUp();
    70   };
    71 }
    73 function verifySmsExists(sentSms) {
    74   log("Getting SMS (id: " + sentSms.id + ").");
    75   let requestRet = manager.getMessage(sentSms.id);
    76   ok(requestRet, "smsrequest obj returned");
    78   requestRet.onsuccess = function(event) {
    79     log("Received 'onsuccess' smsrequest event.");
    80     ok(event.target.result, "smsrequest event.target.result");
    81     let foundSms = event.target.result;
    82     is(foundSms.id, sentSms.id, "found SMS id matches");
    83     is(foundSms.threadId, sentSms.threadId, "found SMS thread id matches");
    84     is(foundSms.body.length, sentSms.body.length, "found SMS text length");
    85     is(foundSms.body, sentSms.body, "found SMS msg text matches");
    86     log("Got SMS (id: " + foundSms.id + ") as expected.");
    87     deleteSms(sentSms);
    88   };
    90   requestRet.onerror = function(event) {
    91     log("Received 'onerror' smsrequest event.");
    92     ok(event.target.error, "domerror obj");
    93     is(event.target.error.name, "NotFoundError", "error returned");
    94     log("Could not get SMS (id: " + sentSms.id + ") but should have.");
    95     ok(false, "SMS was not found");
    96     cleanUp();
    97   };
    98 }
   100 function deleteSms(smsMsgObj) {
   101   log("Deleting SMS (id: " + smsMsgObj.id + ") using smsmsg obj parameter.");
   102   let requestRet = manager.delete(smsMsgObj);
   103   ok(requestRet,"smsrequest obj returned");
   105   requestRet.onsuccess = function(event) {
   106     log("Received 'onsuccess' smsrequest event.");
   107     if (event.target.result) {
   108       cleanUp();
   109     } else {
   110       log("smsrequest returned false for manager.delete");
   111       ok(false, "SMS delete failed");
   112       cleanUp();
   113     }
   114   };
   116   requestRet.onerror = function(event) {
   117     log("Received 'onerror' smsrequest event.");
   118     ok(event.target.error, "domerror obj");
   119     ok(false, "manager.delete request returned unexpected error: " +
   120               event.target.error.name);
   121     cleanUp();
   122   };
   123 }
   125 function cleanUp() {
   126   SpecialPowers.removePermission("sms", document);
   127   SpecialPowers.clearUserPref("dom.sms.enabled");
   128   finish();
   129 }
   131 // Start the test
   132 verifyInitialState();

mercurial