UNPKG

@tradle/otr

Version:

Off-the-Record Messaging Protocol

51 lines (44 loc) 1.24 kB
var assert = require('assert') var OTR = require('./').OTR var CONST = require('./lib/const') var keys = require('./test/spec/unit/data/keys.js') var Parse = require('./lib/parse') var CONST = require('./lib/const') var USER_ID = 1 var users = {} function getOther(user) { return user === 'userA' ? 'userB' : 'userA' } createUser('userA') createUser('userB') users.userA.sendQueryMsg() users.userA.on('status', function (status) { if (status === CONST.STATUS_AKE_SUCCESS) { createUser('userA') users.userA.sendMsg('i\'m back!') users.userA.sendMsg('are you still here?') } }) function createUser(name) { users[name] = makeUser(name) } function makeUser(name) { var other = getOther(name) var user = new OTR({ priv: keys[name] }) user.REQUIRE_ENCRYPTION = true user.USER_ID = USER_ID++ user.on('ui', function (msg) { // new instances are talking to each other console.log('chatting on new session') assert.equal(users[other].USER_ID, 3) assert.equal(users[name].USER_ID, 2) }) user.on('error', function(err) { if (err) throw err }) user.on('io', function (msg) { users[other].receiveMsg(msg) }) user.on('warn', function(warning) { console.warn(warning) }) return user }