UNPKG

jingle

Version:

Generic Jingle via WebRTC session manager.

187 lines (147 loc) 3.96 kB
var test = require('tape'); var SessionManager = require('../'); var GenericSession = require('jingle-session'); require('./tiebreaking'); require('./processerrors'); require('./reject'); require('./session'); test('Test session-initiate', function (t) { t.plan(2); var jingle = new SessionManager({ jid: 'zuser@example.com' }); jingle.on('send', function (data) { t.same(data, { to: 'peer@example.com', id: '123', type: 'result' }); }); jingle.on('incoming', function (session) { t.ok(session); }); jingle.process({ to: 'zuser@example.com', from: 'peer@example.com', id: '123', type: 'set', jingle: { sid: 'sid123', action: 'session-initiate', contents: [ { application: {applicationType: 'test'}, transport: {transportType: 'test'} } ] } }); }); test('Test ending sessions for peer', function (t) { t.plan(2); var jingle = new SessionManager({ jid: 'zuser@example.com' }); var sess = new GenericSession({ sid: 'sid123', peer: 'peer@example.com' }); jingle.addSession(sess); var sess2 = new GenericSession({ sid: 'sid124', peer: 'peer@example.com' }); jingle.addSession(sess2); var sess3 = new GenericSession({ sid: 'sid125', peer: 'otherpeer@example.com' }); jingle.addSession(sess3); jingle.on('terminated', function (session) { t.equal(session.peerID, 'peer@example.com'); }); jingle.endPeerSessions('peer@example.com'); }); test('Test ending sessions for peer with no sessions', function (t) { var jingle = new SessionManager({ jid: 'zuser@example.com' }); jingle.endPeerSessions('peer@example.com'); t.notOk(jingle.peers['peer@example.com']); t.end(); }); test('Test ending sessions for all peers', function (t) { t.plan(3); var jingle = new SessionManager({ jid: 'zuser@example.com' }); var sess = new GenericSession({ sid: 'sid123', peer: 'peer@example.com' }); jingle.addSession(sess); var sess2 = new GenericSession({ sid: 'sid124', peer: 'peer@example.com' }); jingle.addSession(sess2); var sess3 = new GenericSession({ sid: 'sid125', peer: 'otherpeer@example.com' }); jingle.addSession(sess3); jingle.on('terminated', function (session) { t.ok(session); }); jingle.endAllSessions(); }); test('Prepare session', function (t) { t.plan(1); var jingle = new SessionManager({ jid: 'zuser@example.com', prepareSession: function (meta) { t.ok(meta); return new GenericSession(meta); } }); jingle.process({ to: 'zuser@example.com', from: 'peer@example.com', id: '123', type: 'set', jingle: { sid: 'sid123', action: 'session-initiate', contents: [ { application: {applicationType: 'test'}, transport: {transportType: 'test'} } ] } }); }); test('Add ICE server', function (t) { var jingle = new SessionManager({ jid: 'zuser@example.com', iceServers: [] }); jingle.addICEServer({ url: 'turn:example.com' }); t.same(jingle.iceServers, [ {url: 'turn:example.com'} ]); t.end(); }); test('Add ICE server as just a string', function (t) { var jingle = new SessionManager({ jid: 'zuser@example.com', iceServers: [] }); jingle.addICEServer('turn:example.com'); t.same(jingle.iceServers, [ {urls: 'turn:example.com'} ]); t.end(); });