mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-31 22:25:30 +00:00
70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
MARIONETTE_TIMEOUT = 60000;
|
|
MARIONETTE_HEAD_JS = 'head.js';
|
|
|
|
function muxModem(id) {
|
|
return new Promise((resolve, reject) => {
|
|
emulator.runCmdWithCallback("mux modem " + id, resolve);
|
|
});
|
|
}
|
|
|
|
function testDtmfNoActiveCall() {
|
|
log("= testDtmfNoActiveCall =");
|
|
return new Promise((resolve, reject) => {
|
|
gSendTone('1', 5, 0).then(() => {
|
|
log("Unexpected success. We cannot send a DTMF without an active call");
|
|
reject();
|
|
}, resolve);
|
|
});
|
|
}
|
|
|
|
function testDtmfDsds() {
|
|
log("= testDtmfDsds =");
|
|
|
|
let outCall;
|
|
let number = "0912345000";
|
|
let serviceId = 0;
|
|
let otherServiceId = 1;
|
|
|
|
return Promise.resolve()
|
|
.then(() => muxModem(serviceId))
|
|
.then(() => gDial(number, serviceId))
|
|
.then(call => {
|
|
outCall = call;
|
|
is(outCall.serviceId, serviceId);
|
|
})
|
|
.then(() => gRemoteAnswer(outCall))
|
|
// Send tone with correct serviceId.
|
|
.then(() => gSendTone('1', 5, serviceId))
|
|
.then(() => emulator.runCmd("modem dtmf"))
|
|
.then(tone => {
|
|
is(tone, '1,OK', 'Sent tone is 1');
|
|
})
|
|
// Send tone without serviceId.
|
|
.then(() => gSendTone('2', 5))
|
|
.then(() => emulator.runCmd("modem dtmf"))
|
|
.then(tone => {
|
|
is(tone, '2,OK', 'Sent tone is 2');
|
|
})
|
|
// Send tone with incorrect serviceId.
|
|
.then(gSendTone('1', 5, otherServiceId).catch((e) => {
|
|
log('Expected Error ' + e);
|
|
gRemoteHangUp(outCall);
|
|
})
|
|
)
|
|
.catch((e) => {
|
|
log('Unexpected Error ' + e);
|
|
ok(false);
|
|
});
|
|
}
|
|
|
|
startDSDSTest(function() {
|
|
testDtmfNoActiveCall()
|
|
.then(testDtmfDsds)
|
|
.then(emulator.runCmd("modem dtmf reset"))
|
|
.catch(error => ok(false, "Promise reject: " + error))
|
|
.then(finish);
|
|
});
|