gecko/dom/telephony/test/marionette/test_outgoing_answer_local_hangup.js
Ryan VanderMeulen 6e2138ee8a Backed out 6 changesets (bug 969218) for bustage. DONTBUILD
Backed out changeset 86356906ecf0 (bug 969218)
Backed out changeset 46fa16a18c27 (bug 969218)
Backed out changeset 75219ceb5175 (bug 969218)
Backed out changeset b9f4ba525eec (bug 969218)
Backed out changeset 323c1329614b (bug 969218)
Backed out changeset e0fa4e0eee36 (bug 969218)
2014-02-26 14:27:54 -05:00

95 lines
2.3 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';
let outgoingCall;
let outNumber = "5555551111";
function dial() {
log("Make an outgoing call.");
outgoingCall = telephony.dial(outNumber);
ok(outgoingCall);
is(outgoingCall.number, outNumber);
is(outgoingCall.state, "dialing");
is(outgoingCall, telephony.active);
is(telephony.calls.length, 1);
is(telephony.calls[0], outgoingCall);
outgoingCall.onalerting = function onalerting(event) {
log("Received 'alerting' call event.");
is(outgoingCall, event.call);
is(outgoingCall.state, "alerting");
emulator.run("gsm list", function(result) {
log("Call list is now: " + result);
is(result[0], "outbound to " + outNumber + " : ringing");
is(result[1], "OK");
answer();
});
};
}
function answer() {
log("Answering the outgoing call.");
// We get no "connecting" event when the remote party answers the call.
outgoingCall.onconnected = function onconnected(event) {
log("Received 'connected' call event.");
is(outgoingCall, event.call);
is(outgoingCall.state, "connected");
is(outgoingCall, telephony.active);
emulator.run("gsm list", function(result) {
log("Call list is now: " + result);
is(result[0], "outbound to " + outNumber + " : active");
is(result[1], "OK");
hangUp();
});
};
emulator.run("gsm accept " + outNumber);
}
function hangUp() {
log("Hanging up the outgoing call (local hang-up).");
let gotDisconnecting = false;
outgoingCall.ondisconnecting = function ondisconnectingOut(event) {
log("Received 'disconnecting' call event.");
is(outgoingCall, event.call);
is(outgoingCall.state, "disconnecting");
gotDisconnecting = true;
};
outgoingCall.ondisconnected = function ondisconnectedOut(event) {
log("Received 'disconnected' call event.");
is(outgoingCall, event.call);
is(outgoingCall.state, "disconnected");
ok(gotDisconnecting);
is(telephony.active, null);
is(telephony.calls.length, 0);
emulator.run("gsm list", function(result) {
log("Call list is now: " + result);
is(result[0], "OK");
cleanUp();
});
};
outgoingCall.hangUp();
}
function cleanUp() {
finish();
}
startTest(function() {
dial();
});