dom/mobilemessage/tests/marionette/test_mark_msg_read_error.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.addPermission("sms", true, document);
     7 SpecialPowers.setBoolPref("dom.sms.enabled", true);
     9 let manager = window.navigator.mozMobileMessage;
    10 let smsId;
    12 function verifyInitialState() {
    13   log("Verifying initial state.");
    14   ok(manager instanceof MozMobileMessageManager,
    15      "manager is instance of " + manager.constructor);
    16   simulateIncomingSms();
    17 }
    19 function simulateIncomingSms() {
    20   let text = "Incoming SMS courtesy of Firefox OS";
    21   let remoteNumber = "5557779999";
    23   log("Simulating incoming SMS.");
    25   // Simulate incoming SMS sent from remoteNumber to our emulator
    26   rcvdEmulatorCallback = false;
    27   runEmulatorCmd("sms send " + remoteNumber + " " + text, function(result) {
    28     is(result[0], "OK", "emulator callback");
    29     rcvdEmulatorCallback = true;
    30   });
    31 }
    33 // Callback for incoming SMS
    34 manager.onreceived = function onreceived(event) {
    35   log("Received 'onreceived' sms event.");
    36   let incomingSms = event.message;
    37   log("Received SMS (id: " + incomingSms.id + ").");
    38   is(incomingSms.read, false, "incoming message read");
    39   smsId = incomingSms.id;
    41   // Wait for emulator to catch up before continuing
    42   waitFor(test1, function() {
    43     return(rcvdEmulatorCallback);
    44   });
    45 };
    47 function markMsgError(invalidId, readBool, nextFunction) {
    48   let requestRet = manager.markMessageRead(invalidId, readBool);
    49   ok(requestRet, "smsrequest obj returned");
    51   requestRet.onsuccess = function(event) {
    52     log("Received 'onsuccess' smsrequest event, but expected error.");
    53     ok(false, "Smsrequest should have returned error but did not");
    54     nextFunction();
    55   };
    57   requestRet.onerror = function(event) {
    58     log("Received 'onerror' smsrequest event.");
    59     ok(event.target.error, "domerror obj");
    60     is(event.target.error.name, "NotFoundError", "error returned");
    61     nextFunction();
    62   };
    63 }
    65 function test1() {
    66   // Mark message read for a message that doesn't exist, expect error
    67   let msgIdNoExist = smsId + 1;
    68   log("Attempting to mark non-existent sms (id: " + msgIdNoExist
    69       + ") read, expect error.");
    70   markMsgError(msgIdNoExist, true, test2);
    71 }
    73 function test2() {
    74   // Mark message read using invalid SMS id, expect error
    75   invalidId = -1;
    76   log("Attempting to mark sms unread using an invalid id (id: " + invalidId
    77       + "), expect error.");
    78   markMsgError(invalidId, false, deleteMsg);
    79 }
    81 function deleteMsg() {
    82   log("Deleting SMS (id: " + smsId + ").");
    83   let request = manager.delete(smsId);
    84   ok(request instanceof DOMRequest,
    85       "request is instanceof " + request.constructor);
    87   request.onsuccess = function(event) {
    88     log("Received 'onsuccess' smsrequest event.");
    89     if (event.target.result) {
    90       // Message deleted
    91       cleanUp();
    92     } else {
    93       log("SMS delete failed.");
    94       ok(false,"manager.delete request returned false");
    95       cleanUp();
    96     }
    97   };
    99   request.onerror = function(event) {
   100     log("Received 'onerror' smsrequest event.");
   101     ok(event.target.error, "domerror obj");
   102     ok(false, "manager.delete request returned unexpected error: "
   103         + event.target.error.name );
   104     cleanUp();
   105   };
   106 }
   108 function cleanUp() {
   109   manager.onreceived = null;
   110   SpecialPowers.removePermission("sms", document);
   111   SpecialPowers.clearUserPref("dom.sms.enabled");
   112   finish();
   113 }
   115 // Start the test
   116 verifyInitialState();

mercurial