1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | (function (module, io, should) {
|
9 |
|
10 | module.exports = {
|
11 |
|
12 | 'add listeners': function () {
|
13 | var event = new io.EventEmitter
|
14 | , calls = 0;
|
15 |
|
16 | event.on('test', function (a, b) {
|
17 | ++calls;
|
18 | a.should().eql('a');
|
19 | b.should().eql('b');
|
20 | });
|
21 |
|
22 | event.emit('test', 'a', 'b');
|
23 | calls.should().eql(1);
|
24 | event.on.should().eql(event.addListener);
|
25 | },
|
26 |
|
27 | 'remove listener': function () {
|
28 | var event = new io.EventEmitter;
|
29 | function empty () { }
|
30 |
|
31 | event.on('test', empty);
|
32 | event.on('test:more', empty);
|
33 | event.removeAllListeners('test');
|
34 |
|
35 | event.listeners('test').should().eql([]);
|
36 | event.listeners('test:more').should().eql([empty]);
|
37 | },
|
38 |
|
39 | 'remove all listeners with no arguments': function () {
|
40 | var event = new io.EventEmitter;
|
41 | function empty () { }
|
42 |
|
43 | event.on('test', empty);
|
44 | event.on('test:more', empty);
|
45 | event.removeAllListeners();
|
46 |
|
47 |
|
48 | event.listeners('test').should().eql([empty]);
|
49 | event.listeners('test:more').should().eql([empty]);
|
50 | },
|
51 |
|
52 | 'remove listeners functions': function () {
|
53 | var event = new io.EventEmitter
|
54 | , calls = 0;
|
55 |
|
56 | function one () { ++calls }
|
57 | function two () { ++calls }
|
58 | function three () { ++calls }
|
59 |
|
60 | event.on('one', one);
|
61 | event.removeListener('one', one);
|
62 | event.listeners('one').should().eql([]);
|
63 |
|
64 | event.on('two', two);
|
65 | event.removeListener('two', one);
|
66 | event.listeners('two').should().eql([two]);
|
67 |
|
68 | event.on('three', three);
|
69 | event.on('three', two);
|
70 | event.removeListener('three', three);
|
71 | event.listeners('three').should().eql([two]);
|
72 | },
|
73 |
|
74 | 'number of arguments': function () {
|
75 | var event = new io.EventEmitter
|
76 | , number = [];
|
77 |
|
78 | event.on('test', function () {
|
79 | number.push(arguments.length);
|
80 | });
|
81 |
|
82 | event.emit('test');
|
83 | event.emit('test', null);
|
84 | event.emit('test', null, null);
|
85 | event.emit('test', null, null, null);
|
86 | event.emit('test', null, null, null, null);
|
87 | event.emit('test', null, null, null, null, null);
|
88 |
|
89 | [0, 1, 2, 3, 4, 5].should().eql(number);
|
90 | },
|
91 |
|
92 | 'once': function () {
|
93 | var event = new io.EventEmitter
|
94 | , calls = 0;
|
95 |
|
96 | event.once('test', function (a, b) {
|
97 | ++calls;
|
98 | });
|
99 |
|
100 | event.emit('test', 'a', 'b');
|
101 | event.emit('test', 'a', 'b');
|
102 | event.emit('test', 'a', 'b');
|
103 |
|
104 | function removed () {
|
105 | should().fail('not removed');
|
106 | };
|
107 |
|
108 | event.once('test:removed', removed);
|
109 | event.removeListener('test:removed', removed);
|
110 | event.emit('test:removed');
|
111 |
|
112 | calls.should().eql(1);
|
113 | }
|
114 |
|
115 | };
|
116 |
|
117 | })(
|
118 | 'undefined' == typeof module ? module = {} : module
|
119 | , 'undefined' == typeof io ? require('socket.io-client') : io
|
120 | , 'undefined' == typeof should || !should.fail ? require('should') : should
|
121 | );
|