Socket
Socket
Sign inDemoInstall

eventemitter2

Package Overview
Dependencies
Maintainers
0
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eventemitter2 - npm Package Compare versions

Comparing version 0.1.3 to 0.2.5

index.js

17

package.json
{
"name": "eventemitter2",
"version": "0.1.3",
"description": "A Node.js event emitter implementation with namespaces, wildcards, TTL and browser support",
"version": "0.2.5",
"description": "A Node.js event emitter implementation with namespaces, wildcards, TTL and browser support.",
"keywords": ["event", "events", "emitter", "eventemitter"],
"author" : "hij1nx <hij1nx@me.com> http://twitter.com/hij1nx",
"contributers" : [
"author": "hij1nx <hij1nx@nodejitsu.com> http://twitter.com/hij1nx",
"contributers": [
"Charlie Robbins <charlie@nodejitsu.com> http://twitter.com/indexzero",
"Jameson Lee <jameson@nodejitsu.com> http://twitter.com/Jamesonjlee",
"Jeroen van Duffelen <jvduf@nodejitsu.com> http://www.twitter.com/jvduf",
"Fedor Indutny <fedor.indutny@gmail.com> http://www.twitter.com/indutny"

@@ -17,7 +18,7 @@ ],

}],
"devDependencies" : {
"nodeunit" : "*"
"devDependencies": {
"nodeunit": "*"
},
"engines": ["node"],
"main" : "./EventEmitter2.js"
}
"main": "./lib/eventemitter2.js"
}

@@ -23,3 +23,4 @@

delimiter: '/', // the delimiter used to segment namespaces, defaults to `.`.
maxListeners: 20 // the max number of listeners that can be assigned to an event, defaults to 10.
maxListeners: 20, // the max number of listeners that can be assigned to an event, defaults to 10.
caseSensitive: true // this is a big red button, don't press it... or else... I'm just warning you.
});

