dom/mobilemessage/tests/marionette/test_outgoing_delete.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.setBoolPref("dom.sms.requestStatusReport", true);
     8 SpecialPowers.addPermission("sms", true, document);
    10 const SENDER = "15555215554"; // the emulator's number
    11 const RECEIVER = "5551117777"; // the destination number
    13 let manager = window.navigator.mozMobileMessage;
    14 let msgText = "Mozilla Firefox OS!";
    15 let gotSmsOnsent = false;
    16 let gotReqOnsuccess = false;
    18 function verifyInitialState() {
    19   log("Verifying initial state.");
    20   ok(manager instanceof MozMobileMessageManager,
    21      "manager is instance of " + manager.constructor);
    22   sendSms();
    23 }
    25 function sendSms() {
    26   let smsId = 0;
    28   log("Sending an SMS.");
    29   manager.onsent = function(event) {
    30     log("Received 'onsent' event.");
    31     gotSmsOnsent = true;
    32     let sentSms = event.message;
    33     ok(sentSms, "outgoing sms");
    34     ok(sentSms.id, "sms id");
    35     smsId = sentSms.id;
    36     log("Sent SMS (id: " + smsId + ").");
    37     ok(sentSms.threadId, "thread id");
    38     is(sentSms.body, msgText, "msg body");
    39     is(sentSms.delivery, "sent", "delivery");
    40     is(sentSms.deliveryStatus, "pending", "deliveryStatus");
    41     is(sentSms.read, true, "read");
    42     is(sentSms.receiver, RECEIVER, "receiver");
    43     is(sentSms.sender, SENDER, "sender");
    44     is(sentSms.messageClass, "normal", "messageClass");
    45     is(sentSms.deliveryTimestamp, 0, "deliveryTimestamp is 0");
    47     if (gotSmsOnsent && gotReqOnsuccess) { verifySmsExists(smsId); }
    48   };
    50   let requestRet = manager.send(RECEIVER, msgText);
    51   ok(requestRet, "smsrequest obj returned");
    53   requestRet.onsuccess = function(event) {
    54     log("Received 'onsuccess' smsrequest event.");
    55     gotReqOnsuccess = true;
    56     if(event.target.result){
    57       if (gotSmsOnsent && gotReqOnsuccess) { verifySmsExists(smsId); }
    58     } else {
    59       log("smsrequest returned false for manager.send");
    60       ok(false,"SMS send failed");
    61       cleanUp();
    62     }
    63   };
    65   requestRet.onerror = function(event) {
    66     log("Received 'onerror' smsrequest event.");
    67     ok(event.target.error, "domerror obj");
    68     ok(false, "manager.send request returned unexpected error: "
    69         + event.target.error.name );
    70     cleanUp();
    71   };
    72 }
    74 function verifySmsExists(smsId) {
    75   log("Getting SMS (id: " + smsId + ").");
    76   let requestRet = manager.getMessage(smsId);
    77   ok(requestRet, "smsrequest obj returned");
    79   requestRet.onsuccess = function(event) {
    80     log("Received 'onsuccess' smsrequest event.");
    81     ok(event.target.result, "smsrequest event.target.result");
    82     let foundSms = event.target.result;
    83     is(foundSms.id, smsId, "found SMS id matches");
    84     is(foundSms.body, msgText, "found SMS msg text matches");
    85     is(foundSms.delivery, "sent", "delivery");
    86     is(foundSms.read, true, "read");
    87     is(foundSms.receiver, RECEIVER, "receiver");
    88     is(foundSms.sender, SENDER, "sender");
    89     is(foundSms.messageClass, "normal", "messageClass");
    90     log("Got SMS (id: " + foundSms.id + ") as expected.");
    91     deleteSms(smsId);
    92   };
    94   requestRet.onerror = function(event) {
    95     log("Received 'onerror' smsrequest event.");
    96     ok(event.target.error, "domerror obj");
    97     is(event.target.error.name, "NotFoundError", "error returned");
    98     log("Could not get SMS (id: " + smsId + ") but should have.");
    99     ok(false,"SMS was not found");
   100     cleanUp();
   101   };
   102 }
   104 function deleteSms(smsId){
   105   log("Deleting SMS (id: " + smsId + ") using sms id parameter.");
   106   let requestRet = manager.delete(smsId);
   107   ok(requestRet,"smsrequest obj returned");
   109   requestRet.onsuccess = function(event) {
   110     log("Received 'onsuccess' smsrequest event.");
   111     if(event.target.result){
   112       verifySmsDeleted(smsId);
   113     } else {
   114       log("smsrequest returned false for manager.delete");
   115       ok(false,"SMS delete failed");
   116       cleanUp();
   117     }
   118   };
   120   requestRet.onerror = function(event) {
   121     log("Received 'onerror' smsrequest event.");
   122     ok(event.target.error, "domerror obj");
   123     ok(false, "manager.delete request returned unexpected error: "
   124         + event.target.error.name );
   125     cleanUp();
   126   };
   127 }
   129 function verifySmsDeleted(smsId) {
   130   log("Getting SMS (id: " + smsId + ").");
   131   let requestRet = manager.getMessage(smsId);
   132   ok(requestRet, "smsrequest obj returned");
   134   requestRet.onsuccess = function(event) {
   135     log("Received 'onsuccess' smsrequest event.");
   136     ok(event.target.result, "smsrequest event.target.result");
   137     let foundSms = event.target.result;
   138     is(foundSms.id, smsId, "found SMS id matches");
   139     is(foundSms.body, msgText, "found SMS msg text matches");
   140     log("Got SMS (id: " + foundSms.id + ") but should not have.");
   141     ok(false, "SMS was not deleted");
   142     cleanUp();
   143   };
   145   requestRet.onerror = function(event) {
   146     log("Received 'onerror' smsrequest event.");
   147     ok(event.target.error, "domerror obj");
   148     is(event.target.error.name, "NotFoundError", "error returned");
   149     log("Could not get SMS (id: " + smsId + ") as expected.");
   150     cleanUp();
   151   };
   152 }
   154 function cleanUp() {
   155   manager.onsent = null;
   156   SpecialPowers.removePermission("sms", document);
   157   SpecialPowers.clearUserPref("dom.sms.enabled");
   158   SpecialPowers.clearUserPref("dom.sms.requestStatusReport");
   159   finish();
   160 }
   162 // Start the test
   163 verifyInitialState();

mercurial