dom/mobilemessage/tests/marionette/test_incoming_multipart.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     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;
    14 function verifyInitialState() {
    15   log("Verifying initial state.");
    16   ok(manager instanceof MozMobileMessageManager,
    17      "manager is instance of " + manager.constructor);
    18   simulateIncomingSms();  
    19 }
    21 function simulateIncomingSms() {
    22   let msgText = "";
    24   log("Simulating incoming SMS.");
    26   // Have message text > max SMS size (160 char) so will be a multi-part SMS
    27   for (var x = 1; x <= 24; x++) {
    28     msgText += 'FirefoxOS ';
    29   }
    31   manager.onreceived = function onreceived(event) {
    32     log("Received 'onreceived' event.");
    33     let incomingSms = event.message;
    34     ok(incomingSms, "incoming sms");
    35     ok(incomingSms.id, "sms id");
    36     log("Received SMS (id: " + incomingSms.id + ").");
    37     ok(incomingSms.threadId, "thread id");
    38     is(incomingSms.body, msgText, "msg body");
    39     is(incomingSms.delivery, "received", "delivery");
    40     is(incomingSms.read, false, "read");
    41     is(incomingSms.receiver, RECEIVER, "receiver");
    42     is(incomingSms.sender, SENDER, "sender");
    43     is(incomingSms.deliveryTimestamp, 0, "deliveryTimestamp is 0");
    45     verifySmsExists(incomingSms);
    46   };
    47   runEmulatorCmd("sms send " + SENDER + " " + msgText, function(result) {
    48     is(result[0], "OK", "emulator output");
    49   });
    50 }
    52 function verifySmsExists(incomingSms) {
    53   log("Getting SMS (id: " + incomingSms.id + ").");
    54   let requestRet = manager.getMessage(incomingSms.id);
    55   ok(requestRet, "smsrequest obj returned");
    57   requestRet.onsuccess = function(event) {
    58     log("Received 'onsuccess' smsrequest event.");
    59     ok(event.target.result, "smsrequest event.target.result");
    60     let foundSms = event.target.result;
    61     is(foundSms.id, incomingSms.id, "found SMS id matches");
    62     is(foundSms.threadId, incomingSms.threadId, "found SMS thread id matches");
    63     is(foundSms.body, incomingSms.body, "found SMS msg text matches");
    64     is(foundSms.delivery, "received", "delivery");
    65     is(foundSms.read, false, "read");
    66     is(foundSms.receiver, RECEIVER, "receiver");
    67     is(foundSms.sender, SENDER, "sender");
    68     log("Got SMS (id: " + foundSms.id + ") as expected.");
    69     deleteSms(incomingSms);
    70   };
    72   requestRet.onerror = function(event) {
    73     log("Received 'onerror' smsrequest event.");
    74     ok(event.target.error, "domerror obj");
    75     is(event.target.error.name, "NotFoundError", "error returned");
    76     log("Could not get SMS (id: " + incomingSms.id + ") but should have.");
    77     ok(false,"SMS was not found");
    78     cleanUp();
    79   };
    80 }
    82 function deleteSms(smsMsgObj){
    83   log("Deleting SMS (id: " + smsMsgObj.id + ") using smsmsg obj parameter.");
    84   let requestRet = manager.delete(smsMsgObj);
    85   ok(requestRet,"smsrequest obj returned");
    87   requestRet.onsuccess = function(event) {
    88     log("Received 'onsuccess' smsrequest event.");
    89     if(event.target.result){
    90       cleanUp();
    91     } else {
    92       log("smsrequest returned false for manager.delete");
    93       ok(false,"SMS delete failed");
    94       cleanUp();
    95     }
    96   };
    98   requestRet.onerror = function(event) {
    99     log("Received 'onerror' smsrequest event.");
   100     ok(event.target.error, "domerror obj");
   101     ok(false, "manager.delete request returned unexpected error: "
   102         + event.target.error.name );
   103     cleanUp();
   104   };
   105 }
   107 function cleanUp() {
   108   manager.onreceived = null;
   109   SpecialPowers.removePermission("sms", document);
   110   SpecialPowers.clearUserPref("dom.sms.enabled");
   111   finish();
   112 }
   114 // Start the test
   115 verifyInitialState();

mercurial