示例#1
0
 it('should be able to delegate with custom event names', function () {
     var source = new EventTarget();
     var target = new EventTarget();
     spyOn(source, 'on').andCallThrough();
     spyOn(target, 'fire').andCallThrough();
     Event.delegate(source, 'foo', target, 'bar');
     source.fire('foo');
     expect(target.fire).toHaveBeenCalled();
     expect(target.fire.mostRecentCall.args[0]).toBe('bar');
 });
示例#2
0
 it('should preserve all data if `preserveData` is specified when delegate custom event', function () {
     var source = new EventTarget();
     var target = new EventTarget();
     spyOn(source, 'on').andCallThrough();
     spyOn(target, 'fire').andCallThrough();
     Event.delegate(source, 'foo', target, 'bar', { preserveData: true });
     var event = { x: 1 };
     source.fire('foo', event);
     expect(target.fire).toHaveBeenCalled();
     expect(target.fire.mostRecentCall.args[0]).toBe('bar');
     expect(target.fire.mostRecentCall.args[1].x).toBe(1);
 });
示例#3
0
 it('should delegate `type` from `source` to `target`', function () {
     var source = new EventTarget();
     var target = new EventTarget();
     spyOn(source, 'on').andCallThrough();
     spyOn(target, 'fire').andCallThrough();
     Event.delegate(source, target, 'foo');
     expect(source.on).toHaveBeenCalled();
     expect(source.on.mostRecentCall.args[0]).toBe('foo');
     source.fire('foo');
     expect(target.fire).toHaveBeenCalled();
     expect(target.fire.mostRecentCall.args[0]).toBe('foo');
 });
示例#4
0
 it('should sync the state between 2 event objects `syncState` is specified when delegate custom event', function () {
     var source = new EventTarget();
     var target = new EventTarget();
     spyOn(source, 'on').andCallThrough();
     spyOn(target, 'fire').andCallThrough();
     var handler = function (event) {
         event.stopPropagation();
         event.preventDefault();
         event.stopImmediatePropagation();
     };
     target.on('bar', handler);
     Event.delegate(source, 'foo', target, 'bar', { syncState: true });
     var event = source.fire('foo', { x: 1 });
     expect(target.fire).toHaveBeenCalled();
     expect(target.fire.mostRecentCall.args[0]).toBe('bar');
     expect(event.isPropagationStopped()).toBe(true);
     expect(event.isDefaultPrevented()).toBe(true);
     expect(event.isImmediatePropagationStopped()).toBe(true);
 });