diff options
Diffstat (limited to 'dom/system/gonk/tests/test_ril_system_messenger.js')
-rw-r--r-- | dom/system/gonk/tests/test_ril_system_messenger.js | 1187 |
1 files changed, 0 insertions, 1187 deletions
diff --git a/dom/system/gonk/tests/test_ril_system_messenger.js b/dom/system/gonk/tests/test_ril_system_messenger.js deleted file mode 100644 index a588d0ddb..000000000 --- a/dom/system/gonk/tests/test_ril_system_messenger.js +++ /dev/null @@ -1,1187 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -var {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components; - -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); - -var RIL = {}; -Cu.import("resource://gre/modules/ril_consts.js", RIL); - -XPCOMUtils.defineLazyServiceGetter(this, "gStkCmdFactory", - "@mozilla.org/icc/stkcmdfactory;1", - "nsIStkCmdFactory"); - -/** - * Name space for RILSystemMessenger.jsm. Only initialized after first call to - * newRILSystemMessenger. - */ -var RSM; - -var gReceivedMsgType = null; -var gReceivedMessage = null; - -/** - * Create a new RILSystemMessenger instance. - * - * @return a RILSystemMessenger instance. - */ -function newRILSystemMessenger() { - if (!RSM) { - RSM = Cu.import("resource://gre/modules/RILSystemMessenger.jsm", {}); - equal(typeof RSM.RILSystemMessenger, "function", "RSM.RILSystemMessenger"); - } - - let rsm = new RSM.RILSystemMessenger(); - rsm.broadcastMessage = (aType, aMessage) => { - gReceivedMsgType = aType; - gReceivedMessage = aMessage; - }; - - rsm.createCommandMessage = (aStkProactiveCmd) => { - return gStkCmdFactory.createCommandMessage(aStkProactiveCmd); - }; - - return rsm; -} - -function equal_received_system_message(aType, aMessage) { - equal(aType, gReceivedMsgType); - deepEqual(aMessage, gReceivedMessage); - gReceivedMsgType = null; - gReceivedMessage = null; -} - -/** - * Verify that each nsIXxxMessenger could be retrieved. - */ -function run_test() { - let telephonyMessenger = Cc["@mozilla.org/ril/system-messenger-helper;1"] - .getService(Ci.nsITelephonyMessenger); - - let smsMessenger = Cc["@mozilla.org/ril/system-messenger-helper;1"] - .getService(Ci.nsISmsMessenger); - - let cellbroadcastMessenger = Cc["@mozilla.org/ril/system-messenger-helper;1"] - .getService(Ci.nsICellbroadcastMessenger); - - let mobileConnectionMessenger = Cc["@mozilla.org/ril/system-messenger-helper;1"] - .getService(Ci.nsIMobileConnectionMessenger); - - let iccMessenger = Cc["@mozilla.org/ril/system-messenger-helper;1"] - .getService(Ci.nsIIccMessenger); - - ok(telephonyMessenger !== null, "Get TelephonyMessenger."); - ok(smsMessenger != null, "Get SmsMessenger."); - ok(cellbroadcastMessenger != null, "Get CellbroadcastMessenger."); - ok(mobileConnectionMessenger != null, "Get MobileConnectionMessenger."); - ok(iccMessenger != null, "Get IccMessenger."); - - run_next_test(); -} - -/** - * Verify RILSystemMessenger.notifyNewCall() - */ -add_test(function test_telephony_messenger_notify_new_call() { - let messenger = newRILSystemMessenger(); - - messenger.notifyNewCall(); - equal_received_system_message("telephony-new-call", {}); - - run_next_test(); -}); - -/** - * Verify RILSystemMessenger.notifyCallEnded() - */ -add_test(function test_telephony_messenger_notify_call_ended() { - let messenger = newRILSystemMessenger(); - - messenger.notifyCallEnded(1, - "+0987654321", - null, - true, - 500, - false, - true); - - equal_received_system_message("telephony-call-ended", { - serviceId: 1, - number: "+0987654321", - emergency: true, - duration: 500, - direction: "incoming", - hangUpLocal: true - }); - - // Verify 'optional' parameter of secondNumber. - messenger.notifyCallEnded(1, - "+0987654321", - "+1234567890", - true, - 500, - true, - false); - - equal_received_system_message("telephony-call-ended", { - serviceId: 1, - number: "+0987654321", - emergency: true, - duration: 500, - direction: "outgoing", - hangUpLocal: false, - secondNumber: "+1234567890" - }); - - run_next_test(); -}); - -/** - * Verify RILSystemMessenger.notifySms() - */ -add_test(function test_sms_messenger_notify_sms() { - let messenger = newRILSystemMessenger(); - let timestamp = Date.now(); - let sentTimestamp = timestamp + 100; - let deliveryTimestamp = sentTimestamp + 100; - - // Verify 'sms-received' system message. - messenger.notifySms(Ci.nsISmsMessenger.NOTIFICATION_TYPE_RECEIVED, - 1, - 2, - "99887766554433221100", - Ci.nsISmsService.DELIVERY_TYPE_RECEIVED, - Ci.nsISmsService.DELIVERY_STATUS_TYPE_SUCCESS, - "+0987654321", - null, - "Incoming message", - Ci.nsISmsService.MESSAGE_CLASS_TYPE_CLASS_2, - timestamp, - sentTimestamp, - 0, - false); - - equal_received_system_message("sms-received", { - iccId: "99887766554433221100", - type: "sms", - id: 1, - threadId: 2, - delivery: "received", - deliveryStatus: "success", - sender: "+0987654321", - receiver: null, - body: "Incoming message", - messageClass: "class-2", - timestamp: timestamp, - sentTimestamp: sentTimestamp, - deliveryTimestamp: 0, - read: false - }); - - // Verify 'sms-sent' system message. - messenger.notifySms(Ci.nsISmsMessenger.NOTIFICATION_TYPE_SENT, - 3, - 4, - "99887766554433221100", - Ci.nsISmsService.DELIVERY_TYPE_SENT, - Ci.nsISmsService.DELIVERY_STATUS_TYPE_PENDING, - null, - "+0987654321", - "Outgoing message", - Ci.nsISmsService.MESSAGE_CLASS_TYPE_NORMAL, - timestamp, - 0, - 0, - true); - - equal_received_system_message("sms-sent", { - iccId: "99887766554433221100", - type: "sms", - id: 3, - threadId: 4, - delivery: "sent", - deliveryStatus: "pending", - sender: null, - receiver: "+0987654321", - body: "Outgoing message", - messageClass: "normal", - timestamp: timestamp, - sentTimestamp: 0, - deliveryTimestamp: 0, - read: true - }); - - // Verify 'sms-delivery-success' system message. - messenger.notifySms(Ci.nsISmsMessenger.NOTIFICATION_TYPE_DELIVERY_SUCCESS, - 5, - 6, - "99887766554433221100", - Ci.nsISmsService.DELIVERY_TYPE_SENT, - Ci.nsISmsService.DELIVERY_STATUS_TYPE_SUCCESS, - null, - "+0987654321", - "Outgoing message", - Ci.nsISmsService.MESSAGE_CLASS_TYPE_NORMAL, - timestamp, - 0, - deliveryTimestamp, - true); - - equal_received_system_message("sms-delivery-success", { - iccId: "99887766554433221100", - type: "sms", - id: 5, - threadId: 6, - delivery: "sent", - deliveryStatus: "success", - sender: null, - receiver: "+0987654321", - body: "Outgoing message", - messageClass: "normal", - timestamp: timestamp, - sentTimestamp: 0, - deliveryTimestamp: deliveryTimestamp, - read: true - }); - - // Verify 'sms-failed' system message. - messenger.notifySms(Ci.nsISmsMessenger.NOTIFICATION_TYPE_SENT_FAILED, - 7, - 8, - "99887766554433221100", - Ci.nsISmsService.DELIVERY_TYPE_ERROR, - Ci.nsISmsService.DELIVERY_STATUS_TYPE_ERROR, - null, - "+0987654321", - "Outgoing message", - Ci.nsISmsService.MESSAGE_CLASS_TYPE_NORMAL, - timestamp, - 0, - 0, - true); - - equal_received_system_message("sms-failed", { - iccId: "99887766554433221100", - type: "sms", - id: 7, - threadId: 8, - delivery: "error", - deliveryStatus: "error", - sender: null, - receiver: "+0987654321", - body: "Outgoing message", - messageClass: "normal", - timestamp: timestamp, - sentTimestamp: 0, - deliveryTimestamp: 0, - read: true - }); - - // Verify 'sms-delivery-error' system message. - messenger.notifySms(Ci.nsISmsMessenger.NOTIFICATION_TYPE_DELIVERY_ERROR, - 9, - 10, - "99887766554433221100", - Ci.nsISmsService.DELIVERY_TYPE_SENT, - Ci.nsISmsService.DELIVERY_STATUS_TYPE_ERROR, - null, - "+0987654321", - "Outgoing message", - Ci.nsISmsService.MESSAGE_CLASS_TYPE_NORMAL, - timestamp, - 0, - 0, - true); - - equal_received_system_message("sms-delivery-error", { - iccId: "99887766554433221100", - type: "sms", - id: 9, - threadId: 10, - delivery: "sent", - deliveryStatus: "error", - sender: null, - receiver: "+0987654321", - body: "Outgoing message", - messageClass: "normal", - timestamp: timestamp, - sentTimestamp: 0, - deliveryTimestamp: 0, - read: true - }); - - // Verify the protection of invalid nsISmsMessenger.NOTIFICATION_TYPEs. - try { - messenger.notifySms(5, - 1, - 2, - "99887766554433221100", - Ci.nsISmsService.DELIVERY_TYPE_RECEIVED, - Ci.nsISmsService.DELIVERY_STATUS_TYPE_SUCCESS, - "+0987654321", - null, - "Incoming message", - Ci.nsISmsService.MESSAGE_CLASS_TYPE_NORMAL, - timestamp, - sentTimestamp, - 0, - false); - ok(false, "Failed to verify the protection of invalid nsISmsMessenger.NOTIFICATION_TYPE!"); - } catch (e) {} - - run_next_test(); -}); - -/** - * Verify RILSystemMessenger.notifyCbMessageReceived() - */ -add_test(function test_cellbroadcast_messenger_notify_cb_message_received() { - let messenger = newRILSystemMessenger(); - let timestamp = Date.now(); - - // Verify ETWS - messenger.notifyCbMessageReceived(0, - Ci.nsICellBroadcastService.GSM_GEOGRAPHICAL_SCOPE_CELL_IMMEDIATE, - 256, - 4352, - null, - null, - Ci.nsICellBroadcastService.GSM_MESSAGE_CLASS_NORMAL, - timestamp, - Ci.nsICellBroadcastService.CDMA_SERVICE_CATEGORY_INVALID, - true, - Ci.nsICellBroadcastService.GSM_ETWS_WARNING_EARTHQUAKE, - false, - true); - equal_received_system_message("cellbroadcast-received", { - serviceId: 0, - gsmGeographicalScope: "cell-immediate", - messageCode: 256, - messageId: 4352, - language: null, - body: null, - messageClass: "normal", - timestamp: timestamp, - cdmaServiceCategory: null, - etws: { - warningType: "earthquake", - emergencyUserAlert: false, - popup: true - } - }); - - // Verify Normal CB Message - messenger.notifyCbMessageReceived(1, - Ci.nsICellBroadcastService.GSM_GEOGRAPHICAL_SCOPE_PLMN, - 0, - 50, - "en", - "The quick brown fox jumps over the lazy dog", - Ci.nsICellBroadcastService.GSM_MESSAGE_CLASS_NORMAL, - timestamp, - Ci.nsICellBroadcastService.CDMA_SERVICE_CATEGORY_INVALID, - false, - Ci.nsICellBroadcastService.GSM_ETWS_WARNING_INVALID, - false, - false); - equal_received_system_message("cellbroadcast-received", { - serviceId: 1, - gsmGeographicalScope: "plmn", - messageCode: 0, - messageId: 50, - language: "en", - body: "The quick brown fox jumps over the lazy dog", - messageClass: "normal", - timestamp: timestamp, - cdmaServiceCategory: null, - etws: null - }); - - // Verify CB Message with ETWS Info - messenger.notifyCbMessageReceived(0, - Ci.nsICellBroadcastService.GSM_GEOGRAPHICAL_SCOPE_LOCATION_AREA, - 0, - 4354, - "en", - "Earthquake & Tsunami Warning!", - Ci.nsICellBroadcastService.GSM_MESSAGE_CLASS_0, - timestamp, - Ci.nsICellBroadcastService.CDMA_SERVICE_CATEGORY_INVALID, - true, - Ci.nsICellBroadcastService.GSM_ETWS_WARNING_EARTHQUAKE_TSUNAMI, - true, - false); - equal_received_system_message("cellbroadcast-received", { - serviceId: 0, - gsmGeographicalScope: "location-area", - messageCode: 0, - messageId: 4354, - language: "en", - body: "Earthquake & Tsunami Warning!", - messageClass: "class-0", - timestamp: timestamp, - cdmaServiceCategory: null, - etws: { - warningType: "earthquake-tsunami", - emergencyUserAlert: true, - popup: false - } - }); - - // Verify CDMA CB Message - messenger.notifyCbMessageReceived(0, - Ci.nsICellBroadcastService.GSM_GEOGRAPHICAL_SCOPE_INVALID, - 0, - 0, - null, - "CDMA CB Message", - Ci.nsICellBroadcastService.GSM_MESSAGE_CLASS_NORMAL, - timestamp, - 512, - false, - Ci.nsICellBroadcastService.GSM_ETWS_WARNING_INVALID, - false, - false); - equal_received_system_message("cellbroadcast-received", { - serviceId: 0, - gsmGeographicalScope: null, - messageCode: 0, - messageId: 0, - language: null, - body: "CDMA CB Message", - messageClass: "normal", - timestamp: timestamp, - cdmaServiceCategory: 512, - etws: null - }); - - run_next_test(); -}); - -/** - * Verify RILSystemMessenger.notifyUssdReceived() - */ -add_test(function test_mobileconnection_notify_ussd_received() { - let messenger = newRILSystemMessenger(); - - messenger.notifyUssdReceived(0, "USSD Message", false); - - equal_received_system_message("ussd-received", { - serviceId: 0, - message: "USSD Message", - sessionEnded: false - }); - - messenger.notifyUssdReceived(1, "USSD Message", true); - - equal_received_system_message("ussd-received", { - serviceId: 1, - message: "USSD Message", - sessionEnded: true - }); - - run_next_test(); -}); - -/** - * Verify RILSystemMessenger.notifyCdmaInfoRecXXX() - */ -add_test(function test_mobileconnection_notify_cdma_info() { - let messenger = newRILSystemMessenger(); - - messenger.notifyCdmaInfoRecDisplay(0, "CDMA Display Info"); - - equal_received_system_message("cdma-info-rec-received", { - clientId: 0, - display: "CDMA Display Info" - }); - - messenger.notifyCdmaInfoRecCalledPartyNumber(1, 1, 2, "+0987654321", 3, 4); - - equal_received_system_message("cdma-info-rec-received", { - clientId: 1, - calledNumber: { - type: 1, - plan: 2, - number: "+0987654321", - pi: 3, - si: 4 - } - }); - - messenger.notifyCdmaInfoRecCallingPartyNumber(0, 5, 6, "+1234567890", 7, 8); - - equal_received_system_message("cdma-info-rec-received", { - clientId: 0, - callingNumber: { - type: 5, - plan: 6, - number: "+1234567890", - pi: 7, - si: 8 - } - }); - - messenger.notifyCdmaInfoRecConnectedPartyNumber(1, 4, 3, "+56473839201", 2, 1); - - equal_received_system_message("cdma-info-rec-received", { - clientId: 1, - connectedNumber: { - type: 4, - plan: 3, - number: "+56473839201", - pi: 2, - si: 1 - } - }); - - messenger.notifyCdmaInfoRecSignal(0, 1, 2, 3); - - equal_received_system_message("cdma-info-rec-received", { - clientId: 0, - signal: { - type: 1, - alertPitch: 2, - signal: 3 - } - }); - - messenger.notifyCdmaInfoRecRedirectingNumber(1, 8, 7, "+1029384756", 6, 5, 4); - - equal_received_system_message("cdma-info-rec-received", { - clientId: 1, - redirect: { - type: 8, - plan: 7, - number: "+1029384756", - pi: 6, - si: 5, - reason: 4 - } - }); - - messenger.notifyCdmaInfoRecLineControl(0, 1, 0, 1, 255); - - equal_received_system_message("cdma-info-rec-received", { - clientId: 0, - lineControl: { - polarityIncluded: 1, - toggle: 0, - reverse: 1, - powerDenial: 255 - } - }); - - messenger.notifyCdmaInfoRecClir(1, 256); - - equal_received_system_message("cdma-info-rec-received", { - clientId: 1, - clirCause: 256 - }); - - messenger.notifyCdmaInfoRecAudioControl(0, 255, -1); - - equal_received_system_message("cdma-info-rec-received", { - clientId: 0, - audioControl: { - upLink: 255, - downLink: -1 - } - }); - - run_next_test(); -}); - -/** - * Verify Error Handling of StkProactiveCmdFactory.createCommand() - */ -add_test(function test_icc_stk_cmd_factory_create_command_error() { - let messenger = newRILSystemMessenger(); - - // Verify the protection of invalid typeOfCommand. - try { - gStkCmdFactory.createCommand({ - commandNumber: 0, - typeOfCommand: RIL.STK_CMD_MORE_TIME, // Invalid TypeOfCommand - commandQualifier: 0x00 - }); - - ok(false, "Failed to verify the protection of createCommand()!"); - } catch (e) { - ok(e.message.indexOf("Unknown Command Type") !== -1, - "Invalid typeOfCommand!"); - } - - run_next_test(); -}); - -/** - * Verify Error Handling of StkProactiveCmdFactory.createCommandMessage() - */ -add_test(function test_icc_stk_cmd_factory_create_system_msg_invalid_cmd_type() { - let messenger = newRILSystemMessenger(); - let iccId = "99887766554433221100"; - - // Verify the protection of invalid typeOfCommand. - try { - gStkCmdFactory.createCommandMessage({ - QueryInterface: XPCOMUtils.generateQI([Ci.nsIStkProactiveCmd]), - - // nsIStkProactiveCmd - commandNumber: 0, - typeOfCommand: RIL.STK_CMD_MORE_TIME, // Invalid TypeOfCommand - commandQualifier: 0 - }); - - ok(false, "Failed to identify invalid typeOfCommand!"); - } catch (e) { - ok(e.message.indexOf("Unknown Command Type") !== -1, - "Invalid typeOfCommand!"); - } - - run_next_test(); -}); - -/** - * Verify Error Handling of StkProactiveCmdFactory.createCommandMessage() - */ -add_test(function test_icc_stk_cmd_factory_create_system_msg_incorrect_cmd_type() { - let messenger = newRILSystemMessenger(); - let iccId = "99887766554433221100"; - - // Verify the protection of invalid typeOfCommand. - try { - gStkCmdFactory.createCommandMessage({ - QueryInterface: XPCOMUtils.generateQI([Ci.nsIStkProactiveCmd, - Ci.nsIStkProvideLocalInfoCmd]), - - // nsIStkProactiveCmd - commandNumber: 0, - typeOfCommand: RIL.STK_CMD_POLL_INTERVAL, // Incorrect typeOfCommand - commandQualifier: 0, - // nsIStkProvideLocalInfoCmd - localInfoType: 0x00, - }); - - ok(false, "Failed to identify incorrect typeOfCommand!"); - } catch (e) { - ok(e.message.indexOf("Failed to convert command into concrete class: ") !== -1); - } - - run_next_test(); -}); - -/** - * Verify RILSystemMessenger.notifyStkProactiveCommand() - */ -add_test(function test_icc_notify_stk_proactive_command() { - let messenger = newRILSystemMessenger(); - let iccId = "99887766554433221100"; - let WHT = 0xFFFFFFFF; - let BLK = 0x000000FF; - let RED = 0xFF0000FF; - let GRN = 0x00FF00FF; - let BLU = 0x0000FFFF; - let TSP = 0; - // Basic Image, see Anex B.1 in TS 31.102. - let basicIcon = { - width: 8, - height: 8, - codingScheme: "basic", - pixels: [WHT, WHT, WHT, WHT, WHT, WHT, WHT, WHT, - BLK, BLK, BLK, BLK, BLK, BLK, WHT, WHT, - WHT, BLK, WHT, BLK, BLK, WHT, BLK, WHT, - WHT, BLK, BLK, WHT, WHT, BLK, BLK, WHT, - WHT, BLK, BLK, WHT, WHT, BLK, BLK, WHT, - WHT, BLK, WHT, BLK, BLK, WHT, BLK, WHT, - WHT, WHT, BLK, BLK, BLK, BLK, WHT, WHT, - WHT, WHT, WHT, WHT, WHT, WHT, WHT, WHT] - }; - // Color Image, see Anex B.2 in TS 31.102. - let colorIcon = { - width: 8, - height: 8, - codingScheme: "color", - pixels: [BLU, BLU, BLU, BLU, BLU, BLU, BLU, BLU, - BLU, RED, RED, RED, RED, RED, RED, BLU, - BLU, RED, GRN, GRN, GRN, RED, RED, BLU, - BLU, RED, RED, GRN, GRN, RED, RED, BLU, - BLU, RED, RED, GRN, GRN, RED, RED, BLU, - BLU, RED, RED, GRN, GRN, GRN, RED, BLU, - BLU, RED, RED, RED, RED, RED, RED, BLU, - BLU, BLU, BLU, BLU, BLU, BLU, BLU, BLU] - }; - // Color Image with Transparency, see Anex B.2 in TS 31.102. - let colorTransparencyIcon = { - width: 8, - height: 8, - codingScheme: "color-transparency", - pixels: [TSP, TSP, TSP, TSP, TSP, TSP, TSP, TSP, - TSP, RED, RED, RED, RED, RED, RED, TSP, - TSP, RED, GRN, GRN, GRN, RED, RED, TSP, - TSP, RED, RED, GRN, GRN, RED, RED, TSP, - TSP, RED, RED, GRN, GRN, RED, RED, TSP, - TSP, RED, RED, GRN, GRN, GRN, RED, TSP, - TSP, RED, RED, RED, RED, RED, RED, TSP, - TSP, TSP, TSP, TSP, TSP, TSP, TSP, TSP] - }; - - let cmdCount = 0; - - // Test Messages: - let messages = [ - // STK_CMD_REFRESH - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_REFRESH, - commandQualifier: 0x04 // UICC Reset - }, - // STK_CMD_POLL_INTERVAL - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_POLL_INTERVAL, - commandQualifier: 0x00, // RFU - options: { - timeUnit: RIL.STK_TIME_UNIT_TENTH_SECOND, - timeInterval: 0x05 - } - }, - // STK_CMD_POLL_OFF - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_POLL_OFF, - commandQualifier: 0x00, // RFU - }, - // STK_CMD_PROVIDE_LOCAL_INFO - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_PROVIDE_LOCAL_INFO, - commandQualifier: 0x01, // IMEI of the terminal - options: { - localInfoType: 0x01 // IMEI of the terminal - } - }, - // STK_CMD_SET_UP_EVENT_LIST with eventList - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SET_UP_EVENT_LIST, - commandQualifier: 0x00, // RFU - options: { - eventList: [ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1A, 0x1B, 0x1C ] - } - }, - // STK_CMD_SET_UP_EVENT_LIST without eventList - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SET_UP_EVENT_LIST, - commandQualifier: 0x00, // RFU - options: { - eventList: null - } - }, - // STK_CMD_SET_UP_MENU with mandatory properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SET_UP_MENU, - commandQualifier: 0x80, // bit 8: 1 = help information available - options: { - title: "Toolkit Menu 1", - items: [ - { identifier: 0x01, text: "Menu Item 1" }, - { identifier: 0x02, text: "Menu Item 2" }, - { identifier: 0x03, text: "Menu Item 3" } - ], - isHelpAvailable: true - } - }, - // STK_CMD_SET_UP_MENU with optional properties including: - // iconInfo for this menu, iconInfo for each item and nextActionList. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SET_UP_MENU, - commandQualifier: 0x00, // bit 8: 0 = help information is not available - options: { - title: "Toolkit Menu 2", - items: [ - { identifier: 0x01, - text: "Menu Item 1", - iconSelfExplanatory: true, - icons: [basicIcon] - }, - { identifier: 0x02, - text: "Menu Item 2", - iconSelfExplanatory: false, - icons: [basicIcon, colorIcon] - }, - { identifier: 0x03, - text: "Menu Item 3", - iconSelfExplanatory: true, - icons: [basicIcon, colorIcon, colorTransparencyIcon] - }, - ], - nextActionList: [ - RIL.STK_NEXT_ACTION_END_PROACTIVE_SESSION, - RIL.STK_NEXT_ACTION_NULL, - RIL.STK_NEXT_ACTION_NULL, - RIL.STK_NEXT_ACTION_NULL - ], - iconSelfExplanatory: false, - icons: [basicIcon, colorIcon, colorTransparencyIcon], - isHelpAvailable: false - } - }, - // STK_CMD_SELECT_ITEM with mandatory properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SELECT_ITEM, - commandQualifier: RIL.STK_PRESENTATION_TYPE_NOT_SPECIFIED, - options: { - title: null, - items: [ - { identifier: 0x01, text: "Menu Item 1" }, - { identifier: 0x02, text: "Menu Item 2" }, - { identifier: 0x03, text: "Menu Item 3" } - ], - presentationType: RIL.STK_PRESENTATION_TYPE_NOT_SPECIFIED, - isHelpAvailable: false - } - }, - // STK_CMD_SELECT_ITEM with optional properties including: - // title, iconInfo for this menu, iconInfo for each item and nextActionList. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SELECT_ITEM, - commandQualifier: RIL.STK_PRESENTATION_TYPE_NAVIGATION_OPTIONS, - options: { - title: "Selected Toolkit Menu", - items: [ - { identifier: 0x01, - text: "Menu Item 1", - iconSelfExplanatory: true, - icons: [basicIcon] - }, - { identifier: 0x02, - text: "Menu Item 2", - iconSelfExplanatory: false, - icons: [basicIcon, colorIcon] - }, - { identifier: 0x03, - text: "Menu Item 3", - iconSelfExplanatory: true, - icons: [basicIcon, colorIcon, colorTransparencyIcon] - }, - ], - nextActionList: [ - RIL.STK_NEXT_ACTION_END_PROACTIVE_SESSION, - RIL.STK_NEXT_ACTION_NULL, - RIL.STK_NEXT_ACTION_NULL, - RIL.STK_NEXT_ACTION_NULL - ], - defaultItem: 0x02, - iconSelfExplanatory: false, - icons: [basicIcon, colorIcon, colorTransparencyIcon], - presentationType: RIL.STK_PRESENTATION_TYPE_NAVIGATION_OPTIONS, - isHelpAvailable: false - } - }, - // STK_CMD_DISPLAY_TEXT with mandatory properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_DISPLAY_TEXT, - commandQualifier: 0x01, // bit 1: High Priority - options: { - text: "Display Text 1", - isHighPriority: true, - userClear: false, - responseNeeded: false - } - }, - // STK_CMD_DISPLAY_TEXT with optional properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_DISPLAY_TEXT, - commandQualifier: 0x80, // bit 8: User Clear - options: { - text: "Display Text 2", - isHighPriority: false, - userClear: true, - responseNeeded: true, - duration: { - timeUnit: RIL.STK_TIME_UNIT_TENTH_SECOND, - timeInterval: 0x05 - }, - iconSelfExplanatory: true, - icons: [basicIcon] - } - }, - // STK_CMD_SET_UP_IDLE_MODE_TEXT - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SET_UP_IDLE_MODE_TEXT, - commandQualifier: 0x00, // RFU - options: { - text: "Setup Idle Mode Text" - } - }, - // STK_CMD_SEND_SS - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SEND_SS, - commandQualifier: 0x00, // RFU - options: { - text: "Send SS", - iconSelfExplanatory: true, - icons: [colorIcon] - } - }, - // STK_CMD_SEND_USSD - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SEND_USSD, - commandQualifier: 0x00, // RFU - options: { - text: "Send USSD" - } - }, - // STK_CMD_SEND_SMS - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SEND_SMS, - commandQualifier: 0x00, // RFU - options: { - text: "Send SMS", - iconSelfExplanatory: false, - icons: [colorTransparencyIcon] - } - }, - // STK_CMD_SEND_DTMF - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SEND_DTMF, - commandQualifier: 0x00, // RFU - options: { - text: "Send DTMF", - iconSelfExplanatory: true, - icons: [basicIcon] - } - }, - // STK_CMD_GET_INKEY - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_GET_INKEY, - commandQualifier: 0x84, // bit 3: isYesNoRequested, bit 8: isHelpAvailable - options: { - text: "Get Input Key", - minLength: 1, - maxLength: 1, - duration: { - timeUnit: RIL.STK_TIME_UNIT_SECOND, - timeInterval: 0x0A - }, - isAlphabet: false, - isUCS2: false, - isYesNoRequested: true, - isHelpAvailable: true, - defaultText: null, - iconSelfExplanatory: false, - icons: [colorIcon] - } - }, - // STK_CMD_GET_INPUT - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_GET_INPUT, - commandQualifier: 0x0F, // bit 1-4: isAlphabet, isUCS2, hideInput, isPacked - options: { - text: "Get Input Text", - minLength: 1, - maxLength: 255, - defaultText: "Default Input Text", - isAlphabet: true, - isUCS2: true, - hideInput: true, - isPacked: true, - isHelpAvailable: false, - defaultText: null, - iconSelfExplanatory: true, - icons: [basicIcon] - } - }, - // STK_CMD_SET_UP_CALL with mandatory properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SET_UP_CALL, - commandQualifier: 0x00, // RFU - options: { - address: "+0987654321" - } - }, - // STK_CMD_SET_UP_CALL with optional properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SET_UP_CALL, - commandQualifier: 0x00, // RFU - options: { - address: "+0987654321", - confirmMessage: { - text: "Confirm Message", - iconSelfExplanatory: false, - icons: [colorIcon] - }, - callMessage: { - text: "Call Message", - iconSelfExplanatory: true, - icons: [basicIcon] - }, - duration: { - timeUnit: RIL.STK_TIME_UNIT_SECOND, - timeInterval: 0x0A - } - } - }, - // STK_CMD_LAUNCH_BROWSER with mandatory properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_LAUNCH_BROWSER, - commandQualifier: RIL.STK_BROWSER_MODE_USING_NEW_BROWSER, - options: { - url: "http://www.mozilla.org", - mode: RIL.STK_BROWSER_MODE_USING_NEW_BROWSER - } - }, - // STK_CMD_LAUNCH_BROWSER with optional properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_LAUNCH_BROWSER, - commandQualifier: RIL.STK_BROWSER_MODE_USING_NEW_BROWSER, - options: { - url: "http://www.mozilla.org", - mode: RIL.STK_BROWSER_MODE_USING_NEW_BROWSER, - confirmMessage: { - text: "Confirm Message for Launch Browser", - iconSelfExplanatory: false, - icons: [colorTransparencyIcon] - } - } - }, - // STK_CMD_PLAY_TONE with mandatory properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_PLAY_TONE, - commandQualifier: 0x01, // isVibrate - options: { - text: null, - isVibrate: true - } - }, - // STK_CMD_PLAY_TONE with optional properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_PLAY_TONE, - commandQualifier: 0x00, // isVibrate = false - options: { - text: "Play Tone", - tone: RIL.STK_TONE_TYPE_CONGESTION, - isVibrate: false, - duration: { - timeUnit: RIL.STK_TIME_UNIT_SECOND, - timeInterval: 0x0A - }, - iconSelfExplanatory: true, - icons: [basicIcon] - } - }, - // STK_CMD_TIMER_MANAGEMENT with mandatory properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_TIMER_MANAGEMENT, - commandQualifier: RIL.STK_TIMER_DEACTIVATE, - options: { - timerId: 0x08, - timerAction: RIL.STK_TIMER_DEACTIVATE - } - }, - // STK_CMD_TIMER_MANAGEMENT with optional properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_TIMER_MANAGEMENT, - commandQualifier: RIL.STK_TIMER_START, - options: { - timerId: 0x01, - timerValue: (12 * 60 * 60) + (30 * 60) + (30), // 12:30:30 - timerAction: RIL.STK_TIMER_START - } - }, - // STK_CMD_OPEN_CHANNEL with mandatory properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_OPEN_CHANNEL, - commandQualifier: 0x00, //RFU - options: { - text: null, - } - }, - // STK_CMD_OPEN_CHANNEL with optional properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_OPEN_CHANNEL, - commandQualifier: 0x00, //RFU - options: { - text: "Open Channel", - iconSelfExplanatory: false, - icons: [colorIcon] - } - }, - // STK_CMD_CLOSE_CHANNEL with optional properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_CLOSE_CHANNEL, - commandQualifier: 0x00, //RFU - options: { - text: "Close Channel", - iconSelfExplanatory: true, - icons: [colorTransparencyIcon] - } - }, - // STK_CMD_SEND_DATA with optional properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_SEND_DATA, - commandQualifier: 0x00, //RFU - options: { - text: null, - iconSelfExplanatory: false, - icons: [basicIcon] - } - }, - // STK_CMD_RECEIVE_DATA with optional properties. - { - commandNumber: ++cmdCount, - typeOfCommand: RIL.STK_CMD_RECEIVE_DATA, - commandQualifier: 0x00, //RFU - options: { - text: "Receive Data" - } - }, - null // Termination condition to run_next_test() - ]; - - messages.forEach(function(aMessage) { - if (!aMessage) { - run_next_test(); - return; - } - - messenger.notifyStkProactiveCommand(iccId, - gStkCmdFactory.createCommand(aMessage)); - - equal_received_system_message("icc-stkcommand", { - iccId: iccId, - command: aMessage - }); - }); -}); |