dom/voicemail/test/marionette/test_voicemail_statuschanged.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 SpecialPowers.addPermission("voicemail", true, document);
     6 let voicemail = window.navigator.mozVoicemail;
     7 let serviceId = 0;
     9 ok(voicemail instanceof MozVoicemail);
    10 is(voicemail.status, null);
    12 function sendIndicatorPDU(pdu, listener, nextTest) {
    13   let smsCommand = "sms pdu " + pdu;
    14   let commandCompleted = false;
    15   let sawEvent = false;
    17   voicemail.addEventListener("statuschanged", function statusChanged(event) {
    18     voicemail.removeEventListener("statuschanged", statusChanged);
    20     try {
    21       listener(event);
    22     } catch (e) {
    23       ok(false, String(e));
    24     }
    26     sawEvent = true;
    27     if (commandCompleted) {
    28       nextTest();
    29     }
    30   });
    32   log("-> " + smsCommand);
    33   runEmulatorCmd(smsCommand, function(result) {
    34     log("<- " + result);
    35     is(result[0], "OK");
    36     commandCompleted = true;
    37     if (sawEvent) {
    38       nextTest();
    39     }
    40   });
    41 }
    43 // TODO: Add tests for store/discard once they are implemented
    44 // See RadioInterfaceLayer.js / Bug #768441
    46 function isVoicemailStatus(status) {
    47   is(voicemail.getStatus(), status);
    48   is(voicemail.getStatus(serviceId), status);
    50   is(voicemail.getStatus().hasMessages, status.hasMessages);
    51   is(voicemail.getStatus().messageCount, status.messageCount);
    52   is(voicemail.getStatus().returnNumber, status.returnNumber);
    53   is(voicemail.getStatus().returnMessage, status.returnMessage);
    54 }
    56 const MWI_PDU_PREFIX = "0000";
    57 const MWI_PDU_UDH_PREFIX = "0040";
    58 const MWI_PID_DEFAULT = "00";
    59 const MWI_DCS_DISCARD_INACTIVE = "C0";
    60 const MWI_DCS_DISCARD_ACTIVE = "C8";
    61 const MWI_TIMESTAMP = "00000000000000";
    63 const MWI_DEFAULT_BODY = "1 new voicemail";
    64 const MWI_UD_DEFAULT = PDUBuilder.buildUserData({
    65   body: MWI_DEFAULT_BODY
    66 });
    68 const MWI_LEVEL2_SENDER = "+15125551235";
    69 const MWI_LEVEL2_PDU_ADDRESS = PDUBuilder.buildAddress(MWI_LEVEL2_SENDER);
    70 const MWI_LEVEL2_DISCARD_ACTIVE_PDU =
    71   MWI_PDU_PREFIX +
    72   MWI_LEVEL2_PDU_ADDRESS +
    73   MWI_PID_DEFAULT +
    74   MWI_DCS_DISCARD_ACTIVE +
    75   MWI_TIMESTAMP +
    76   MWI_UD_DEFAULT;
    78 function testLevel2DiscardActive() {
    80   function onLevel2Active(event) {
    81     let status = event.status;
    82     // TODO: bug 905228 - MozVoicemailStatus is not defined.
    83     //ok(status instanceof MozVoicemailStatus);
    84     is(status.hasMessages, true);
    85     is(status.messageCount, -1);
    86     is(status.returnNumber, MWI_LEVEL2_SENDER);
    87     is(status.returnMessage, MWI_DEFAULT_BODY);
    88     isVoicemailStatus(status);
    89   }
    91   sendIndicatorPDU(MWI_LEVEL2_DISCARD_ACTIVE_PDU,
    92                    onLevel2Active,
    93                    testLevel2DiscardInactive);
    95 }
    97 const MWI_LEVEL2_DISCARD_INACTIVE_PDU =
    98   MWI_PDU_PREFIX +
    99   MWI_LEVEL2_PDU_ADDRESS +
   100   MWI_PID_DEFAULT +
   101   MWI_DCS_DISCARD_INACTIVE +
   102   MWI_TIMESTAMP +
   103   MWI_UD_DEFAULT;
   105 function testLevel2DiscardInactive() {
   106   function onLevel2Inactive(event) {
   107     let status = event.status;
   108     // TODO: bug 905228 - MozVoicemailStatus is not defined.
   109     //ok(status instanceof MozVoicemailStatus);
   110     is(status.hasMessages, false);
   111     is(status.messageCount, 0);
   112     is(status.returnNumber, MWI_LEVEL2_SENDER);
   113     is(status.returnMessage, MWI_DEFAULT_BODY);
   114     isVoicemailStatus(status);
   115   }
   117   sendIndicatorPDU(MWI_LEVEL2_DISCARD_INACTIVE_PDU,
   118                    onLevel2Inactive,
   119                    testLevel3DiscardActive);
   120 }
   123 // Tests for Level 3 MWI with a message count in the User Data Header
   124 const MWI_LEVEL3_SENDER = "+15125551236";
   125 const MWI_LEVEL3_PDU_ADDRESS = PDUBuilder.buildAddress(MWI_LEVEL3_SENDER);
   127 const MWI_LEVEL3_ACTIVE_UDH_MSG_COUNT = 3;
   128 const MWI_LEVEL3_ACTIVE_BODY = "3 new voicemails";
   129 const MWI_LEVEL3_ACTIVE_UD = PDUBuilder.buildUserData({
   130   headers: [{
   131     id: RIL.PDU_IEI_SPECIAL_SMS_MESSAGE_INDICATION,
   132     length: 2,
   133     octets: [
   134       RIL.PDU_MWI_STORE_TYPE_DISCARD,
   135       MWI_LEVEL3_ACTIVE_UDH_MSG_COUNT
   136     ]
   137   }],
   138   body: MWI_LEVEL3_ACTIVE_BODY
   139 });
   141 const MWI_LEVEL3_DISCARD_ACTIVE_PDU =
   142   MWI_PDU_UDH_PREFIX +
   143   MWI_LEVEL3_PDU_ADDRESS +
   144   MWI_PID_DEFAULT +
   145   MWI_DCS_DISCARD_ACTIVE +
   146   MWI_TIMESTAMP +
   147   MWI_LEVEL3_ACTIVE_UD;
   149 function testLevel3DiscardActive() {
   151   function onLevel3Active(event) {
   152     let status = event.status;
   153     // TODO: bug 905228 - MozVoicemailStatus is not defined.
   154     //ok(status instanceof MozVoicemailStatus);
   155     is(status.hasMessages, true);
   156     is(status.messageCount, MWI_LEVEL3_ACTIVE_UDH_MSG_COUNT);
   157     is(status.returnNumber, MWI_LEVEL3_SENDER);
   158     is(status.returnMessage, MWI_LEVEL3_ACTIVE_BODY);
   159     isVoicemailStatus(status);
   160   }
   162   sendIndicatorPDU(MWI_LEVEL3_DISCARD_ACTIVE_PDU,
   163                    onLevel3Active,
   164                    testLevel3DiscardInactive);
   165 }
   167 const MWI_LEVEL3_INACTIVE_BODY = "No unread voicemails";
   168 const MWI_LEVEL3_INACTIVE_UD = PDUBuilder.buildUserData({
   169   headers: [{
   170     id: RIL.PDU_IEI_SPECIAL_SMS_MESSAGE_INDICATION,
   171     length: 2,
   172     octets: [
   173       RIL.PDU_MWI_STORE_TYPE_DISCARD,
   174       0 // messageCount
   175     ]
   176   }],
   177   body: MWI_LEVEL3_INACTIVE_BODY
   178 });
   180 const MWI_LEVEL3_DISCARD_INACTIVE_PDU =
   181   MWI_PDU_UDH_PREFIX +
   182   MWI_LEVEL3_PDU_ADDRESS +
   183   MWI_PID_DEFAULT +
   184   MWI_DCS_DISCARD_ACTIVE +
   185   MWI_TIMESTAMP +
   186   MWI_LEVEL3_INACTIVE_UD;
   188 function testLevel3DiscardInactive() {
   189   function onLevel3Inactive(event) {
   190     let status = event.status;
   191     // TODO: bug 905228 - MozVoicemailStatus is not defined.
   192     //ok(status instanceof MozVoicemailStatus);
   193     is(status.hasMessages, false);
   194     is(status.messageCount, 0);
   195     is(status.returnNumber, MWI_LEVEL3_SENDER);
   196     is(status.returnMessage, MWI_LEVEL3_INACTIVE_BODY);
   197     isVoicemailStatus(status);
   198   }
   200   sendIndicatorPDU(MWI_LEVEL3_DISCARD_INACTIVE_PDU, onLevel3Inactive, cleanUp);
   201 }
   203 function cleanUp() {
   204   SpecialPowers.removePermission("voicemail", document);
   205   finish();
   206 }
   208 testLevel2DiscardActive();

mercurial