michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: MARIONETTE_TIMEOUT = 60000; michael@0: MARIONETTE_HEAD_JS = 'head.js'; michael@0: michael@0: function muxModem(id) { michael@0: let deferred = Promise.defer(); michael@0: michael@0: emulator.run("mux modem " + id, function() { michael@0: deferred.resolve(); michael@0: }); michael@0: michael@0: return deferred.promise; michael@0: } michael@0: michael@0: function testOutgoingCallForServiceId(number, serviceId) { michael@0: let outCall; michael@0: let outInfo = gOutCallStrPool(number); michael@0: michael@0: return Promise.resolve() michael@0: .then(() => gDial(number, serviceId)) michael@0: .then(call => { michael@0: outCall = call; michael@0: is(outCall.serviceId, serviceId); michael@0: }) michael@0: .then(() => gCheckAll(outCall, [outCall], '', [], [outInfo.ringing])) michael@0: .then(() => gRemoteAnswer(outCall)) michael@0: .then(() => gCheckAll(outCall, [outCall], '', [], [outInfo.active])) michael@0: .then(() => gRemoteHangUp(outCall)) michael@0: .then(() => gCheckAll(null, [], '', [], [])); michael@0: } michael@0: michael@0: function testIncomingCallForServiceId(number, serviceId) { michael@0: let inCall; michael@0: let inInfo = gInCallStrPool(number); michael@0: michael@0: return Promise.resolve() michael@0: .then(() => gRemoteDial(number)) michael@0: .then(call => { michael@0: inCall = call; michael@0: is(inCall.serviceId, serviceId); michael@0: }) michael@0: .then(() => gCheckAll(null, [inCall], '', [], [inInfo.incoming])) michael@0: .then(() => gAnswer(inCall)) michael@0: .then(() => gCheckAll(inCall, [inCall], '', [], [inInfo.active])) michael@0: .then(() => gRemoteHangUp(inCall)) michael@0: .then(() => gCheckAll(null, [], '', [], [])); michael@0: } michael@0: michael@0: function testOutgoingCall() { michael@0: log("= testOutgoingCall ="); michael@0: michael@0: return Promise.resolve() michael@0: .then(() => muxModem(0)) michael@0: .then(() => testOutgoingCallForServiceId("0912345000", 0)) michael@0: .then(() => muxModem(1)) michael@0: .then(() => testOutgoingCallForServiceId("0912345001", 1)) michael@0: .then(() => muxModem(0)); michael@0: } michael@0: michael@0: function testIncomingCall() { michael@0: log("= testIncomingCall ="); michael@0: michael@0: return Promise.resolve() michael@0: .then(() => muxModem(0)) michael@0: .then(() => testIncomingCallForServiceId("0912345000", 0)) michael@0: .then(() => muxModem(1)) michael@0: .then(() => testIncomingCallForServiceId("0912345001", 1)) michael@0: .then(() => muxModem(0)); michael@0: } michael@0: michael@0: startDSDSTest(function() { michael@0: testOutgoingCall() michael@0: .then(testIncomingCall) michael@0: .then(null, () => { michael@0: ok(false, "promise rejects during test."); michael@0: }) michael@0: .then(finish); michael@0: });