mirror of
https://github.com/mgerb/mywebsite
synced 2026-01-14 19:42:49 +00:00
Added files
This commit is contained in:
99
mongoui/mongoui-master/node_modules/derby/test/EventDispatcher.mocha.coffee
generated
vendored
Normal file
99
mongoui/mongoui-master/node_modules/derby/test/EventDispatcher.mocha.coffee
generated
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
{expect, calls} = require 'racer/test/util'
|
||||
EventDispatcher = require '../lib/EventDispatcher'
|
||||
|
||||
describe 'EventDispatcher', ->
|
||||
|
||||
# Names must be a valid object key
|
||||
name1 = 'test event'
|
||||
name2 = 89
|
||||
|
||||
# Listeners can be anything that is representable in plain JSON
|
||||
listener1 = [1, 2, 'qu"a"il', "'", {arr: ['x', 'y']}]
|
||||
listener2 = 0
|
||||
listener3 = 'stuff'
|
||||
listener4 = true
|
||||
|
||||
# The second and third parameters sent to trigger are simply passed through
|
||||
# to the callback function. They can be anything.
|
||||
value1 = 'test value'
|
||||
options1 = {option: 4}
|
||||
|
||||
it 'should work without callbacks', ->
|
||||
dispatcher = new EventDispatcher
|
||||
dispatcher.bind name1, listener1
|
||||
dispatcher.trigger name1, value1, options1
|
||||
|
||||
it 'calls onTrigger', calls 2, (done) ->
|
||||
dispatcher = new EventDispatcher
|
||||
onTrigger: (name, listener, value, options) ->
|
||||
expect(listener).to.eql listener1
|
||||
expect(value).to.equal value1
|
||||
expect(options).to.equal options1
|
||||
done()
|
||||
dispatcher.bind name1, listener1
|
||||
dispatcher.trigger name1, value1, options1
|
||||
dispatcher.trigger name1, value1, options1
|
||||
|
||||
it 'calls onTrigger without listener', calls 2, (done) ->
|
||||
dispatcher = new EventDispatcher
|
||||
onTrigger: (name, listener, value, options) ->
|
||||
expect(listener).to.equal undefined
|
||||
expect(value).to.equal value1
|
||||
expect(options).to.equal options1
|
||||
done()
|
||||
dispatcher.bind name1
|
||||
dispatcher.trigger name1, value1, options1
|
||||
dispatcher.trigger name1, value1, options1
|
||||
|
||||
it 'calls onTrigger for multiple listeners', calls 1, (done) ->
|
||||
counts = {all: 0}
|
||||
beforeExit = ->
|
||||
expect(counts[listener2]).to.equal 1
|
||||
expect(counts[listener3]).to.equal 3
|
||||
expect(counts[listener4]).to.equal 1
|
||||
done()
|
||||
|
||||
dispatcher = new EventDispatcher
|
||||
onTrigger: (name, listener, value, options) ->
|
||||
counts[listener] = (counts[listener] || 0) + 1
|
||||
expect(value).to.equal value1
|
||||
expect(options).to.equal options1
|
||||
beforeExit() if ++counts.all == 5
|
||||
|
||||
dispatcher.bind name1, listener2
|
||||
dispatcher.bind name1, listener3
|
||||
dispatcher.bind name1, listener4
|
||||
dispatcher.bind name2, listener3
|
||||
dispatcher.trigger name1, value1, options1
|
||||
dispatcher.trigger name2, value1, options1
|
||||
dispatcher.trigger name2, value1, options1
|
||||
|
||||
it 'test EventDispatcher remove listener after failed trigger', calls 1, (done) ->
|
||||
dispatcher = new EventDispatcher
|
||||
onTrigger: ->
|
||||
done()
|
||||
return false
|
||||
dispatcher.bind name1
|
||||
dispatcher.trigger name1
|
||||
dispatcher.trigger name1
|
||||
|
||||
it 'test EventDispatcher do not trigger twice after double bind', calls 1, (done) ->
|
||||
dispatcher = new EventDispatcher onTrigger: done
|
||||
dispatcher.bind name1, listener1
|
||||
dispatcher.bind name1, listener1
|
||||
dispatcher.trigger name1
|
||||
|
||||
it 'test EventDispatcher bind callback', calls 3, (done) ->
|
||||
dispatcher = new EventDispatcher
|
||||
onTrigger: (name, listener, value, options) ->
|
||||
expect(listener).to.eql listener1
|
||||
expect(value).to.equal value1
|
||||
expect(options).to.equal options1
|
||||
done()
|
||||
onBind: (name, listener) ->
|
||||
expect(name).to.equal name1
|
||||
expect(listener).to.eql listener1
|
||||
done()
|
||||
dispatcher.bind name1, listener1
|
||||
dispatcher.trigger name1, value1, options1
|
||||
dispatcher.trigger name1, value1, options1
|
||||
Reference in New Issue
Block a user