Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
50655 views
1
var simpleEvents= require('nodeunit').testCase;
2
3
var file = '../../lib/eventemitter2';
4
5
module.exports = simpleEvents({
6
7
setUp: function (callback) {
8
var EventEmitter2;
9
10
if(typeof require !== 'undefined') {
11
EventEmitter2 = require(file).EventEmitter2;
12
}
13
else {
14
EventEmitter2 = window.EventEmitter2;
15
}
16
17
this.emitter = new EventEmitter2;
18
callback();
19
},
20
21
tearDown: function (callback) {
22
//clean up?
23
callback();
24
},
25
26
'removeListener1. adding 1, removing 1' : function (test) {
27
var emitter = this.emitter,
28
type = 'remove',
29
listeners;
30
31
var f = function f() {
32
test.ok(true, 'event was raised');
33
};
34
35
emitter.on(type, f);
36
listeners = emitter.listeners(type);
37
test.equal(listeners.length, 1, 'should only have 1');
38
39
//remove
40
emitter.removeListener(type, f);
41
listeners = emitter.listeners(type);
42
test.equal(listeners.length, 0, 'should be 0');
43
44
test.expect(2);
45
test.done();
46
},
47
48
'removeListener2. adding 2, removing 1' : function (test) {
49
var emitter = this.emitter,
50
type = 'remove',
51
listeners;
52
53
var f = function f() {
54
test.ok(true, 'event was raised');
55
};
56
57
emitter.on(type, f);
58
emitter.on(type, f);
59
listeners = emitter.listeners(type);
60
test.equal(listeners.length, 2, 'should only have 2');
61
62
//remove
63
emitter.removeListener(type, f);
64
listeners = emitter.listeners(type);
65
test.equal(listeners.length, 1, 'should be 1');
66
67
test.expect(2);
68
test.done();
69
},
70
71
'removeListener3. adding 3, removing 1' : function (test) {
72
var emitter = this.emitter,
73
type = 'remove',
74
listeners;
75
76
var f = function f() {
77
test.ok(true, 'event was raised');
78
};
79
80
emitter.on(type, f);
81
emitter.on(type, f);
82
emitter.on(type, f);
83
listeners = emitter.listeners(type);
84
test.equal(listeners.length, 3, 'should only have 3');
85
86
//remove
87
emitter.removeListener(type, f);
88
listeners = emitter.listeners(type);
89
test.equal(listeners.length, 2, 'should be 2');
90
91
test.expect(2);
92
test.done();
93
},
94
95
'removeListener4. should error if we don\'t pass in a function' : function (test) {
96
var emitter = this.emitter,
97
type = 'remove',
98
listeners;
99
100
var f = function f() {
101
test.ok(true, 'event was raised');
102
};
103
104
emitter.on(type, f);
105
listeners = emitter.listeners(type);
106
test.equal(listeners.length, 1, 'should only have 1');
107
108
//remove
109
test.throws(function () {emitter.removeListener(type, type)}, Error, 'should throw an Error');
110
listeners = emitter.listeners(type);
111
test.equal(listeners.length, 1, 'should be 1');
112
113
test.expect(3);
114
test.done();
115
},
116
117
'removeListener5. removing a different function, should not remove' : function (test) {
118
var emitter = this.emitter,
119
type = 'remove',
120
listeners;
121
122
var f = function f() {
123
test.ok(true, 'event was raised');
124
};
125
var g = function g() {
126
test.ok(true, 'event was raised');
127
};
128
129
emitter.on(type, f);
130
listeners = emitter.listeners(type);
131
test.equal(listeners.length, 1, 'should only have 1');
132
133
//remove
134
emitter.removeListener(type, g);
135
listeners = emitter.listeners(type);
136
test.equal(listeners.length, 1, 'should be 1');
137
138
test.expect(2);
139
test.done();
140
},
141
142
'removeListener6. removing all functions' : function (test) {
143
var emitter = this.emitter,
144
type = 'remove',
145
listeners;
146
147
var f = function f() {
148
test.ok(true, 'event was raised');
149
};
150
for (var i = 0; i < 10; i++) {
151
emitter.on(type, f);
152
}
153
listeners = emitter.listeners(type);
154
test.equal(listeners.length, 10, 'should only have 10');
155
156
emitter.removeListener(type, f);
157
listeners = emitter.listeners(type);
158
test.equal(listeners.length, 9, 'should be 9');
159
emitter.removeAllListeners(type);
160
listeners = emitter.listeners(type);
161
test.equal(listeners.length, 0, 'should be 0');
162
163
test.expect(3);
164
test.done();
165
},
166
167
'removeListener7. removing different event, should not remove' : function (test) {
168
var emitter = this.emitter,
169
type = 'remove',
170
listeners;
171
172
var f = function f() {
173
test.ok(true, 'event was raised');
174
};
175
176
for (var i = 0; i < 10; i++) {
177
emitter.on(type, f);
178
}
179
listeners = emitter.listeners(type);
180
test.equal(listeners.length, 10, 'should only have 10');
181
182
emitter.removeListener(type+type, f);
183
listeners = emitter.listeners(type);
184
test.equal(listeners.length, 10, 'should be 10');
185
186
emitter.removeAllListeners(type+type);
187
listeners = emitter.listeners(type);
188
test.equal(listeners.length, 10, 'should be 10');
189
190
emitter.removeAllListeners(type);
191
listeners = emitter.listeners(type);
192
test.equal(listeners.length, 0, 'should be 0');
193
194
test.expect(4);
195
test.done();
196
},
197
198
199
});
200
201