Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80529 views
1
// Copyright Joyent, Inc. and other Node contributors.
2
//
3
// Permission is hereby granted, free of charge, to any person obtaining a
4
// copy of this software and associated documentation files (the
5
// "Software"), to deal in the Software without restriction, including
6
// without limitation the rights to use, copy, modify, merge, publish,
7
// distribute, sublicense, and/or sell copies of the Software, and to permit
8
// persons to whom the Software is furnished to do so, subject to the
9
// following conditions:
10
//
11
// The above copyright notice and this permission notice shall be included
12
// in all copies or substantial portions of the Software.
13
//
14
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
// USE OR OTHER DEALINGS IN THE SOFTWARE.
21
22
var assert = require('assert');
23
var events = require('../');
24
25
var e = new events.EventEmitter();
26
27
var events_new_listener_emited = [];
28
var listeners_new_listener_emited = [];
29
var times_hello_emited = 0;
30
31
// sanity check
32
assert.equal(e.addListener, e.on);
33
34
e.on('newListener', function(event, listener) {
35
console.log('newListener: ' + event);
36
events_new_listener_emited.push(event);
37
listeners_new_listener_emited.push(listener);
38
});
39
40
function hello(a, b) {
41
console.log('hello');
42
times_hello_emited += 1;
43
assert.equal('a', a);
44
assert.equal('b', b);
45
}
46
e.on('hello', hello);
47
48
var foo = function() {};
49
e.once('foo', foo);
50
51
console.log('start');
52
53
e.emit('hello', 'a', 'b');
54
55
56
// just make sure that this doesn't throw:
57
var f = new events.EventEmitter();
58
f.setMaxListeners(0);
59
60
assert.deepEqual(['hello', 'foo'], events_new_listener_emited);
61
assert.deepEqual([hello, foo], listeners_new_listener_emited);
62
assert.equal(1, times_hello_emited);
63
64
65