gecko/dom/icc/tests/marionette/test_stk_refresh.js

66 lines
1.5 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
MARIONETTE_TIMEOUT = 30000;
SpecialPowers.addPermission("mobileconnection", true, document);
let icc = navigator.mozMobileConnection.icc;
ok(icc instanceof MozIccManager, "icc is instanceof " + icc.constructor);
function testRefresh(command, expect) {
log("STK CMD " + JSON.stringify(command));
is(command.typeOfCommand, icc.STK_CMD_REFRESH, expect.name);
is(command.commandQualifier, expect.commandQualifier, expect.name);
runNextTest();
}
let tests = [
{command: "d0108103010101820281829205013f002fe2",
func: testRefresh,
expect: {name: "refresh_cmd_1",
commandQualifier: 0x01}},
{command: "d009810301010482028182",
func: testRefresh,
expect: {name: "refresh_cmd_2",
commandQualifier: 0x04}}
];
let pendingEmulatorCmdCount = 0;
function sendStkPduToEmulator(command, func, expect) {
++pendingEmulatorCmdCount;
runEmulatorCmd(command, function (result) {
--pendingEmulatorCmdCount;
is(result[0], "OK");
});
icc.onstkcommand = function (evt) {
func(evt.command, expect);
}
}
function runNextTest() {
let test = tests.pop();
if (!test) {
cleanUp();
return;
}
let command = "stk pdu " + test.command;
sendStkPduToEmulator(command, test.func, test.expect)
}
function cleanUp() {
if (pendingEmulatorCmdCount) {
window.setTimeout(cleanUp, 100);
return;
}
SpecialPowers.removePermission("mobileconnection", document);
finish();
}
runNextTest();