rtkapi
Version:
An API to communicate with an R11 server
127 lines (108 loc) • 3.27 kB
JavaScript
var RTKEventEmitter = require("../lib/eventemitter.js").RTKEventEmitter;
exports.setUp = function (callback) {
this.ee = new RTKEventEmitter();
callback();
};
exports.registerEventsOn = function (test) {
test.expect(1);
this.ee.on('test', 'nodeunit', function (value) {
test.equals(value, "testValue");
test.done();
});
this.ee.emit('test', "testValue");
};
exports.registerEventsOnce = function (test) {
test.expect(1);
var ee = this.ee;
ee.once('test2', 'nodeunit', function (value) {
test.equals(value, "testValue");
// Verify that it doesn't run twice
ee.emit('test2', "testValue2");
setTimeout(test.done);
});
ee.emit('test2', "testValue");
};
exports.multipleListeners = function (test) {
test.expect(2);
var done = false;
this.ee.on('test', 'nodeunit', function (value) {
test.equals(value, "testValue");
if (done)
test.done();
else
done = true;
});
this.ee.on('test', 'nodeunit2', function (value) {
test.equals(value, "testValue");
if (done)
test.done();
else
done = true;
});
this.ee.emit('test', "testValue");
};
exports.registerEventsOff = function (test) {
test.expect(1);
this.ee.on('test', 'nodeunit', function (value) {
test.equals(value, "testValue");
setTimeout(test.done);
});
this.ee.on('test', 'nodeunit2', function (value) {
test.ifError(true);
test.done();
});
this.ee.off('test', 'nodeunit2');
this.ee.emit('test', "testValue");
};
exports.registerEventsRemoveAll = function (test) {
test.expect(1);
this.ee.on('test', 'nodeunit', function (value) {
test.ifError(true);
test.done();
});
this.ee.on('test', 'nodeunit2', function (value) {
test.ifError(true);
test.done();
});
this.ee.on('test2', 'nodeunit', function (value) {
test.equals(value, "testValue2");
setTimeout(test.done);
});
this.ee.removeAllListeners('test');
this.ee.emit('test', "testValue");
this.ee.emit('test2', "testValue2");
};
exports.getListeners = function (test) {
this.ee.on('test', 'nodeunit2', function (value) {});
this.ee.on('test2', 'nodeunit', function (value) {});
var l = this.ee.getListeners();
test.equals(l.length, 2);
test.ok(l.indexOf('test') !== -1);
test.ok(l.indexOf('test2') !== -1);
test.done();
};
exports.registerEventsOnOnce = function (test) {
// The .on listener should fire thwice and the .once only once
test.expect(3);
this.ee.on('test', 'nodeunit', function (value) {
test.equals(value, "testValue");
});
this.ee.once('test', 'nodeunit', function (value) {
test.equals(value, "testValue");
});
this.ee.emit('test', 'testValue');
this.ee.emit('test', 'testValue');
setTimeout(test.done);
};
exports.secondEE = function (test) {
test.expect(1);
var sEE = new RTKEventEmitter();
this.ee.on("herp", 'token', function () {
test.fail(true);
});
sEE.on('herp', 'token', function () {
test.ok(true);
test.done();
});
sEE.emit('herp');
};