« index
Coverage for /home/spion/Documents/ircee/test/irc.js : 100%
66 lines |
66 run |
0 missing |
0 partial |
12 blocks |
12 blocks run |
0 blocks missing
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | var Stream = require('stream'), IRC = require('../index.js'), duplex = require('duplexer'), split = require('split'); function fakeSocket() { return {i:split(), o: split() }; } function client() { var irc = IRC(); irc.on('connect', function() { irc.use(require('../core')).login({ nick: 'test', user: 'test', name: 'test' }); }); return irc; } exports.ping_pong = function(t) { var irc = client(), s = fakeSocket(); t.expect(2); s.o.once('data', function(d) { t.ok(true, "nick and user data received"); process.nextTick(function() { s.o.once('data', function(d) { t.equals(d, 'pong :test', 'receive pong'); t.done(); }); s.i.emit('data', 'ping :test\n'); }); }); s.i.pipe(irc).pipe(s.o); s.i.emit('connect'); } exports.reconnect = function(t) { var irc = client(), s = fakeSocket(); t.expect(2); s.o.once('data', function() { t.ok(true, "connect"); s.i.end('432 :Error\n'); s.i.destroy(); var sx = fakeSocket(); sx.o.once('data', function(d) { t.ok(true, "reconnect success"); t.done(); }); sx.i.pipe(irc).pipe(sx.o); }); s.i.pipe(irc).pipe(s.o); s.i.emit('connect'); } exports.safe_events = function(t) { t.expect(1); var irc = client(), s = fakeSocket(); irc.once('irc-close', function() { t.ok(true, 'received safe close event'); t.done(); }); s.i.pipe(irc).pipe(s.o); s.i.emit('data', ':nick!user@host close #channel :some text\n'); } |