tui-grid
Version:
TOAST UI Grid : Powerful data grid control supported by TOAST UI
117 lines (90 loc) • 3.44 kB
JavaScript
;
var Backbone = require('backbone');
var PublicEventEmitter = require('publicEventEmitter');
function testTrigger(target, publicObject, eventName) {
var eventData = {
instance: publicObject
};
var callbackSpy = jasmine.createSpy('callback');
publicObject.on(eventName, callbackSpy);
target.trigger(eventName, eventData);
expect(callbackSpy).toHaveBeenCalledWith(eventData);
}
describe('publicEventEmitter', function() {
var emitter, target, publicObject;
beforeEach(function() {
publicObject = new Backbone.Model();
emitter = new PublicEventEmitter(publicObject);
target = new Backbone.Model();
});
describe('listenToNetAddon', function() {
beforeEach(function() {
emitter.listenToNetAddon(target);
});
it('should listen beforeRequest event', function() {
testTrigger(target, publicObject, 'beforeRequest');
});
it('should listen response event', function() {
testTrigger(target, publicObject, 'response');
});
it('should listen successResponse event', function() {
testTrigger(target, publicObject, 'successResponse');
});
it('should listen failResponse event', function() {
testTrigger(target, publicObject, 'failResponse');
});
it('should listen errorResponse event', function() {
testTrigger(target, publicObject, 'errorResponse');
});
});
describe('listenToDomEventBus', function() {
beforeEach(function() {
emitter.listenToDomEventBus(target);
});
it('should listen click event', function() {
testTrigger(target, publicObject, 'click');
});
it('should listen dblclick event', function() {
testTrigger(target, publicObject, 'dblclick');
});
it('should listen mousedown event', function() {
testTrigger(target, publicObject, 'mousedown');
});
it('should listen mouseoverCell event', function() {
testTrigger(target, publicObject, 'mouseover');
});
it('should listen mouseoutCell event', function() {
testTrigger(target, publicObject, 'mouseout');
});
});
describe('listenToFocusModel', function() {
beforeEach(function() {
emitter.listenToFocusModel(target);
});
it('should listen select event and trigger it as selectRow event', function() {
testTrigger(target, publicObject, 'focusChange');
});
});
describe('listenToDataModel', function() {
beforeEach(function() {
emitter.listenToDataModel(target);
});
it('should listen check event', function() {
testTrigger(target, publicObject, 'check');
});
it('should listen uncheck event', function() {
testTrigger(target, publicObject, 'uncheck');
});
it('should listen deleteRange event', function() {
testTrigger(target, publicObject, 'deleteRange');
});
});
describe('listenToSelectionModel', function() {
beforeEach(function() {
emitter.listenToSelectionModel(target);
});
it('should listen selection event', function() {
testTrigger(target, publicObject, 'selection');
});
});
});