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 handleConferenceAddError(callToAdd) { michael@0: log('Handle conference add error.'); michael@0: michael@0: let deferred = Promise.defer(); michael@0: michael@0: conference.onerror = function(evt) { michael@0: log('Receiving a conference error event.'); michael@0: conference.onerror = null; michael@0: michael@0: is(evt.name, 'addError', 'conference addError'); michael@0: michael@0: deferred.resolve(); michael@0: } michael@0: conference.add(callToAdd); michael@0: michael@0: return deferred.promise; michael@0: } michael@0: michael@0: function testConferenceAddError() { michael@0: log('= testConferenceAddError ='); michael@0: michael@0: let outCall, inCall, inCall2, inCall3, inCall4, inCall5; michael@0: let outNumber = "5555550101"; michael@0: let inNumber = "5555550201"; michael@0: let inNumber2 = "5555550202"; michael@0: let inNumber3 = "5555550203"; michael@0: let inNumber4 = "5555550204"; michael@0: let inNumber5 = "5555550205"; michael@0: let outInfo = gOutCallStrPool(outNumber); michael@0: let inInfo = gInCallStrPool(inNumber); michael@0: let inInfo2 = gInCallStrPool(inNumber2); michael@0: let inInfo3 = gInCallStrPool(inNumber3); michael@0: let inInfo4 = gInCallStrPool(inNumber4); michael@0: let inInfo5 = gInCallStrPool(inNumber5); michael@0: michael@0: return Promise.resolve() michael@0: .then(() => gSetupConferenceFiveCalls(outNumber, inNumber, inNumber2, michael@0: inNumber3, inNumber4)) michael@0: .then(calls => { michael@0: [outCall, inCall, inCall2, inCall3, inCall4] = calls; michael@0: }) michael@0: .then(() => gRemoteDial(inNumber5)) michael@0: .then(call => {inCall5 = call;}) michael@0: .then(() => gAnswer(inCall5, function() { michael@0: gCheckState(inCall5, [inCall5], 'held', michael@0: [outCall, inCall, inCall2, inCall3, inCall4]); michael@0: })) michael@0: .then(() => gCheckAll(inCall5, [inCall5], 'held', michael@0: [outCall, inCall, inCall2, inCall3, inCall4], michael@0: [outInfo.held, inInfo.held, inInfo2.held, michael@0: inInfo3.held, inInfo4.held, inInfo5.active])) michael@0: // Maximum number of conference participants is 5. michael@0: .then(() => handleConferenceAddError(inCall5)) michael@0: .then(() => gRemoteHangUpCalls([outCall, inCall, inCall2, inCall3, inCall4, michael@0: inCall5])); michael@0: } michael@0: michael@0: // Start the test michael@0: startTest(function() { michael@0: testConferenceAddError() michael@0: .then(null, error => { michael@0: ok(false, 'promise rejects during test.'); michael@0: }) michael@0: .then(finish); michael@0: });