Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
50661 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
'setMaxListener1. default behavior of 10 listeners.' : function (test) {
27
var emitter = this.emitter;
28
29
for (var i = 0; i < 10; i++) {
30
emitter.on('foobar', function () {
31
test.ok(true, 'event was raised');
32
});
33
}
34
35
var listeners = emitter.listeners('foobar');
36
test.equal(listeners.length, 10, 'should only have 10');
37
38
test.expect(1);
39
test.done();
40
},
41
42
'setMaxListener2. If we added more than 10, should not see them' : function (test) {
43
var emitter = this.emitter;
44
45
for (var i = 0; i < 10 ; i++) {
46
emitter.on('foobar2', function () {
47
test.ok(true, 'event was raised');
48
});
49
}
50
console.log('should see EE2 complaining:');
51
emitter.on('foobar2', function () {
52
test.ok(true, 'event was raised');
53
});
54
console.log('move on');
55
56
var listeners = emitter.listeners('foobar2');
57
test.equal(listeners.length, 11, 'should have 11');
58
test.ok(emitter._events['foobar2'].warned, 'should have been warned');
59
60
test.expect(2);
61
test.done();
62
},
63
64
'setMaxListener3. if we set maxListener to be greater before adding' : function (test) {
65
var emitter = this.emitter;
66
var type = 'foobar3';
67
68
// set to 20
69
emitter.setMaxListeners(20);
70
71
for (var i = 0; i < 15 ; i++) {
72
emitter.on(type, function () {
73
test.ok(true, 'event was raised');
74
});
75
}
76
77
// require('eyes').inspect(emitter._events);
78
79
var listeners = emitter.listeners(type);
80
test.equal(listeners.length, 15, 'should have 15');
81
test.ok(!(emitter._events[type].warned), 'should not have been set');
82
83
test.expect(2);
84
test.done();
85
},
86
87
'setMaxListener4. should be able to change it right at 10' : function (test) {
88
var emitter = this.emitter;
89
var type = 'foobar4';
90
91
for (var i = 0; i < 10 ; i++) {
92
emitter.on(type, function () {
93
test.ok(true, 'event was raised');
94
});
95
}
96
97
emitter.setMaxListeners(9001);
98
emitter.on(type, function () {
99
test.ok(true, 'event was raised');
100
});
101
102
// require('eyes').inspect(emitter._events);
103
104
var listeners = emitter.listeners(type);
105
test.equal(listeners.length, 11, 'should have 11');
106
test.ok(!(emitter._events[type].warned), 'should not have been set');
107
108
test.expect(2);
109
test.done();
110
},
111
112
'setMaxListener5. if we set maxListener to be 0 should add endlessly' : function (test) {
113
var emitter = this.emitter;
114
var type = 'foobar';
115
116
// set to 0
117
emitter.setMaxListeners(0);
118
119
for (var i = 0; i < 25 ; i++) {
120
emitter.on(type, function () {
121
test.ok(true, 'event was raised');
122
});
123
}
124
125
var listeners = emitter.listeners(type);
126
test.equal(listeners.length, 25, 'should have 25');
127
test.ok(!(emitter._events[type].warned), 'should not have been set');
128
129
test.expect(2);
130
test.done();
131
},
132
133
});
134
135