@@ -62,3 +63,3 @@ ```

```javascript
server.on('data', function(value) {
server.on('data', function(event, value) {
console.log('The event was raised!');

@@ -69,3 +70,3 @@ });

```javascript
server.on('data', function(value) {
server.on('data', function(event, value) {
console.log('This event will be listened to exactly four times.');

@@ -75,3 +76,22 @@ });

#### emitter.onAny(listener)
Adds a listener that will be fired when any event is emitted.
```javascript
server.onAny(function(event, value) {
console.log('This event will be listened to exactly four times.');
});
```
#### emitter.unAny(listener)
Removes the listener that will be fired when any event is emitted.
```javascript
server.unAny(function(event, value) {
console.log('This event will be listened to exactly four times.');
});
```
#### emitter.once(event, listener)

@@ -82,3 +102,3 @@

```javascript
server.once('get', function (value) {
server.once('get', function (event, value) {
console.log('Ah, we have our first value!');

@@ -93,3 +113,3 @@ });

```javascript
server.many('get', 4, function (value) {
server.many('get', 4, function (event, value) {
console.log('Ah, we have our first value!');

@@ -101,2 +121,3 @@ });

#### emitter.removeListener(event, listener)
#### emitter.un(event, listener)

@@ -106,3 +127,3 @@ Remove a listener from the listener array for the specified event. **Caution**: changes array indices in the listener array behind the listener.

```javascript
var callback = function(value) {
var callback = function(event, value) {
console.log('someone connected!');

@@ -131,3 +152,3 @@ };

```javascript
server.on('get', function (value) {
server.on('get', function(event, value) {
console.log('someone connected!');

@@ -138,6 +159,22 @@ });

#### emitter.listenersAny(event)
Returns an array of listeners that are listening for any event that is specified. This array can be manipulated, e.g. to remove listeners.
```javascript
server.onAny(function(event, value) {
console.log('someone connected!');
});
console.log(console.log(server.listenersAny()[0]); // [ [Function] ] // someone connected!
```
#### emitter.emit(event, [arg1], [arg2], [...])
Execute each of the listeners in order with the list of arguments.
Execute each of the listeners that may be listening for the specified event name in order with the list of arguments.
#### emitter.emitAll(event, [arg1], [arg2], [...])
Execute each of the listeners that may be listening for the specified event name in order with the list of arguments.
## Test coverage

@@ -151,3 +188,3 @@

Copyright (c) 2011 hij1nx <http://www.twitter.com/hij1nx>, indexzero <http://www.twitter.com/indexzero>, Fedor Indutny <http://www.twitter.com/indutny>
Copyright (c) 2011 hij1nx <http://www.twitter.com/hij1nx>

@@ -154,0 +191,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

@@ -0,9 +1,29 @@

var basicEvents = require('nodeunit').testCase;
this.basicEvents = {
'1. A listener should react to an event when the event is emitted.': function (test) {
/////helper///////
function setHelper (emitter, test, testName){
var eventNames = [
testName,
testName + '.*',
testName + '.ns1',
testName + '.ns1.ns2',
testName + '.ns2.*'
];
for (var i = 0; i < eventNames.length; i++) {
emitter.on(eventNames[i], function () {
test.ok(true, eventNames[i] + 'has fired');
});
}
return eventNames;
};
module.exports = basicEvents({
setUp: function (callback) {
var EventEmitter2;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}

@@ -14,4 +34,14 @@ else {

var emitter = new EventEmitter2;
this.emitter = new EventEmitter2();
callback();
},
tearDown: function (callback) {
//clean up?
callback();
},
'1. A listener should react to an event when the event is emitted.': function (test) {
var emitter = this.emitter;
emitter.on('test1', function () {

@@ -28,14 +58,4 @@ test.ok(true, 'The event was raised');

'2. A listener should react with a parameter to an event when the event is emitted.': function (test) {
var emitter = this.emitter;
var EventEmitter2;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test2', function (event, value1) {

@@ -54,13 +74,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test3', function (event, value1, value2, value3) {

@@ -82,13 +93,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test4', function (event, value1, value2, value3) {

@@ -112,13 +114,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test5.ns1', function () {

@@ -136,13 +129,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test6.ns1', function (event, value1) {

@@ -161,13 +145,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test7.ns1', function (event, value1, value2, value3) {

@@ -189,13 +164,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test8.*', function () {

@@ -213,13 +179,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test9.ns1', function () {

@@ -237,13 +194,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test10.*.foo', function () {

@@ -261,13 +209,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test11.ns1.foo', function () {

@@ -285,13 +224,4 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test12.ns1.ns2', function (event, value1, value2, value3) {

@@ -314,20 +244,11 @@ test.ok(true, 'The event was raised');

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('test13', function (event) {
console.log('1');
test.ok(true,'raised one');
});
emitter.on('test13', function (event) {
console.log('2');
});
test.ok(true,'raised two');
});

@@ -337,2 +258,3 @@ var listeners = emitter.listeners('test13');

test.ok(listeners.length === 2, 'The event `test13` should have 2 listeners');
test.expect(1);
test.done();

@@ -343,13 +265,4 @@

var EventEmitter2;
var emitter = this.emitter;
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2();
emitter.on('*', function () {

@@ -363,12 +276,162 @@ test.ok(true, 'The event was raised');

test.expect(3);
test.expect(1);
test.done();
},
'15. A listener should support complex total wild card.': function (test) {
var EventEmitter2;
var emitter = this.emitter;
emitter.on('*', function () {
test.ok(true, 'The event was raised');
});
emitter.emit('test15.*');
emitter.emit('test15.*.ns2')
emitter.emit('*');
test.expect(1);
test.done();
},
'16. Should be able to fire with wildcard start.' : function (test) {
var emitter = this.emitter;
emitter.on('test16', function () {
test.ok(true, 'The event test15 was raised');
});
emitter.on('test16.ns1', function () {
test.ok(true, 'The event test15.ns1 was raised');
});
emitter.emit('*');
emitter.emit('*.ns1');
test.expect(2);
test.done();
},
'17. Should fail if delimiter is used to start or end event name.' : function (test) {
var emitter = this.emitter;
//nothing should emit, so here is a all-listener
emitter.on('*.*.*', function () {
test.ok(false, 'an event was raised!');
});
emitter.on('*.*', function () {
test.ok(false, 'an event was raised!');
});
emitter.on('*', function () {
test.ok(false, 'an event was raised!');
});
try {
emitter.on('.ns4', function () {
test.ok(false, 'The event .ns4 was raised');
});
emitter.emit('.ns4');
}
catch(ex) {
test.ok(true, 'The event .ns4 was not raised');
}
try {
emitter.on('ns4.', function () {
test.ok(false, 'The event .ns4 was raised');
});
emitter.emit('ns4.');
}
catch(ex) {
test.ok(true, 'The event .ns4 was not raised');
}
try {
emitter.on('.ns4', function () {
test.ok(false, 'The event .ns4 was raised');
});
emitter.emit('ns4.');
}
catch(ex) {
test.ok(true, 'The event .ns4 was not raised');
}
try {
emitter.on('.ns4', function () {
test.ok(false, 'The event .ns4 was raised');
});
}
catch(ex) {
test.ok(true, 'The event .ns4 was not raised');
}
try {
emitter.emit('ns4.');
}
catch(ex) {
test.ok(true, 'The event .ns4 was not raised');
}
try {
emitter.emit('some..bad');
}
catch (ex) {
test.ok(true, 'error was raised');
}
try {
emitter.on('some..bad', function () {
test.ok(false, 'a bad event was raised');
});
}
catch (ex){
test.ok(true,'error was raised');
}
test.expect(7);
test.done();
},
'18. Should provide case sensitive option.' : function (test) {
var emitter = this.emitter;
emitter.on('test18', function () {
test.ok(false, 'The event test18 was raised');
});
emitter.on('test18.ns1', function () {
test.ok(false, 'The event test18.ns1 was raised');
});
emitter.emit('Test18');
test.expect(0);
test.done();
},
'19. one emit should be able to fire on multiple namespaces.' : function (test) {
var emitter = this.emitter;
emitter.on('test19.*', function () {
test.ok(true, 'test19.* was raised');
});
emitter.on('test19.foo', function () {
test.ok(true, 'test19.foo was raised');
});
emitter.emit('test19.foo');
test.expect(2);
test.done();
},
'20. should support case insensitivty (complex).' : function (test) {
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}

@@ -379,21 +442,305 @@ else {

var emitter = new EventEmitter2();
var emitter = new EventEmitter2({ caseSensitive : false});
emitter.on('*', function () {
test.ok(true, 'The event was raised');
emitter.on('test20', function () {
test.ok(true, 'The event test20 was raised');
});
emitter.on('test20.ns1', function () {
test.ok(true, 'The event test20.ns1 was raised');
});
emitter.on('*.ns1', function () {
test.ok(true, 'The event *.ns1 was raised');
});
emitter.on('*.ns2', function () {
test.ok(false, 'The event *.ns2 was raised');
});
emitter.emit('test14.*');
emitter.emit('test14.*.ns2')
emitter.emit('*');
emitter.emit('Test20');
emitter.emit('TeSt20.nS1');
test.expect(3);
test.done();
},
'21. should be able to removeListeners' : function (test) {
var emitter = this.emitter;
var someFun = function () {
test.ok(true, 'someFunc was raised');
}
emitter.on('test21', someFun);
emitter.on('test21.*', someFun);
emitter.on('test21.ns1', someFun);
emitter.on('test21.ns1.ns2', someFun);
emitter.emit('test21'); //1
emitter.emit('test21.ns2'); //1
emitter.emit('test21.ns1'); //2
var listeners = emitter.listeners('test21');
test.ok(listeners.length === 1, 'there should be 1 listener');
emitter.removeListener('test21', someFun);
listeners = emitter.listeners('test21');
test.ok(listeners.length === 0, 'there should be 0 listener (empty array)');
// should be able to add more listeners after removing
emitter.on('test21', someFun);
emitter.on('test21', someFun);
listeners = emitter.listeners('test21');
test.ok(listeners.length === 2, 'there should be 2 listeners'); //1
emitter.emit('test21'); //2
emitter.removeListener('test21', someFun); //this removes all listeners
listeners = emitter.listeners('test21');
test.ok(listeners.length === 1, 'there should be 1 listeners'); //1
emitter.removeListener('test21', someFun); //this removes all listeners
listeners = emitter.listeners('test21');
test.ok(listeners.length === 0, 'there should be 0 listeners'); //1
emitter.emit('test21'); //0
listeners = emitter.listeners('test21.ns1');
test.ok(listeners.length === 1, 'there should be 1 listeners'); //1
emitter.removeListener('test21.ns1', someFun); // remove one
listeners = emitter.listeners('test21.ns1');
test.ok(listeners.length === 0, 'there should be 0 listeners'); //1
listeners = emitter.listeners('test21.*');
test.ok(listeners.length === 1, 'there should be 1 listeners'); //1
emitter.removeListener('test21.*', someFun); // remove one
listeners = emitter.listeners('test21.*');
test.ok(listeners.length === 0, 'there should be 0 listeners'); //1
test.expect(15);
test.done();
},
'15. Should be able to fire with wildcard start.' : function (test) {
var EventEmitter2;
'22. should be able to remove all listeners' : function (test) {
var emitter = this.emitter,
addedEvents = setHelper(emitter, test, 'test22');
emitter.emit('test22'); //1
var listeners = emitter.listeners('test22');
test.ok(listeners.length === 1, 'there should be 1 listener'); //1
emitter.removeAllListeners('test22');
listeners = emitter.listeners('test22');
test.ok(listeners.length === 0, 'there should be 0 listener'); //1
emitter.removeAllListeners('test22.ns1');
listeners = emitter.listeners('test22.ns1');
test.ok(listeners.length === 0, 'there should be 0 listener'); //1
emitter.removeAllListeners(); //removing all possible
for (var i = 0; i < addedEvents.length; i++) {
listeners = emitter.listeners(addedEvents[i]);
test.ok(listeners.length === 0, 'there shouldn\'t be at a listener');
}
test.expect(addedEvents.length + 4 );
test.done();
},
'23. should be able to listen on any event' : function (test) {
var emitter = this.emitter,
addedEvents = setHelper(emitter, test, 'test23'),
someData = {
key : 'hello',
bar : 'foo',
'baz' : 5
};
fn = function (tag, data) {
if (tag !== 'addListener') {
test.equals(tag, 'test23.ns5.ns5', 'emitted tag, and raised tag should match');
test.equals(someData,data, 'data should be passed up');
test.ok(true, 'something happened somewhere');
}
};
emitter.onAny(fn);
emitter.emit('test23.ns5.ns5', someData); //3
emitter.unAny(fn);
emitter.emit('test21'); //0
emitter.onAny(fn);
emitter.onAny(fn);
emitter.emit('test23.ns5.ns5', someData); //6
emitter.unAny();
test.expect(9);
test.done();
},
'24. should be able to fire once and done' : function (test) {
var emitter = this.emitter,
addedEvents = setHelper(emitter,test,'test24');
emitter.once('test24once', function () {
test.ok(true, 'fired once');
});
emitter.emit('test24');
emitter.emit('test24once');
emitter.emit('test24once');
test.expect(2);
test.done();
},
'25. should be able to fire many and done' : function (test) {
var emitter = this.emitter,
addedEvents = setHelper(emitter,test,'test25');
emitter.many('test25many', 5, function () {
test.ok(true, 'test25many');
});
emitter.once('test25once', function () {
test.ok(true, 'test25once');
});
emitter.emit('test25'); //1
for (var i= 0; i < 6; i++) {
emitter.emit('test25many'); //5
emitter.emit('test25once'); //1
}
// these should never fire
emitter.emit('test25many'); //0
emitter.emit('test25once'); //0
// re-register the many
emitter.once('test25many', function () {
test.ok(true, 'test25many-once pewpew');
});
// should only fire once
emitter.emit('test25many'); //1
emitter.emit('test25many'); //0
emitter.emit('test25many'); //0
emitter.many('test25once', 3, function () {
test.ok(true, 'test25once pewpew');
});
emitter.emit('test25once'); //1
test.expect(9);
test.done();
},
'26. should be able to list all onAny listeners' : function (test) {
var emitter = this.emitter,
addedEvents = setHelper(emitter, test, 'test26'),
fn = function (tag) {
if (tag !== 'addListener') {
test.equals(tag, 'test26.ns5.ns5', 'emitted tag, and raised tag should match');
test.ok(true, 'something happened somewhere');
}
};
emitter.onAny(fn);
emitter.emit('test26.ns5.ns5'); //2
var listeners = emitter.listenersAny();
test.equals(listeners.length, 1, 'should be one any listeners');
emitter.unAny(fn);
listeners = emitter.listenersAny();
test.ok(listeners.length === 0, 'should be no any listeners');
emitter.onAny(fn);
emitter.onAny(fn);
listeners = emitter.listenersAny();
test.equals(listeners.length, 2, 'should be two any listeners');
emitter.unAny();
listeners = emitter.listenersAny();
test.ok(listeners.length === 0, 'should be no any listeners');
test.expect(6);
test.done();
},
'27. should not expand beyond the namespace' : function (test) {
var emitter = this.emitter,
addedEvents = setHelper(emitter,test,'test27');
emitter.emit('test27.ns2.ns3'); //1
emitter.emit('test27.ns2.ns3.ns4'); //0
test.expect(1);
test.done();
},
'28. should raise errors, if error is emitted and not caught' : function (test) {
var emitter = this.emitter,
error = new Error('Something Funny Happened');
try {
emitter.emit('error');
}
catch (ex) {
test.ok(ex instanceof Error, 'should be an Error');
}
try {
emitter.emit('error', error);
}
catch (ex) {
test.equal(error, ex, 'should have passed up the argument');
}
emitter.on('error', function (event, err) {
test.ok(true, 'error event was raised');
test.equal(err, error, 'of the error');
});
emitter.emit('error',error);
test.expect(4);
test.done();
},
'29. should raise errors on namespaces, if error is emitted and not caught' : function (test) {
var emitter = this.emitter,
error = new Error('Something Funny Happened');
emitter.on('foo.bar', function(){});
try {
emitter.emit('foo.error');
}
catch (ex) {
test.ok(ex instanceof Error, 'should be an Error');
}
try {
emitter.emit('foo.error', error);
}
catch (ex) {
test.equal(error, ex, 'should have passed up the argument');
}
emitter.on('error', function (event, err) {
test.ok(true, 'error event was raised');
test.equal(err, error, 'of the error');
});
emitter.emit('error',error);
test.expect(4);
test.done();
},
'30. should be able to support custom configs for EE2' : function (test) {
if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}

@@ -403,19 +750,204 @@ else {

}
var emitter = new EventEmitter2({
caseSensitive : true,
delimiter : '???'
});
var emitter = new EventEmitter2();
emitter.on('test30???a???b', function () {
test.ok(true, 'test30???a???b did emit');
});
emitter.on('test15', function () {
test.ok(true, 'The event test15 was raised');
emitter.emit('test30???a???b');
emitter._delimiter = '::';
emitter.emit('test30::a::b');
test.expect(2);
test.done();
},
'31. should reject bad wildcard inputs' : function (test) {
var emitter = this.emitter;
addedEvents = setHelper(emitter,test,'test31');
emitter.onAny(function () {
test.ok(false, 'no event should be emitted, ever');
});
emitter.on('test15.ns1', function () {
test.ok(false, 'a dead event was raised!');
// try listening on a bad
try {
emitter.on('test31*', function () {
test.ok(false, 'should never registered');
});
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('*test31', function () {
test.ok(false, 'should never registered');
});
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('test*31', function () {
test.ok(false, 'should never registered');
});
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('test31.*a', function () {
test.ok(false, 'should never registered');
});
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('*test31.a*', function () {
test.ok(false, 'should never registered');
});
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('*test31.a*a', function () {
test.ok(false, 'should never registered');
});
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
//now try emittering with a bad wildcard
try {
emitter.emit('test31*')
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('*test31');
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('test*31');
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('test31.*a');
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('*test31.a*');
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
// bad wildcard at the front
try {
emitter.on('*test31.a*a');
}
catch (ex) {
test.ok(ex instanceof Error, 'expected an error');
}
test.expect(12);
test.done();
},
'32. Should be able to start with 0 max listeners' : function (test) {
if(typeof require !== 'undefined') {
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
try {
var emitter = new EventEmitter2({
maxListeners : 0
});
emitter.on('no listeners', function () {
test.ok(false, 'no listener was raised');
});
test.ok(true, 'was able to make something');
}
catch (ex) {
test.ok(false, 'Error was raised');
}
test.expect(1);
test.done();
},
'33. should raise maxListeners when too many are registerd' : function (test) {
var emitter = this.emitter;
emitter.on('maxListeners', function () {
test.ok(true, 'maxListeners fired');
});
emitter.emit('*');
emitter.emit('*.ns1');
for (var i = 0; i < 11 ; i++){
emitter.on('test33', function () {
test.ok(false, 'event was raised');
});
}
var listeners = emitter.listeners('test33');
test.equal(listeners.length, 10, '10 listeners in total');
test.expect(2);
test.done();
},
'34. should able to permit unlimited listeners for the maxListeners values less equal then \'0\'' : function (test) {
if(typeof require !== 'undefined') {
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
try {
var emitter = new EventEmitter2({
maxListeners : 0
});
emitter.on('test34', function () {
test.ok(true, 'listener was raised');
});
}
catch (ex) {
test.ok(false, 'Error was raised');
}
// some value greater that the default one
var listenerCount = 11
for (var i = 0; i < listenerCount ; i++){
emitter.emit('test34');
}
test.expect(listenerCount);
test.done();
}
};
});

@@ -8,3 +8,3 @@

if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}

@@ -33,3 +33,3 @@ else {

if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}

@@ -61,3 +61,3 @@ else {

if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}

@@ -92,3 +92,3 @@ else {

if(typeof require !== 'undefined') {
EventEmitter2 = require('../EventEmitter2').EventEmitter2;
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}

@@ -131,4 +131,28 @@ else {

}
},
'4. `removeListener` and `once`': function(test) {
var EventEmitter2;
if (typeof require !== 'undefined') {
EventEmitter2 = require('../lib/eventemitter2').EventEmitter2;
}
else {
EventEmitter2 = window.EventEmitter2;
}
var emitter = new EventEmitter2,
count = 0,
b = function() {
count++;
};
emitter.once('a', b);
emitter.removeListener('a', b);
emitter.emit('a');
test.ok(count === 0, 'Removed listener should not be fired');
test.done();
}
};

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc