зеркало из https://github.com/mozilla/gecko-dev.git
Merge b2g-inbound to m-c on a CLOSED TREE.
This commit is contained in:
Коммит
0c057b4a60
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"revision": "a7d496de30d0a7612b31de99b01b5a4e2b749728",
|
||||
"revision": "78decf03b39ded18b914d57f4f3152d6f1b4c56a",
|
||||
"repo_path": "/integration/gaia-central"
|
||||
}
|
||||
|
|
|
@ -13,11 +13,13 @@ function testDisplayText(command, expect) {
|
|||
is(command.typeOfCommand, icc.STK_CMD_DISPLAY_TEXT, expect.name);
|
||||
is(command.options.text, expect.text, expect.name);
|
||||
is(command.commandQualifier, expect.commandQualifier, expect.name);
|
||||
if (expect.userClear) {
|
||||
is(command.options.userClear, expect.userClear, expect.name);
|
||||
}
|
||||
if (expect.isHighPriority) {
|
||||
is(command.options.isHighPriority, expect.isHighPriority, expect.name);
|
||||
|
||||
let duration = command.options.duration;
|
||||
if (duration) {
|
||||
is(duration.timeUnit, expect.duration.timeUnit, expect.name);
|
||||
is(duration.timeInterval, expect.duration.timeInterval, expect.name);
|
||||
}
|
||||
|
||||
runNextTest();
|
||||
|
@ -78,8 +80,23 @@ let tests = [
|
|||
commandQualifier: 0x80,
|
||||
text: "80ル",
|
||||
userClear: true}},
|
||||
{command: "d0288103012180820281020d1d00d3309bfc06c95c301aa8e80259c3ec34b9ac07c9602f58ed159bb940",
|
||||
func: testDisplayText,
|
||||
expect: {name: "display_text_cmd_10",
|
||||
commandQualifier: 0x80,
|
||||
text: "Saldo 2.04 E. Validez 20/05/13. ",
|
||||
userClear: true}},
|
||||
{command: "d0198103012180820281028D0A043130205365636F6E648402010A",
|
||||
func: testDisplayText,
|
||||
expect: {name: "display_text_cmd_11",
|
||||
commandQualifier: 0x80,
|
||||
text: "10 Second",
|
||||
userClear: true,
|
||||
duration: {timeUnit: icc.STK_TIME_UNIT_SECOND,
|
||||
timeInterval: 0x0A}}},
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -13,14 +13,14 @@ function testGetInKey(command, expect) {
|
|||
is(command.typeOfCommand, icc.STK_CMD_GET_INKEY, expect.name);
|
||||
is(command.commandQualifier, expect.commandQualifier, expect.name);
|
||||
is(command.options.text, expect.text, expect.name);
|
||||
if (command.options.isAlphabet) {
|
||||
is(command.options.isAlphabet, expect.isAlphabet, expect.name);
|
||||
}
|
||||
if (command.options.isUCS2) {
|
||||
is(command.options.isUCS2, expect.isUCS2, expect.name);
|
||||
}
|
||||
if (command.options.isYesNoRequested) {
|
||||
is(command.options.isYesNoRequested, expect.isYesNoRequested, expect.name);
|
||||
|
||||
let duration = command.options.duration;
|
||||
if (duration) {
|
||||
is(duration.timeUnit, expect.duration.timeUnit, expect.name);
|
||||
is(duration.timeInterval, expect.duration.timeInterval, expect.name);
|
||||
}
|
||||
|
||||
runNextTest();
|
||||
|
@ -98,8 +98,16 @@ let tests = [
|
|||
expect: {name: "get_inkey_cmd_13",
|
||||
commandQualifier: 0x00,
|
||||
text: "<NO-ICON>"}},
|
||||
{command: "D0198103012200820281828D0A04456E74657220222B228402010A",
|
||||
func: testGetInKey,
|
||||
expect: {name: "get_inkey_cmd_14",
|
||||
commandQualifier: 0x00,
|
||||
text: "Enter \"+\"",
|
||||
duration: {timeUnit: icc.STK_TIME_UNIT_SECOND,
|
||||
timeInterval: 0x0A}}},
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -174,6 +174,7 @@ let tests = [
|
|||
maxLength: 10}},
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -251,6 +251,7 @@ let tests = [
|
|||
text: "ル"}}
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -23,6 +23,7 @@ let tests = [
|
|||
commandQualifier: 0x00}}
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -8,15 +8,6 @@ SpecialPowers.addPermission("mobileconnection", true, document);
|
|||
let icc = navigator.mozIccManager;
|
||||
ok(icc instanceof MozIccManager, "icc is instanceof " + icc.constructor);
|
||||
|
||||
function testDisplayTextGsm7BitEncoding(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_DISPLAY_TEXT);
|
||||
is(cmd.options.userClear, true);
|
||||
is(cmd.options.text, "Saldo 2.04 E. Validez 20/05/13. ");
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
|
||||
function testLocalInfoLocation(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_PROVIDE_LOCAL_INFO);
|
||||
|
@ -57,35 +48,6 @@ function testLocalInfoLanguage(cmd) {
|
|||
runNextTest();
|
||||
}
|
||||
|
||||
function isFirstMenuItemNull(cmd) {
|
||||
return (cmd.options.items.length == 1 && !(cmd.options.items[0]));
|
||||
}
|
||||
|
||||
function testInitialSetupMenu(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_SET_UP_MENU);
|
||||
is(isFirstMenuItemNull(cmd), false);
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
function testRemoveSetupMenu(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_SET_UP_MENU);
|
||||
is(isFirstMenuItemNull(cmd), true);
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
|
||||
function testPollingOff(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_POLL_OFF);
|
||||
is(cmd.commandNumber, 0x01);
|
||||
is(cmd.commandQualifier, 0x00);
|
||||
is(cmd.options, null);
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
|
||||
function testRefresh(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_REFRESH);
|
||||
|
@ -130,50 +92,7 @@ function testTimerManagementGetCurrentValue(cmd) {
|
|||
runNextTest();
|
||||
}
|
||||
|
||||
function testGetInKeyVariableTimeout(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_GET_INKEY);
|
||||
is(cmd.options.duration.timeUnit, 0x01);
|
||||
is(cmd.options.duration.timeInterval, 0x0A);
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
|
||||
function testSetupCall(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_SET_UP_CALL);
|
||||
is(cmd.commandNumber, 0x01);
|
||||
is(cmd.commandQualifier, 0x04);
|
||||
is(cmd.options.address, "012340123456,1,2");
|
||||
is(cmd.options.confirmMessage, "Disconnect");
|
||||
is(cmd.options.callMessage, "Message");
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
|
||||
function testDisplayTextVariableTimeOut(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_DISPLAY_TEXT);
|
||||
is(cmd.commandNumber, 0x01);
|
||||
is(cmd.options.duration.timeUnit, icc.STK_TIME_UNIT_SECOND);
|
||||
is(cmd.options.duration.timeInterval, 0x0A);
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
|
||||
function testSetUpCallVariableTimeOut(cmd) {
|
||||
log("STK CMD " + JSON.stringify(cmd));
|
||||
is(cmd.typeOfCommand, icc.STK_CMD_SET_UP_CALL);
|
||||
is(cmd.commandNumber, 0x01);
|
||||
is(cmd.options.duration.timeUnit, icc.STK_TIME_UNIT_SECOND);
|
||||
is(cmd.options.duration.timeInterval, 0x0A);
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
|
||||
let tests = [
|
||||
{command: "d0288103012180820281020d1d00d3309bfc06c95c301aa8e80259c3ec34b9ac07c9602f58ed159bb940",
|
||||
func: testDisplayTextGsm7BitEncoding},
|
||||
{command: "d009810301260082028182",
|
||||
func: testLocalInfoLocation},
|
||||
{command: "d009810301260182028182",
|
||||
|
@ -182,29 +101,13 @@ let tests = [
|
|||
func: testLocalInfoDate},
|
||||
{command: "d009810301260482028182",
|
||||
func: testLocalInfoLanguage},
|
||||
{command: "D00D81030125008202818285008F00",
|
||||
func: testRemoveSetupMenu},
|
||||
{command:"D03B810301250082028182850C546F6F6C6B6974204D656E758F07014974656D20318F07024974656D20328F07034974656D20338F07044974656D2034",
|
||||
func: testInitialSetupMenu},
|
||||
{command: "d009810301040082028182",
|
||||
func: testPollingOff},
|
||||
{command: "d0108103010101820281829205013f002fe2",
|
||||
func: testRefresh},
|
||||
{command: "d011810301270082028182a40101a503102030",
|
||||
func: testTimerManagementStart},
|
||||
{command: "d00c810301270182028182a40104",
|
||||
func: testTimerManagementDeactivate},
|
||||
{command: "d00c810301270282028182a40108",
|
||||
func: testTimerManagementGetCurrentValue},
|
||||
{command: "d029810301100482028182050a446973636f6e6e6563748609811032042143651c2c05074d657373616765",
|
||||
func: testSetupCall},
|
||||
{command: "D0198103012200820281828D0A04456E74657220222B228402010A",
|
||||
func: testGetInKeyVariableTimeout},
|
||||
{command: "d0198103012180820281028D0A043130205365636F6E648402010A",
|
||||
func: testDisplayTextVariableTimeOut},
|
||||
{command: "d02281030110008202818385084E6F7420627573798609911032042143651C2C8402010A",
|
||||
func: testSetUpCallVariableTimeOut},
|
||||
];
|
||||
];
|
||||
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(cmd, func) {
|
||||
|
|
|
@ -27,6 +27,7 @@ let tests = [
|
|||
commandQualifier: 0x04}}
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -312,6 +312,7 @@ let tests = [
|
|||
items: [{identifier: 1, text: "82ル1"}, {identifier: 2, text: "82ル2"}, {identifier: 3, text: "82ル3"}]}}
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -192,6 +192,7 @@ let tests = [
|
|||
text: "ル"}}
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -242,6 +242,7 @@ let tests = [
|
|||
title: "82ル2"}}
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -202,6 +202,7 @@ let tests = [
|
|||
title: "ル"}}
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -207,6 +207,7 @@ let tests = [
|
|||
title: "ル"}}
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -12,8 +12,14 @@ function testSetupCall(command, expect) {
|
|||
log("STK CMD " + JSON.stringify(command));
|
||||
is(command.typeOfCommand, icc.STK_CMD_SET_UP_CALL, expect.name);
|
||||
is(command.commandQualifier, expect.commandQualifier, expect.name);
|
||||
if (command.options.confirmMessage) {
|
||||
is(command.options.confirmMessage, expect.text, expect.name);
|
||||
is(command.options.confirmMessage, expect.confirmMessage, expect.name);
|
||||
is(command.options.address, expect.address, expect.name);
|
||||
is(command.options.callMessage, expect.callMessage, expect.name);
|
||||
|
||||
let duration = command.options.duration;
|
||||
if (duration) {
|
||||
is(duration.timeUnit, expect.duration.timeUnit, expect.name);
|
||||
is(duration.timeInterval, expect.duration.timeInterval, expect.name);
|
||||
}
|
||||
|
||||
runNextTest();
|
||||
|
@ -24,228 +30,323 @@ let tests = [
|
|||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_1",
|
||||
commandQualifier: 0x00,
|
||||
text: "Not busy"}},
|
||||
confirmMessage: "Not busy",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d01d81030110028202818385074f6e20686f6c648609911032042143651c2c",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_2",
|
||||
commandQualifier: 0x02,
|
||||
text: "On hold"}},
|
||||
confirmMessage: "On hold",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d020810301100482028183850a446973636f6e6e6563748609911032042143651c2c",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_3",
|
||||
commandQualifier: 0x04,
|
||||
text: "Disconnect"}},
|
||||
confirmMessage: "Disconnect",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02b81030110008202818385114361706162696c69747920636f6e6669678609911032042143651c2c870201a0",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_4",
|
||||
commandQualifier: 0x00,
|
||||
text: "Capability config"}},
|
||||
confirmMessage: "Capability config",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d01c81030110018202818386119110325476981032547698103254769810",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_5",
|
||||
commandQualifier: 0x01}},
|
||||
commandQualifier: 0x01,
|
||||
address: "+01234567890123456789012345678901"}},
|
||||
{command: "d081fd8103011001820281838581ed54687265652074797065732061726520646566696e65643a202d2073657420757020612063616c6c2c20627574206f6e6c79206966206e6f742063757272656e746c792062757379206f6e20616e6f746865722063616c6c3b202d2073657420757020612063616c6c2c2070757474696e6720616c6c206f746865722063616c6c732028696620616e7929206f6e20686f6c643b202d2073657420757020612063616c6c2c20646973636f6e6e656374696e6720616c6c206f746865722063616c6c732028696620616e79292066697273742e20466f722065616368206f662074686573652074797065732c2086029110",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_6",
|
||||
commandQualifier: 0x01,
|
||||
text: "Three types are defined: - set up a call, but only if not currently busy on another call; - set up a call, putting all other calls (if any) on hold; - set up a call, disconnecting all other calls (if any) first. For each of these types, "}},
|
||||
confirmMessage: "Three types are defined: - set up a call, but only if not currently busy on another call; - set up a call, putting all other calls (if any) on hold; - set up a call, disconnecting all other calls (if any) first. For each of these types, ",
|
||||
address: "+01"}},
|
||||
{command: "d02b810301100082028183850c43616c6c65642070617274798609911032042143651c2c880780509595959595",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_7",
|
||||
commandQualifier: 0x00,
|
||||
text: "Called party"}},
|
||||
confirmMessage: "Called party",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02281030110018202818385084475726174696f6e8609911032042143651c2c8402010a",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_8",
|
||||
commandQualifier: 0x01,
|
||||
text: "Duration"}},
|
||||
confirmMessage: "Duration",
|
||||
address: "+012340123456,1,2",
|
||||
duration: {timeUnit: icc.STK_TIME_UNIT_SECOND,
|
||||
timeInterval: 0x0A}}},
|
||||
{command: "d028810301100082028183850c434f4e4649524d4154494f4e8609911032042143651c2c850443414c4c",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_9",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION"}},
|
||||
confirmMessage: "CONFIRMATION",
|
||||
callMessage: "CALL",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d03081030110008202818385165365742075702063616c6c2049636f6e20332e312e318609911032042143651c2c9e020101",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_10",
|
||||
commandQualifier: 0x00,
|
||||
text: "Set up call Icon 3.1.1"}},
|
||||
confirmMessage: "Set up call Icon 3.1.1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d03081030110008202818385165365742075702063616c6c2049636f6e20332e322e318609911032042143651c2c9e020001",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_11",
|
||||
commandQualifier: 0x00,
|
||||
text: "Set up call Icon 3.2.1"}},
|
||||
confirmMessage: "Set up call Icon 3.2.1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d03081030110008202818385165365742075702063616c6c2049636f6e20332e332e318609911032042143651c2c9e020102",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_12",
|
||||
commandQualifier: 0x00,
|
||||
text: "Set up call Icon 3.3.1"}},
|
||||
confirmMessage: "Set up call Icon 3.3.1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d04c81030110008202818385165365742075702063616c6c2049636f6e20332e342e318609911032042143651c2c9e02000185165365742075702063616c6c2049636f6e20332e342e329e020001",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_13",
|
||||
commandQualifier: 0x00,
|
||||
text: "Set up call Icon 3.4.1"}},
|
||||
confirmMessage: "Set up call Icon 3.4.1",
|
||||
callMessage: "Set up call Icon 3.4.2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e00b4d004000600b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_14",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_15",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e01b4d004000601b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_16",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_17",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e02b4d004000602b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_18",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_19",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e04b4d004000604b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_20",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032d004000e00b4d004000600b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_21",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20338609911032042143651c2c850643414c4c2033",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_22",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 3"}},
|
||||
confirmMessage: "CONFIRMATION 3",
|
||||
callMessage: "CALL 3",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e08b4d004000608b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_23",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032d004000e00b4d004000600b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_24",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20338609911032042143651c2c850643414c4c2033",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_25",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 3"}},
|
||||
confirmMessage: "CONFIRMATION 3",
|
||||
callMessage: "CALL 3",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e10b4d004000610b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_26",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032d004000e00b4d004000600b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_27",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20338609911032042143651c2c850643414c4c2033",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_28",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 3"}},
|
||||
confirmMessage: "CONFIRMATION 3",
|
||||
callMessage: "CALL 3",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e20b4d004000620b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_29",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032d004000e00b4d004000600b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_30",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20338609911032042143651c2c850643414c4c2033",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_31",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 3"}},
|
||||
confirmMessage: "CONFIRMATION 3",
|
||||
callMessage: "CALL 3",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e40b4d004000640b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_32",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032d004000e00b4d004000600b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_33",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20338609911032042143651c2c850643414c4c2033",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_34",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 3"}},
|
||||
confirmMessage: "CONFIRMATION 3",
|
||||
callMessage: "CALL 3",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e80b4d004000680b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_35",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032d004000e00b4d004000600b4",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_36",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20338609911032042143651c2c850643414c4c2033",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_37",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 3"}},
|
||||
confirmMessage: "CONFIRMATION 3",
|
||||
callMessage: "CALL 3",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d038810301100082028183850e434f4e4649524d4154494f4e20318609911032042143651c2c850643414c4c2031d004000e00b4d0040006004b",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_38",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 1"}},
|
||||
confirmMessage: "CONFIRMATION 1",
|
||||
callMessage: "CALL 1",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02c810301100082028183850e434f4e4649524d4154494f4e20328609911032042143651c2c850643414c4c2032",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_39",
|
||||
commandQualifier: 0x00,
|
||||
text: "CONFIRMATION 2"}},
|
||||
confirmMessage: "CONFIRMATION 2",
|
||||
callMessage: "CALL 2",
|
||||
address: "+012340123456,1,2"}},
|
||||
{command: "d02d810301100082028183851980041704140420041004120421042204120423041904220415860791103204214365",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_40",
|
||||
commandQualifier: 0x00,
|
||||
text: "ЗДРАВСТВУЙТЕ"}},
|
||||
confirmMessage: "ЗДРАВСТВУЙТЕ",
|
||||
address: "+012340123456"}},
|
||||
{command: "d04c810301100082028183851b800417041404200410041204210422041204230419042204150031860791103204214365851b800417041404200410041204210422041204230419042204150032",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_41",
|
||||
commandQualifier: 0x00,
|
||||
text: "ЗДРАВСТВУЙТЕ1"}},
|
||||
confirmMessage: "ЗДРАВСТВУЙТЕ1",
|
||||
callMessage: "ЗДРАВСТВУЙТЕ2",
|
||||
address: "+012340123456"}},
|
||||
{command: "d0198103011000820281838505804e0d5fd9860791103204214365",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_42",
|
||||
commandQualifier: 0x00,
|
||||
text: "不忙"}},
|
||||
confirmMessage: "不忙",
|
||||
address: "+012340123456"}},
|
||||
{command: "d022810301100082028183850580786e5b9a860791103204214365850780625375358bdd",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_43",
|
||||
commandQualifier: 0x00,
|
||||
text: "确定"}},
|
||||
confirmMessage: "确定",
|
||||
callMessage: "打电话",
|
||||
address: "+012340123456"}},
|
||||
{command: "d01781030110008202818385038030eb860791103204214365",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_44",
|
||||
commandQualifier: 0x00,
|
||||
text: "ル"}},
|
||||
confirmMessage: "ル",
|
||||
address: "+012340123456"}},
|
||||
{command: "d02081030110008202818385058030eb003186079110320421436585058030eb0032",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_45",
|
||||
commandQualifier: 0x00,
|
||||
text: "ル1"}},
|
||||
confirmMessage: "ル1",
|
||||
callMessage:"ル2",
|
||||
address: "+012340123456"}},
|
||||
{command: "d029810301100482028182050a446973636f6e6e6563748609811032042143651c2c05074d657373616765",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_46",
|
||||
commandQualifier: 0x04,
|
||||
confirmMessage: "Disconnect",
|
||||
address: "012340123456,1,2",
|
||||
callMessage: "Message"}},
|
||||
{command: "d02281030110008202818385084E6F7420627573798609911032042143651C2C8402010A",
|
||||
func: testSetupCall,
|
||||
expect: {name: "setup_call_cmd_47",
|
||||
commandQualifier: 0x00,
|
||||
confirmMessage: "Not busy",
|
||||
address: "+012340123456,1,2",
|
||||
duration: {timeUnit: icc.STK_TIME_UNIT_SECOND,
|
||||
timeInterval: 0x0A}}},
|
||||
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -52,6 +52,7 @@ let tests = [
|
|||
eventList: [7]}}
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -195,6 +195,7 @@ let tests = [
|
|||
text: "80ル0"}},
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -21,6 +21,25 @@ function testSetupMenu(command, expect) {
|
|||
runNextTest();
|
||||
}
|
||||
|
||||
function isFirstMenuItemNull(command) {
|
||||
return (command.options.items.length == 1 && !(command.options.items[0]));
|
||||
}
|
||||
|
||||
function testInitialSetupMenu(command) {
|
||||
log("STK CMD " + JSON.stringify(command));
|
||||
is(command.typeOfCommand, icc.STK_CMD_SET_UP_MENU);
|
||||
is(isFirstMenuItemNull(command), false);
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
function testRemoveSetupMenu(command) {
|
||||
log("STK CMD " + JSON.stringify(command));
|
||||
is(command.typeOfCommand, icc.STK_CMD_SET_UP_MENU);
|
||||
is(isFirstMenuItemNull(command), true);
|
||||
|
||||
runNextTest();
|
||||
}
|
||||
|
||||
let tests = [
|
||||
{command: "d03b810301250082028182850c546f6f6c6b6974204d656e758f07014974656d20318f07024974656d20328f07034974656d20338f07044974656d2034",
|
||||
func: testSetupMenu,
|
||||
|
@ -207,9 +226,15 @@ let tests = [
|
|||
expect: {name: "setup_menu_cmd_31",
|
||||
commandQualifier: 0x00,
|
||||
title: "80ル0",
|
||||
items: [{identifier: 17, text: "80ル5"}, {identifier: 18, text: "80ル6"}]}}
|
||||
items: [{identifier: 17, text: "80ル5"}, {identifier: 18, text: "80ル6"}]}},
|
||||
{command: "D00D81030125008202818285008F00",
|
||||
func: testRemoveSetupMenu},
|
||||
{command:"D03B810301250082028182850C546F6F6C6B6974204D656E758F07014974656D20318F07024974656D20328F07034974656D20338F07044974656D2034",
|
||||
func: testInitialSetupMenu},
|
||||
|
||||
];
|
||||
|
||||
// TODO - Bug 843455: Import scripts for marionette tests.
|
||||
let pendingEmulatorCmdCount = 0;
|
||||
function sendStkPduToEmulator(command, func, expect) {
|
||||
++pendingEmulatorCmdCount;
|
||||
|
|
|
@ -1881,6 +1881,7 @@ let RIL = {
|
|||
if (this._isEmergencyNumber(options.number)) {
|
||||
this.dialEmergencyNumber(options, onerror);
|
||||
} else {
|
||||
if (!this._isCdma) {
|
||||
// TODO: Both dial() and sendMMI() functions should be unified at some
|
||||
// point in the future. In the mean time we handle temporary CLIR MMI
|
||||
// commands through the dial() function. Please see bug 889737.
|
||||
|
@ -1889,6 +1890,7 @@ let RIL = {
|
|||
options.number = mmi.dialNumber;
|
||||
options.clirMode = this._getCLIRMode(mmi);
|
||||
}
|
||||
}
|
||||
this.dialNonEmergencyNumber(options, onerror);
|
||||
}
|
||||
},
|
||||
|
@ -9551,62 +9553,14 @@ let CdmaPDUHelper = {
|
|||
|
||||
let StkCommandParamsFactory = {
|
||||
createParam: function createParam(cmdDetails, ctlvs) {
|
||||
let param;
|
||||
switch (cmdDetails.typeOfCommand) {
|
||||
case STK_CMD_REFRESH:
|
||||
param = this.processRefresh(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_POLL_INTERVAL:
|
||||
param = this.processPollInterval(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_POLL_OFF:
|
||||
param = this.processPollOff(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_PROVIDE_LOCAL_INFO:
|
||||
param = this.processProvideLocalInfo(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_SET_UP_EVENT_LIST:
|
||||
param = this.processSetUpEventList(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_SET_UP_MENU:
|
||||
case STK_CMD_SELECT_ITEM:
|
||||
param = this.processSelectItem(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_DISPLAY_TEXT:
|
||||
param = this.processDisplayText(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_SET_UP_IDLE_MODE_TEXT:
|
||||
param = this.processSetUpIdleModeText(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_GET_INKEY:
|
||||
param = this.processGetInkey(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_GET_INPUT:
|
||||
param = this.processGetInput(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_SEND_SS:
|
||||
case STK_CMD_SEND_USSD:
|
||||
case STK_CMD_SEND_SMS:
|
||||
case STK_CMD_SEND_DTMF:
|
||||
param = this.processEventNotify(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_SET_UP_CALL:
|
||||
param = this.processSetupCall(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_LAUNCH_BROWSER:
|
||||
param = this.processLaunchBrowser(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_PLAY_TONE:
|
||||
param = this.processPlayTone(cmdDetails, ctlvs);
|
||||
break;
|
||||
case STK_CMD_TIMER_MANAGEMENT:
|
||||
param = this.processTimerManagement(cmdDetails, ctlvs);
|
||||
break;
|
||||
default:
|
||||
if (DEBUG) debug("unknown proactive command");
|
||||
break;
|
||||
let method = StkCommandParamsFactory[cmdDetails.typeOfCommand];
|
||||
if (typeof method != "function") {
|
||||
if (DEBUG) {
|
||||
debug("Unknown proactive command " + cmdDetails.typeOfCommand.toString(16));
|
||||
}
|
||||
return param;
|
||||
return null;
|
||||
}
|
||||
return method.call(this, cmdDetails, ctlvs);
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -10015,49 +9969,75 @@ let StkCommandParamsFactory = {
|
|||
return timer;
|
||||
}
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_REFRESH] = function STK_CMD_REFRESH(cmdDetails, ctlvs) {
|
||||
return this.processRefresh(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_POLL_INTERVAL] = function STK_CMD_POLL_INTERVAL(cmdDetails, ctlvs) {
|
||||
return this.processPollInterval(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_POLL_OFF] = function STK_CMD_POLL_OFF(cmdDetails, ctlvs) {
|
||||
return this.processPollOff(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_PROVIDE_LOCAL_INFO] = function STK_CMD_PROVIDE_LOCAL_INFO(cmdDetails, ctlvs) {
|
||||
return this.processProvideLocalInfo(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_SET_UP_EVENT_LIST] = function STK_CMD_SET_UP_EVENT_LIST(cmdDetails, ctlvs) {
|
||||
return this.processSetUpEventList(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_SET_UP_MENU] = function STK_CMD_SET_UP_MENU(cmdDetails, ctlvs) {
|
||||
return this.processSelectItem(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_SELECT_ITEM] = function STK_CMD_SELECT_ITEM(cmdDetails, ctlvs) {
|
||||
return this.processSelectItem(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_DISPLAY_TEXT] = function STK_CMD_DISPLAY_TEXT(cmdDetails, ctlvs) {
|
||||
return this.processDisplayText(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_SET_UP_IDLE_MODE_TEXT] = function STK_CMD_SET_UP_IDLE_MODE_TEXT(cmdDetails, ctlvs) {
|
||||
return this.processSetUpIdleModeText(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_GET_INKEY] = function STK_CMD_GET_INKEY(cmdDetails, ctlvs) {
|
||||
return this.processGetInkey(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_GET_INPUT] = function STK_CMD_GET_INPUT(cmdDetails, ctlvs) {
|
||||
return this.processGetInput(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_SEND_SS] = function STK_CMD_SEND_SS(cmdDetails, ctlvs) {
|
||||
return this.processEventNotify(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_SEND_USSD] = function STK_CMD_SEND_USSD(cmdDetails, ctlvs) {
|
||||
return this.processEventNotify(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_SEND_SMS] = function STK_CMD_SEND_SMS(cmdDetails, ctlvs) {
|
||||
return this.processEventNotify(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_SEND_DTMF] = function STK_CMD_SEND_DTMF(cmdDetails, ctlvs) {
|
||||
return this.processEventNotify(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_SET_UP_CALL] = function STK_CMD_SET_UP_CALL(cmdDetails, ctlvs) {
|
||||
return this.processSetupCall(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_LAUNCH_BROWSER] = function STK_CMD_LAUNCH_BROWSER(cmdDetails, ctlvs) {
|
||||
return this.processLaunchBrowser(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_PLAY_TONE] = function STK_CMD_PLAY_TONE(cmdDetails, ctlvs) {
|
||||
return this.processPlayTone(cmdDetails, ctlvs);
|
||||
};
|
||||
StkCommandParamsFactory[STK_CMD_TIMER_MANAGEMENT] = function STK_CMD_TIMER_MANAGEMENT(cmdDetails, ctlvs) {
|
||||
return this.processTimerManagement(cmdDetails, ctlvs);
|
||||
};
|
||||
|
||||
let StkProactiveCmdHelper = {
|
||||
retrieve: function retrieve(tag, length) {
|
||||
switch (tag) {
|
||||
case COMPREHENSIONTLV_TAG_COMMAND_DETAILS:
|
||||
return this.retrieveCommandDetails(length);
|
||||
case COMPREHENSIONTLV_TAG_DEVICE_ID:
|
||||
return this.retrieveDeviceId(length);
|
||||
case COMPREHENSIONTLV_TAG_ALPHA_ID:
|
||||
return this.retrieveAlphaId(length);
|
||||
case COMPREHENSIONTLV_TAG_DURATION:
|
||||
return this.retrieveDuration(length);
|
||||
case COMPREHENSIONTLV_TAG_ADDRESS:
|
||||
return this.retrieveAddress(length);
|
||||
case COMPREHENSIONTLV_TAG_TEXT_STRING:
|
||||
return this.retrieveTextString(length);
|
||||
case COMPREHENSIONTLV_TAG_TONE:
|
||||
return this.retrieveTone(length);
|
||||
case COMPREHENSIONTLV_TAG_ITEM:
|
||||
return this.retrieveItem(length);
|
||||
case COMPREHENSIONTLV_TAG_ITEM_ID:
|
||||
return this.retrieveItemId(length);
|
||||
case COMPREHENSIONTLV_TAG_RESPONSE_LENGTH:
|
||||
return this.retrieveResponseLength(length);
|
||||
case COMPREHENSIONTLV_TAG_FILE_LIST:
|
||||
return this.retrieveFileList(length);
|
||||
case COMPREHENSIONTLV_TAG_DEFAULT_TEXT:
|
||||
return this.retrieveDefaultText(length);
|
||||
case COMPREHENSIONTLV_TAG_EVENT_LIST:
|
||||
return this.retrieveEventList(length);
|
||||
case COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER:
|
||||
return this.retrieveTimerId(length);
|
||||
case COMPREHENSIONTLV_TAG_TIMER_VALUE:
|
||||
return this.retrieveTimerValue(length);
|
||||
case COMPREHENSIONTLV_TAG_IMMEDIATE_RESPONSE:
|
||||
return this.retrieveImmediaResponse(length);
|
||||
case COMPREHENSIONTLV_TAG_URL:
|
||||
return this.retrieveUrl(length);
|
||||
default:
|
||||
if (DEBUG) debug("StkProactiveCmdHelper: unknown tag " + tag.toString(16));
|
||||
let method = StkProactiveCmdHelper[tag];
|
||||
if (typeof method != "function") {
|
||||
if (DEBUG) {
|
||||
debug("Unknown comprehension tag " + tag.toString(16));
|
||||
}
|
||||
Buf.seekIncoming(length * PDU_HEX_OCTET_SIZE);
|
||||
return null;
|
||||
}
|
||||
return method.call(this, length);
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -10377,6 +10357,57 @@ let StkProactiveCmdHelper = {
|
|||
return null;
|
||||
},
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_COMMAND_DETAILS] = function COMPREHENSIONTLV_TAG_COMMAND_DETAILS(length) {
|
||||
return this.retrieveCommandDetails(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_DEVICE_ID] = function COMPREHENSIONTLV_TAG_DEVICE_ID(length) {
|
||||
return this.retrieveDeviceId(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_ALPHA_ID] = function COMPREHENSIONTLV_TAG_ALPHA_ID(length) {
|
||||
return this.retrieveAlphaId(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_DURATION] = function COMPREHENSIONTLV_TAG_DURATION(length) {
|
||||
return this.retrieveDuration(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_ADDRESS] = function COMPREHENSIONTLV_TAG_ADDRESS(length) {
|
||||
return this.retrieveAddress(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_TEXT_STRING] = function COMPREHENSIONTLV_TAG_TEXT_STRING(length) {
|
||||
return this.retrieveTextString(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_TONE] = function COMPREHENSIONTLV_TAG_TONE(length) {
|
||||
return this.retrieveTone(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_ITEM] = function COMPREHENSIONTLV_TAG_ITEM(length) {
|
||||
return this.retrieveItem(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_ITEM_ID] = function COMPREHENSIONTLV_TAG_ITEM_ID(length) {
|
||||
return this.retrieveItemId(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_RESPONSE_LENGTH] = function COMPREHENSIONTLV_TAG_RESPONSE_LENGTH(length) {
|
||||
return this.retrieveResponseLength(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_FILE_LIST] = function COMPREHENSIONTLV_TAG_FILE_LIST(length) {
|
||||
return this.retrieveFileList(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_DEFAULT_TEXT] = function COMPREHENSIONTLV_TAG_DEFAULT_TEXT(length) {
|
||||
return this.retrieveDefaultText(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_EVENT_LIST] = function COMPREHENSIONTLV_TAG_EVENT_LIST(length) {
|
||||
return this.retrieveEventList(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER] = function COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER(length) {
|
||||
return this.retrieveTimerId(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_TIMER_VALUE] = function COMPREHENSIONTLV_TAG_TIMER_VALUE(length) {
|
||||
return this.retrieveTimerValue(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_IMMEDIATE_RESPONSE] = function COMPREHENSIONTLV_TAG_IMMEDIATE_RESPONSE(length) {
|
||||
return this.retrieveImmediaResponse(length);
|
||||
};
|
||||
StkProactiveCmdHelper[COMPREHENSIONTLV_TAG_URL] = function COMPREHENSIONTLV_TAG_URL(length) {
|
||||
return this.retrieveUrl(length);
|
||||
};
|
||||
|
||||
let ComprehensionTlvHelper = {
|
||||
/**
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,927 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
subscriptLoader.loadSubScript("resource://gre/modules/ril_consts.js", this);
|
||||
|
||||
function run_test() {
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function.
|
||||
*/
|
||||
function newUint8Worker() {
|
||||
let worker = newWorker();
|
||||
let index = 0; // index for read
|
||||
let buf = [];
|
||||
|
||||
worker.Buf.writeUint8 = function (value) {
|
||||
buf.push(value);
|
||||
};
|
||||
|
||||
worker.Buf.readUint8 = function () {
|
||||
return buf[index++];
|
||||
};
|
||||
|
||||
worker.Buf.seekIncoming = function (offset) {
|
||||
index += offset;
|
||||
};
|
||||
|
||||
worker.debug = do_print;
|
||||
|
||||
return worker;
|
||||
}
|
||||
|
||||
function newUint8SupportOutgoingIndexWorker() {
|
||||
let worker = newWorker();
|
||||
let index = 4; // index for read
|
||||
let buf = [0, 0, 0, 0]; // Preserved parcel size
|
||||
|
||||
worker.Buf.writeUint8 = function (value) {
|
||||
if (worker.Buf.outgoingIndex >= buf.length) {
|
||||
buf.push(value);
|
||||
} else {
|
||||
buf[worker.Buf.outgoingIndex] = value;
|
||||
}
|
||||
|
||||
worker.Buf.outgoingIndex++;
|
||||
};
|
||||
|
||||
worker.Buf.readUint8 = function () {
|
||||
return buf[index++];
|
||||
};
|
||||
|
||||
worker.Buf.seekIncoming = function (offset) {
|
||||
index += offset;
|
||||
};
|
||||
|
||||
worker.debug = do_print;
|
||||
|
||||
return worker;
|
||||
}
|
||||
|
||||
// Test RIL requests related to STK.
|
||||
|
||||
/**
|
||||
* Verify RIL.sendStkTerminalProfile
|
||||
*/
|
||||
add_test(function test_send_stk_terminal_profile() {
|
||||
let worker = newUint8Worker();
|
||||
let ril = worker.RIL;
|
||||
let buf = worker.Buf;
|
||||
|
||||
ril.sendStkTerminalProfile(STK_SUPPORTED_TERMINAL_PROFILE);
|
||||
|
||||
buf.seekIncoming(8);
|
||||
let profile = buf.readString();
|
||||
for (let i = 0; i < STK_SUPPORTED_TERMINAL_PROFILE.length; i++) {
|
||||
do_check_eq(parseInt(profile.substring(2 * i, 2 * i + 2), 16),
|
||||
STK_SUPPORTED_TERMINAL_PROFILE[i]);
|
||||
}
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify STK terminal response
|
||||
*/
|
||||
add_test(function test_stk_terminal_response() {
|
||||
let worker = newUint8SupportOutgoingIndexWorker();
|
||||
let buf = worker.Buf;
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
|
||||
buf.sendParcel = function () {
|
||||
// Type
|
||||
do_check_eq(this.readUint32(), REQUEST_STK_SEND_TERMINAL_RESPONSE);
|
||||
|
||||
// Token : we don't care
|
||||
this.readUint32();
|
||||
|
||||
// Data Size, 44 = 2 * (TLV_COMMAND_DETAILS_SIZE(5) +
|
||||
// TLV_DEVICE_ID_SIZE(4) +
|
||||
// TLV_RESULT_SIZE(3) +
|
||||
// TEXT LENGTH(10))
|
||||
do_check_eq(this.readUint32(), 44);
|
||||
|
||||
// Command Details, Type-Length-Value
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_COMMAND_DETAILS |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 3);
|
||||
do_check_eq(pduHelper.readHexOctet(), 0x01);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_CMD_PROVIDE_LOCAL_INFO);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_LOCAL_INFO_NNA);
|
||||
|
||||
// Device Identifies, Type-Length-Value(Source ID-Destination ID)
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_DEVICE_ID);
|
||||
do_check_eq(pduHelper.readHexOctet(), 2);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_DEVICE_ID_ME);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_DEVICE_ID_SIM);
|
||||
|
||||
// Result
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_RESULT |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 1);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_RESULT_OK);
|
||||
|
||||
// Text
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_TEXT_STRING |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 8);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_TEXT_CODING_GSM_7BIT_PACKED);
|
||||
do_check_eq(pduHelper.readSeptetsToString(7, 0, PDU_NL_IDENTIFIER_DEFAULT,
|
||||
PDU_NL_IDENTIFIER_DEFAULT), "Mozilla");
|
||||
|
||||
run_next_test();
|
||||
};
|
||||
|
||||
let response = {
|
||||
command: {
|
||||
commandNumber: 0x01,
|
||||
typeOfCommand: STK_CMD_PROVIDE_LOCAL_INFO,
|
||||
commandQualifier: STK_LOCAL_INFO_NNA,
|
||||
options: {
|
||||
isPacked: true
|
||||
}
|
||||
},
|
||||
input: "Mozilla",
|
||||
resultCode: STK_RESULT_OK
|
||||
};
|
||||
worker.RIL.sendStkTerminalResponse(response);
|
||||
});
|
||||
|
||||
// Test ComprehensionTlvHelper
|
||||
|
||||
/**
|
||||
* Verify ComprehensionTlvHelper.writeLocationInfoTlv
|
||||
*/
|
||||
add_test(function test_write_location_info_tlv() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let tlvHelper = worker.ComprehensionTlvHelper;
|
||||
|
||||
// Test with 2-digit mnc, and gsmCellId obtained from UMTS network.
|
||||
let loc = {
|
||||
mcc: "466",
|
||||
mnc: "92",
|
||||
gsmLocationAreaCode : 10291,
|
||||
gsmCellId: 19072823
|
||||
};
|
||||
tlvHelper.writeLocationInfoTlv(loc);
|
||||
|
||||
let tag = pduHelper.readHexOctet();
|
||||
do_check_eq(tag, COMPREHENSIONTLV_TAG_LOCATION_INFO |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
|
||||
let length = pduHelper.readHexOctet();
|
||||
do_check_eq(length, 9);
|
||||
|
||||
let mcc_mnc = pduHelper.readSwappedNibbleBcdString(3);
|
||||
do_check_eq(mcc_mnc, "46692");
|
||||
|
||||
let lac = (pduHelper.readHexOctet() << 8) | pduHelper.readHexOctet();
|
||||
do_check_eq(lac, 10291);
|
||||
|
||||
let cellId = (pduHelper.readHexOctet() << 24) |
|
||||
(pduHelper.readHexOctet() << 16) |
|
||||
(pduHelper.readHexOctet() << 8) |
|
||||
(pduHelper.readHexOctet());
|
||||
do_check_eq(cellId, 19072823);
|
||||
|
||||
// Test with 1-digit mnc, and gsmCellId obtained from GSM network.
|
||||
loc = {
|
||||
mcc: "466",
|
||||
mnc: "02",
|
||||
gsmLocationAreaCode : 10291,
|
||||
gsmCellId: 65534
|
||||
};
|
||||
tlvHelper.writeLocationInfoTlv(loc);
|
||||
|
||||
tag = pduHelper.readHexOctet();
|
||||
do_check_eq(tag, COMPREHENSIONTLV_TAG_LOCATION_INFO |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
|
||||
length = pduHelper.readHexOctet();
|
||||
do_check_eq(length, 7);
|
||||
|
||||
mcc_mnc = pduHelper.readSwappedNibbleBcdString(3);
|
||||
do_check_eq(mcc_mnc, "46602");
|
||||
|
||||
lac = (pduHelper.readHexOctet() << 8) | pduHelper.readHexOctet();
|
||||
do_check_eq(lac, 10291);
|
||||
|
||||
cellId = (pduHelper.readHexOctet() << 8) | (pduHelper.readHexOctet());
|
||||
do_check_eq(cellId, 65534);
|
||||
|
||||
// Test with 3-digit mnc, and gsmCellId obtained from GSM network.
|
||||
loc = {
|
||||
mcc: "466",
|
||||
mnc: "222",
|
||||
gsmLocationAreaCode : 10291,
|
||||
gsmCellId: 65534
|
||||
};
|
||||
tlvHelper.writeLocationInfoTlv(loc);
|
||||
|
||||
tag = pduHelper.readHexOctet();
|
||||
do_check_eq(tag, COMPREHENSIONTLV_TAG_LOCATION_INFO |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
|
||||
length = pduHelper.readHexOctet();
|
||||
do_check_eq(length, 7);
|
||||
|
||||
mcc_mnc = pduHelper.readSwappedNibbleBcdString(3);
|
||||
do_check_eq(mcc_mnc, "466222");
|
||||
|
||||
lac = (pduHelper.readHexOctet() << 8) | pduHelper.readHexOctet();
|
||||
do_check_eq(lac, 10291);
|
||||
|
||||
cellId = (pduHelper.readHexOctet() << 8) | (pduHelper.readHexOctet());
|
||||
do_check_eq(cellId, 65534);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify ComprehensionTlvHelper.writeErrorNumber
|
||||
*/
|
||||
add_test(function test_write_disconnecting_cause() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let tlvHelper = worker.ComprehensionTlvHelper;
|
||||
|
||||
tlvHelper.writeCauseTlv(RIL_ERROR_TO_GECKO_ERROR[ERROR_GENERIC_FAILURE]);
|
||||
let tag = pduHelper.readHexOctet();
|
||||
do_check_eq(tag, COMPREHENSIONTLV_TAG_CAUSE | COMPREHENSIONTLV_FLAG_CR);
|
||||
let len = pduHelper.readHexOctet();
|
||||
do_check_eq(len, 2); // We have one cause.
|
||||
let standard = pduHelper.readHexOctet();
|
||||
do_check_eq(standard, 0x60);
|
||||
let cause = pduHelper.readHexOctet();
|
||||
do_check_eq(cause, 0x80 | ERROR_GENERIC_FAILURE);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify ComprehensionTlvHelper.getSizeOfLengthOctets
|
||||
*/
|
||||
add_test(function test_get_size_of_length_octets() {
|
||||
let worker = newUint8Worker();
|
||||
let tlvHelper = worker.ComprehensionTlvHelper;
|
||||
|
||||
let length = 0x70;
|
||||
do_check_eq(tlvHelper.getSizeOfLengthOctets(length), 1);
|
||||
|
||||
length = 0x80;
|
||||
do_check_eq(tlvHelper.getSizeOfLengthOctets(length), 2);
|
||||
|
||||
length = 0x180;
|
||||
do_check_eq(tlvHelper.getSizeOfLengthOctets(length), 3);
|
||||
|
||||
length = 0x18000;
|
||||
do_check_eq(tlvHelper.getSizeOfLengthOctets(length), 4);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify ComprehensionTlvHelper.writeLength
|
||||
*/
|
||||
add_test(function test_write_length() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let tlvHelper = worker.ComprehensionTlvHelper;
|
||||
|
||||
let length = 0x70;
|
||||
tlvHelper.writeLength(length);
|
||||
do_check_eq(pduHelper.readHexOctet(), length);
|
||||
|
||||
length = 0x80;
|
||||
tlvHelper.writeLength(length);
|
||||
do_check_eq(pduHelper.readHexOctet(), 0x81);
|
||||
do_check_eq(pduHelper.readHexOctet(), length);
|
||||
|
||||
length = 0x180;
|
||||
tlvHelper.writeLength(length);
|
||||
do_check_eq(pduHelper.readHexOctet(), 0x82);
|
||||
do_check_eq(pduHelper.readHexOctet(), (length >> 8) & 0xff);
|
||||
do_check_eq(pduHelper.readHexOctet(), length & 0xff);
|
||||
|
||||
length = 0x18000;
|
||||
tlvHelper.writeLength(length);
|
||||
do_check_eq(pduHelper.readHexOctet(), 0x83);
|
||||
do_check_eq(pduHelper.readHexOctet(), (length >> 16) & 0xff);
|
||||
do_check_eq(pduHelper.readHexOctet(), (length >> 8) & 0xff);
|
||||
do_check_eq(pduHelper.readHexOctet(), length & 0xff);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
// Test Proactive commands.
|
||||
|
||||
/**
|
||||
* Verify Proactive Command : Refresh
|
||||
*/
|
||||
add_test(function test_stk_proactive_command_refresh() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
|
||||
let refresh_1 = [
|
||||
0xD0,
|
||||
0x10,
|
||||
0x81, 0x03, 0x01, 0x01, 0x01,
|
||||
0x82, 0x02, 0x81, 0x82,
|
||||
0x92, 0x05, 0x01, 0x3F, 0x00, 0x2F, 0xE2];
|
||||
|
||||
for (let i = 0; i < refresh_1.length; i++) {
|
||||
pduHelper.writeHexOctet(refresh_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(refresh_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, 0x01);
|
||||
do_check_eq(tlv.value.commandQualifier, 0x01);
|
||||
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_FILE_LIST, ctlvs);
|
||||
do_check_eq(tlv.value.fileList, "3F002FE2");
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Proactive Command : Play Tone
|
||||
*/
|
||||
add_test(function test_stk_proactive_command_play_tone() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
|
||||
let tone_1 = [
|
||||
0xD0,
|
||||
0x1B,
|
||||
0x81, 0x03, 0x01, 0x20, 0x00,
|
||||
0x82, 0x02, 0x81, 0x03,
|
||||
0x85, 0x09, 0x44, 0x69, 0x61, 0x6C, 0x20, 0x54, 0x6F, 0x6E, 0x65,
|
||||
0x8E, 0x01, 0x01,
|
||||
0x84, 0x02, 0x01, 0x05];
|
||||
|
||||
for (let i = 0; i < tone_1.length; i++) {
|
||||
pduHelper.writeHexOctet(tone_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(tone_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, 0x20);
|
||||
do_check_eq(tlv.value.commandQualifier, 0x00);
|
||||
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_ALPHA_ID, ctlvs);
|
||||
do_check_eq(tlv.value.identifier, "Dial Tone");
|
||||
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_TONE, ctlvs);
|
||||
do_check_eq(tlv.value.tone, STK_TONE_TYPE_DIAL_TONE);
|
||||
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_DURATION, ctlvs);
|
||||
do_check_eq(tlv.value.timeUnit, STK_TIME_UNIT_SECOND);
|
||||
do_check_eq(tlv.value.timeInterval, 5);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Proactive Command : Poll Interval
|
||||
*/
|
||||
add_test(function test_stk_proactive_command_poll_interval() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
|
||||
let poll_1 = [
|
||||
0xD0,
|
||||
0x0D,
|
||||
0x81, 0x03, 0x01, 0x03, 0x00,
|
||||
0x82, 0x02, 0x81, 0x82,
|
||||
0x84, 0x02, 0x01, 0x14];
|
||||
|
||||
for (let i = 0; i < poll_1.length; i++) {
|
||||
pduHelper.writeHexOctet(poll_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(poll_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, 0x03);
|
||||
do_check_eq(tlv.value.commandQualifier, 0x00);
|
||||
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_DURATION, ctlvs);
|
||||
do_check_eq(tlv.value.timeUnit, STK_TIME_UNIT_SECOND);
|
||||
do_check_eq(tlv.value.timeInterval, 0x14);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Proactive Command: Display Text
|
||||
*/
|
||||
add_test(function test_read_septets_to_string() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
|
||||
let display_text_1 = [
|
||||
0xd0,
|
||||
0x28,
|
||||
0x81, 0x03, 0x01, 0x21, 0x80,
|
||||
0x82, 0x02, 0x81, 0x02,
|
||||
0x0d, 0x1d, 0x00, 0xd3, 0x30, 0x9b, 0xfc, 0x06, 0xc9, 0x5c, 0x30, 0x1a,
|
||||
0xa8, 0xe8, 0x02, 0x59, 0xc3, 0xec, 0x34, 0xb9, 0xac, 0x07, 0xc9, 0x60,
|
||||
0x2f, 0x58, 0xed, 0x15, 0x9b, 0xb9, 0x40,
|
||||
];
|
||||
|
||||
for (let i = 0; i < display_text_1.length; i++) {
|
||||
pduHelper.writeHexOctet(display_text_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(display_text_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_TEXT_STRING, ctlvs);
|
||||
do_check_eq(tlv.value.textString, "Saldo 2.04 E. Validez 20/05/13. ");
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Proactive Command: Set Up Event List.
|
||||
*/
|
||||
add_test(function test_stk_proactive_command_event_list() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
|
||||
let event_1 = [
|
||||
0xD0,
|
||||
0x0F,
|
||||
0x81, 0x03, 0x01, 0x05, 0x00,
|
||||
0x82, 0x02, 0x81, 0x82,
|
||||
0x99, 0x04, 0x00, 0x01, 0x02, 0x03];
|
||||
|
||||
for (let i = 0; i < event_1.length; i++) {
|
||||
pduHelper.writeHexOctet(event_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(event_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, 0x05);
|
||||
do_check_eq(tlv.value.commandQualifier, 0x00);
|
||||
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_EVENT_LIST, ctlvs);
|
||||
do_check_eq(Array.isArray(tlv.value.eventList), true);
|
||||
for (let i = 0; i < tlv.value.eventList.length; i++) {
|
||||
do_check_eq(tlv.value.eventList[i], i);
|
||||
}
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Proactive Command : Get Input
|
||||
*/
|
||||
add_test(function test_stk_proactive_command_get_input() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
let stkCmdHelper = worker.StkCommandParamsFactory;
|
||||
|
||||
let get_input_1 = [
|
||||
0xD0,
|
||||
0x1E,
|
||||
0x81, 0x03, 0x01, 0x23, 0x8F,
|
||||
0x82, 0x02, 0x81, 0x82,
|
||||
0x8D, 0x05, 0x04, 0x54, 0x65, 0x78, 0x74,
|
||||
0x91, 0x02, 0x01, 0x10,
|
||||
0x17, 0x08, 0x04, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6C, 0x74];
|
||||
|
||||
for (let i = 0; i < get_input_1.length; i++) {
|
||||
pduHelper.writeHexOctet(get_input_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(get_input_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, STK_CMD_GET_INPUT);
|
||||
|
||||
let input = stkCmdHelper.createParam(tlv.value, ctlvs);
|
||||
do_check_eq(input.text, "Text");
|
||||
do_check_eq(input.isAlphabet, true);
|
||||
do_check_eq(input.isUCS2, true);
|
||||
do_check_eq(input.hideInput, true);
|
||||
do_check_eq(input.isPacked, true);
|
||||
do_check_eq(input.isHelpAvailable, true);
|
||||
do_check_eq(input.minLength, 0x01);
|
||||
do_check_eq(input.maxLength, 0x10);
|
||||
do_check_eq(input.defaultText, "Default");
|
||||
|
||||
let get_input_2 = [
|
||||
0xD0,
|
||||
0x11,
|
||||
0x81, 0x03, 0x01, 0x23, 0x00,
|
||||
0x82, 0x02, 0x81, 0x82,
|
||||
0x8D, 0x00,
|
||||
0x91, 0x02, 0x01, 0x10,
|
||||
0x17, 0x00];
|
||||
|
||||
for (let i = 0; i < get_input_2.length; i++) {
|
||||
pduHelper.writeHexOctet(get_input_2[i]);
|
||||
}
|
||||
|
||||
berTlv = berHelper.decode(get_input_2.length);
|
||||
ctlvs = berTlv.value;
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, STK_CMD_GET_INPUT);
|
||||
|
||||
input = stkCmdHelper.createParam(tlv.value, ctlvs);
|
||||
do_check_eq(input.text, null);
|
||||
do_check_eq(input.minLength, 0x01);
|
||||
do_check_eq(input.maxLength, 0x10);
|
||||
do_check_eq(input.defaultText, null);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Proactive Command : More Time
|
||||
*/
|
||||
add_test(function test_stk_proactive_command_more_time() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
|
||||
let more_time_1 = [
|
||||
0xD0,
|
||||
0x09,
|
||||
0x81, 0x03, 0x01, 0x02, 0x00,
|
||||
0x82, 0x02, 0x81, 0x82];
|
||||
|
||||
for(let i = 0 ; i < more_time_1.length; i++) {
|
||||
pduHelper.writeHexOctet(more_time_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(more_time_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, STK_CMD_MORE_TIME);
|
||||
do_check_eq(tlv.value.commandQualifier, 0x00);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Proactive Command : Set Up Call
|
||||
*/
|
||||
add_test(function test_stk_proactive_command_set_up_call() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
let cmdFactory = worker.StkCommandParamsFactory;
|
||||
|
||||
let set_up_call_1 = [
|
||||
0xD0,
|
||||
0x29,
|
||||
0x81, 0x03, 0x01, 0x10, 0x04,
|
||||
0x82, 0x02, 0x81, 0x82,
|
||||
0x05, 0x0A, 0x44, 0x69, 0x73, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74,
|
||||
0x86, 0x09, 0x81, 0x10, 0x32, 0x04, 0x21, 0x43, 0x65, 0x1C, 0x2C,
|
||||
0x05, 0x07, 0x4D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65];
|
||||
|
||||
for (let i = 0 ; i < set_up_call_1.length; i++) {
|
||||
pduHelper.writeHexOctet(set_up_call_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(set_up_call_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, STK_CMD_SET_UP_CALL);
|
||||
|
||||
let setupCall = cmdFactory.createParam(tlv.value, ctlvs);
|
||||
do_check_eq(setupCall.address, "012340123456,1,2");
|
||||
do_check_eq(setupCall.confirmMessage, "Disconnect");
|
||||
do_check_eq(setupCall.callMessage, "Message");
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Proactive Command : Timer Management
|
||||
*/
|
||||
add_test(function test_stk_proactive_command_timer_management() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
|
||||
// Timer Management - Start
|
||||
let timer_management_1 = [
|
||||
0xD0,
|
||||
0x11,
|
||||
0x81, 0x03, 0x01, 0x27, 0x00,
|
||||
0x82, 0x02, 0x81, 0x82,
|
||||
0xA4, 0x01, 0x01,
|
||||
0xA5, 0x03, 0x10, 0x20, 0x30
|
||||
];
|
||||
|
||||
for(let i = 0 ; i < timer_management_1.length; i++) {
|
||||
pduHelper.writeHexOctet(timer_management_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(timer_management_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, STK_CMD_TIMER_MANAGEMENT);
|
||||
do_check_eq(tlv.value.commandQualifier, STK_TIMER_START);
|
||||
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER, ctlvs);
|
||||
do_check_eq(tlv.value.timerId, 0x01);
|
||||
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_TIMER_VALUE, ctlvs);
|
||||
do_check_eq(tlv.value.timerValue, (0x01 * 60 * 60) + (0x02 * 60) + 0x03);
|
||||
|
||||
// Timer Management - Deactivate
|
||||
let timer_management_2 = [
|
||||
0xD0,
|
||||
0x0C,
|
||||
0x81, 0x03, 0x01, 0x27, 0x01,
|
||||
0x82, 0x02, 0x81, 0x82,
|
||||
0xA4, 0x01, 0x01
|
||||
];
|
||||
|
||||
for(let i = 0 ; i < timer_management_2.length; i++) {
|
||||
pduHelper.writeHexOctet(timer_management_2[i]);
|
||||
}
|
||||
|
||||
berTlv = berHelper.decode(timer_management_2.length);
|
||||
ctlvs = berTlv.value;
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, STK_CMD_TIMER_MANAGEMENT);
|
||||
do_check_eq(tlv.value.commandQualifier, STK_TIMER_DEACTIVATE);
|
||||
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER, ctlvs);
|
||||
do_check_eq(tlv.value.timerId, 0x01);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Proactive Command : Provide Local Information
|
||||
*/
|
||||
add_test(function test_stk_proactive_command_provide_local_information() {
|
||||
let worker = newUint8Worker();
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
let berHelper = worker.BerTlvHelper;
|
||||
let stkHelper = worker.StkProactiveCmdHelper;
|
||||
|
||||
// Verify IMEI
|
||||
let local_info_1 = [
|
||||
0xD0,
|
||||
0x09,
|
||||
0x81, 0x03, 0x01, 0x26, 0x01,
|
||||
0x82, 0x02, 0x81, 0x82];
|
||||
|
||||
for (let i = 0; i < local_info_1.length; i++) {
|
||||
pduHelper.writeHexOctet(local_info_1[i]);
|
||||
}
|
||||
|
||||
let berTlv = berHelper.decode(local_info_1.length);
|
||||
let ctlvs = berTlv.value;
|
||||
let tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, STK_CMD_PROVIDE_LOCAL_INFO);
|
||||
do_check_eq(tlv.value.commandQualifier, STK_LOCAL_INFO_IMEI);
|
||||
|
||||
// Verify Date and Time Zone
|
||||
let local_info_2 = [
|
||||
0xD0,
|
||||
0x09,
|
||||
0x81, 0x03, 0x01, 0x26, 0x03,
|
||||
0x82, 0x02, 0x81, 0x82];
|
||||
|
||||
for (let i = 0; i < local_info_2.length; i++) {
|
||||
pduHelper.writeHexOctet(local_info_2[i]);
|
||||
}
|
||||
|
||||
berTlv = berHelper.decode(local_info_2.length);
|
||||
ctlvs = berTlv.value;
|
||||
tlv = stkHelper.searchForTag(COMPREHENSIONTLV_TAG_COMMAND_DETAILS, ctlvs);
|
||||
do_check_eq(tlv.value.commandNumber, 0x01);
|
||||
do_check_eq(tlv.value.typeOfCommand, STK_CMD_PROVIDE_LOCAL_INFO);
|
||||
do_check_eq(tlv.value.commandQualifier, STK_LOCAL_INFO_DATE_TIME_ZONE);
|
||||
|
||||
run_next_test();
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Event Download Command : Location Status
|
||||
*/
|
||||
add_test(function test_stk_event_download_location_status() {
|
||||
let worker = newUint8SupportOutgoingIndexWorker();
|
||||
let buf = worker.Buf;
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
|
||||
buf.sendParcel = function () {
|
||||
// Type
|
||||
do_check_eq(this.readUint32(), REQUEST_STK_SEND_ENVELOPE_COMMAND);
|
||||
|
||||
// Token : we don't care
|
||||
this.readUint32();
|
||||
|
||||
// Data Size, 42 = 2 * (2 + TLV_DEVICE_ID_SIZE(4) +
|
||||
// TLV_EVENT_LIST_SIZE(3) +
|
||||
// TLV_LOCATION_STATUS_SIZE(3) +
|
||||
// TLV_LOCATION_INFO_GSM_SIZE(9))
|
||||
do_check_eq(this.readUint32(), 42);
|
||||
|
||||
// BER tag
|
||||
do_check_eq(pduHelper.readHexOctet(), BER_EVENT_DOWNLOAD_TAG);
|
||||
|
||||
// BER length, 19 = TLV_DEVICE_ID_SIZE(4) +
|
||||
// TLV_EVENT_LIST_SIZE(3) +
|
||||
// TLV_LOCATION_STATUS_SIZE(3) +
|
||||
// TLV_LOCATION_INFO_GSM_SIZE(9)
|
||||
do_check_eq(pduHelper.readHexOctet(), 19);
|
||||
|
||||
// Device Identifies, Type-Length-Value(Source ID-Destination ID)
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_DEVICE_ID |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 2);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_DEVICE_ID_ME);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_DEVICE_ID_SIM);
|
||||
|
||||
// Event List, Type-Length-Value
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_EVENT_LIST |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 1);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_EVENT_TYPE_LOCATION_STATUS);
|
||||
|
||||
// Location Status, Type-Length-Value
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_LOCATION_STATUS |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 1);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_SERVICE_STATE_NORMAL);
|
||||
|
||||
// Location Info, Type-Length-Value
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_LOCATION_INFO |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 7);
|
||||
|
||||
do_check_eq(pduHelper.readHexOctet(), 0x21); // MCC + MNC
|
||||
do_check_eq(pduHelper.readHexOctet(), 0x63);
|
||||
do_check_eq(pduHelper.readHexOctet(), 0x54);
|
||||
do_check_eq(pduHelper.readHexOctet(), 0); // LAC
|
||||
do_check_eq(pduHelper.readHexOctet(), 0);
|
||||
do_check_eq(pduHelper.readHexOctet(), 0); // Cell ID
|
||||
do_check_eq(pduHelper.readHexOctet(), 0);
|
||||
|
||||
run_next_test();
|
||||
};
|
||||
|
||||
let event = {
|
||||
eventType: STK_EVENT_TYPE_LOCATION_STATUS,
|
||||
locationStatus: STK_SERVICE_STATE_NORMAL,
|
||||
locationInfo: {
|
||||
mcc: "123",
|
||||
mnc: "456",
|
||||
gsmLocationAreaCode: 0,
|
||||
gsmCellId: 0
|
||||
}
|
||||
};
|
||||
worker.RIL.sendStkEventDownload({
|
||||
event: event
|
||||
});
|
||||
});
|
||||
|
||||
// Test Event Download commands.
|
||||
|
||||
/**
|
||||
* Verify Event Download Command : Language Selection
|
||||
*/
|
||||
add_test(function test_stk_event_download_language_selection() {
|
||||
let worker = newUint8SupportOutgoingIndexWorker();
|
||||
let buf = worker.Buf;
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
|
||||
buf.sendParcel = function () {
|
||||
// Type
|
||||
do_check_eq(this.readUint32(), REQUEST_STK_SEND_ENVELOPE_COMMAND);
|
||||
|
||||
// Token : we don't care
|
||||
this.readUint32();
|
||||
|
||||
// Data Size, 26 = 2 * (2 + TLV_DEVICE_ID_SIZE(4) +
|
||||
// TLV_EVENT_LIST_SIZE(3) +
|
||||
// TLV_LANGUAGE(4))
|
||||
do_check_eq(this.readUint32(), 26);
|
||||
|
||||
// BER tag
|
||||
do_check_eq(pduHelper.readHexOctet(), BER_EVENT_DOWNLOAD_TAG);
|
||||
|
||||
// BER length, 19 = TLV_DEVICE_ID_SIZE(4) +
|
||||
// TLV_EVENT_LIST_SIZE(3) +
|
||||
// TLV_LANGUAGE(4)
|
||||
do_check_eq(pduHelper.readHexOctet(), 11);
|
||||
|
||||
// Device Identifies, Type-Length-Value(Source ID-Destination ID)
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_DEVICE_ID |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 2);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_DEVICE_ID_ME);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_DEVICE_ID_SIM);
|
||||
|
||||
// Event List, Type-Length-Value
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_EVENT_LIST |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 1);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_EVENT_TYPE_LANGUAGE_SELECTION);
|
||||
|
||||
// Language, Type-Length-Value
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_LANGUAGE);
|
||||
do_check_eq(pduHelper.readHexOctet(), 2);
|
||||
do_check_eq(pduHelper.read8BitUnpackedToString(2), "zh");
|
||||
|
||||
run_next_test();
|
||||
};
|
||||
|
||||
let event = {
|
||||
eventType: STK_EVENT_TYPE_LANGUAGE_SELECTION,
|
||||
language: "zh"
|
||||
};
|
||||
worker.RIL.sendStkEventDownload({
|
||||
event: event
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Verify Event Download Command : Idle Screen Available
|
||||
*/
|
||||
add_test(function test_stk_event_download_idle_screen_available() {
|
||||
let worker = newUint8SupportOutgoingIndexWorker();
|
||||
let buf = worker.Buf;
|
||||
let pduHelper = worker.GsmPDUHelper;
|
||||
|
||||
buf.sendParcel = function () {
|
||||
// Type
|
||||
do_check_eq(this.readUint32(), REQUEST_STK_SEND_ENVELOPE_COMMAND);
|
||||
|
||||
// Token : we don't care
|
||||
this.readUint32();
|
||||
|
||||
// Data Size, 18 = 2 * (2 + TLV_DEVICE_ID_SIZE(4) + TLV_EVENT_LIST_SIZE(3))
|
||||
do_check_eq(this.readUint32(), 18);
|
||||
|
||||
// BER tag
|
||||
do_check_eq(pduHelper.readHexOctet(), BER_EVENT_DOWNLOAD_TAG);
|
||||
|
||||
// BER length, 7 = TLV_DEVICE_ID_SIZE(4) + TLV_EVENT_LIST_SIZE(3)
|
||||
do_check_eq(pduHelper.readHexOctet(), 7);
|
||||
|
||||
// Device Identities, Type-Length-Value(Source ID-Destination ID)
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_DEVICE_ID |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 2);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_DEVICE_ID_DISPLAY);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_DEVICE_ID_SIM);
|
||||
|
||||
// Event List, Type-Length-Value
|
||||
do_check_eq(pduHelper.readHexOctet(), COMPREHENSIONTLV_TAG_EVENT_LIST |
|
||||
COMPREHENSIONTLV_FLAG_CR);
|
||||
do_check_eq(pduHelper.readHexOctet(), 1);
|
||||
do_check_eq(pduHelper.readHexOctet(), STK_EVENT_TYPE_IDLE_SCREEN_AVAILABLE);
|
||||
|
||||
run_next_test();
|
||||
};
|
||||
|
||||
let event = {
|
||||
eventType: STK_EVENT_TYPE_IDLE_SCREEN_AVAILABLE
|
||||
};
|
||||
worker.RIL.sendStkEventDownload({
|
||||
event: event
|
||||
});
|
||||
});
|
|
@ -16,3 +16,4 @@ tail =
|
|||
[test_ril_worker_ssn.js]
|
||||
[test_ril_worker_voiceprivacy.js]
|
||||
[test_ril_worker_ecm.js]
|
||||
[test_ril_worker_stk.js]
|
||||
|
|
|
@ -110,17 +110,24 @@ nsEventStatus GestureEventListener::HandleInputEvent(const InputData& aEvent)
|
|||
HandleTapCancel(event);
|
||||
}
|
||||
|
||||
bool foundAlreadyExistingTouch = false;
|
||||
size_t eventTouchesMatched = 0;
|
||||
for (size_t i = 0; i < mTouches.Length(); i++) {
|
||||
bool isTouchRemoved = true;
|
||||
for (size_t j = 0; j < event.mTouches.Length(); j++) {
|
||||
if (mTouches[i].mIdentifier == event.mTouches[j].mIdentifier) {
|
||||
foundAlreadyExistingTouch = true;
|
||||
eventTouchesMatched++;
|
||||
isTouchRemoved = false;
|
||||
mTouches[i] = event.mTouches[j];
|
||||
}
|
||||
}
|
||||
if (isTouchRemoved) {
|
||||
// this touch point was lifted, so remove it from our list
|
||||
mTouches.RemoveElementAt(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
NS_WARN_IF_FALSE(foundAlreadyExistingTouch, "Touch moved, but not in list");
|
||||
NS_WARN_IF_FALSE(eventTouchesMatched == event.mTouches.Length(), "Touch moved, but not in list");
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ AddonLogger.prototype = {
|
|||
Ci.nsIScriptError.errorFlag, "component javascript");
|
||||
Services.console.logMessage(consoleMessage);
|
||||
|
||||
if (gDebugLogEnabled)
|
||||
// Always dump errors, in case the Console Service isn't listening yet
|
||||
dump("*** " + message + "\n");
|
||||
|
||||
try {
|
||||
|
|
|
@ -38,7 +38,7 @@ const DEFAULT_SAVE_DELAY_MS = 50;
|
|||
* that marks the data as needing to be saved, and when the DeferredSave
|
||||
* begins writing the data to disk. Default 50 milliseconds.
|
||||
*/
|
||||
function DeferredSave(aPath, aDataProvider, aDelay) {
|
||||
this.DeferredSave = function (aPath, aDataProvider, aDelay) {
|
||||
// Set up loggers for this instance of DeferredSave
|
||||
let leafName = OS.Path.basename(aPath);
|
||||
Cu.import("resource://gre/modules/AddonLogging.jsm");
|
||||
|
@ -87,7 +87,7 @@ function DeferredSave(aPath, aDataProvider, aDelay) {
|
|||
this._delay = DEFAULT_SAVE_DELAY_MS;
|
||||
}
|
||||
|
||||
DeferredSave.prototype = {
|
||||
this.DeferredSave.prototype = {
|
||||
get dirty() {
|
||||
return this._pending || this.writeInProgress;
|
||||
},
|
||||
|
|
|
@ -192,9 +192,10 @@ var gLazyObjectsLoaded = false;
|
|||
|
||||
function loadLazyObjects() {
|
||||
let scope = {};
|
||||
scope.AddonInternal = AddonInternal;
|
||||
scope.XPIProvider = XPIProvider;
|
||||
Services.scriptloader.loadSubScript("resource://gre/modules/XPIProviderUtils.js",
|
||||
scope);
|
||||
scope.XPIProvider = XPIProvider;
|
||||
|
||||
for (let name of LAZY_OBJECTS) {
|
||||
delete gGlobalScope[name];
|
||||
|
@ -2803,8 +2804,10 @@ var XPIProvider = {
|
|||
newAddon = loadManifestFromFile(file);
|
||||
}
|
||||
// The add-on in the manifest should match the add-on ID.
|
||||
if (newAddon.id != aId)
|
||||
throw new Error("Incorrect id in install manifest");
|
||||
if (newAddon.id != aId) {
|
||||
throw new Error("Invalid addon ID: expected addon ID " + aId +
|
||||
", found " + newAddon.id + " in manifest");
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
WARN("Add-on is invalid", e);
|
||||
|
@ -4246,7 +4249,6 @@ var XPIProvider = {
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
function getHashStringForCrypto(aCrypto) {
|
||||
// return the two-digit hexadecimal code for a byte
|
||||
function toHexString(charCode)
|
||||
|
|
|
@ -12,6 +12,8 @@ const Cu = Components.utils;
|
|||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "AddonManager",
|
||||
"resource://gre/modules/AddonManager.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "AddonRepository",
|
||||
"resource://gre/modules/AddonRepository.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
|
||||
|
|
|
@ -163,6 +163,10 @@ GonkDisplayICS::GetHWCDevice()
|
|||
bool
|
||||
GonkDisplayICS::SwapBuffers(EGLDisplay dpy, EGLSurface sur)
|
||||
{
|
||||
// Should be called when composition rendering is complete for a frame.
|
||||
// Only HWC v1.0 needs this call. ICS gonk always needs the call.
|
||||
mFBSurface->compositionComplete();
|
||||
|
||||
if (!mHwc)
|
||||
return eglSwapBuffers(dpy, sur);
|
||||
|
||||
|
|
|
@ -166,6 +166,13 @@ GonkDisplayJB::SwapBuffers(EGLDisplay dpy, EGLSurface sur)
|
|||
StopBootAnimation();
|
||||
mBootAnimBuffer = nullptr;
|
||||
|
||||
// Should be called when composition rendering is complete for a frame.
|
||||
// Only HWC v1.0 needs this call.
|
||||
// HWC > v1.0 case, do not call compositionComplete().
|
||||
// mFBDevice is present only when HWC is v1.0.
|
||||
if (mFBDevice && mFBDevice->compositionComplete) {
|
||||
mFBDevice->compositionComplete(mFBDevice);
|
||||
}
|
||||
mList->outbuf = nullptr;
|
||||
mList->outbufAcquireFenceFd = -1;
|
||||
eglSwapBuffers(dpy, sur);
|
||||
|
|
Загрузка…
Ссылка в новой задаче