1// Copyright Joyent, Inc. and other Node contributors.2//3// Permission is hereby granted, free of charge, to any person obtaining a4// copy of this software and associated documentation files (the5// "Software"), to deal in the Software without restriction, including6// without limitation the rights to use, copy, modify, merge, publish,7// distribute, sublicense, and/or sell copies of the Software, and to permit8// persons to whom the Software is furnished to do so, subject to the9// following conditions:10//11// The above copyright notice and this permission notice shall be included12// in all copies or substantial portions of the Software.13//14// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS15// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF16// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN17// 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 OR19// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE20// USE OR OTHER DEALINGS IN THE SOFTWARE.2122var common = require('../common');23var assert = require('assert');24var EventEmitter = require('../../lib/eventemitter2').EventEmitter2;2526var e = new EventEmitter({wildcard: true});27var countWildcard = 0;28var counMultiLevelWildcard = 0;29var countAny = 0;3031e.on('foo', function() {32e.emit('bar', 'bar');33});34e.on('*', function(name) {35++countWildcard;36console.log(this.event, name);37assert.equal(this.event, name);38});39e.on('**', function(name) {40++counMultiLevelWildcard;41console.log(this.event, name);42assert.equal(this.event, name);43});44e.onAny(function(name) {45++countAny;46assert.equal(this.event, name);47});4849e.emit('foo', 'foo');5051process.on('exit', function() {52assert.equal(countWildcard, 2);53assert.equal(counMultiLevelWildcard, 2);54assert.equal(countAny, 2);55});565758