Example #1
0
  suite.test('off (all named)', function () {
    const dispatcher = new EventDispatcher();
    let data = '';

    const listenerA = function () {
      data += 'a';
    };
    const listenerB = function () {
      data += 'b';
    };
    const listenerC = function () {
      data += 'c';
    };

    dispatcher.on('click', listenerA);
    dispatcher.on('click', listenerB);
    dispatcher.on('keydown', listenerC);

    dispatcher.off('click');

    data = '';
    dispatcher.fire('click');
    dispatcher.fire('keydown');
    LegacyUnit.equal(data, 'c');
  });
Example #2
0
  suite.test('fire (no event listeners)', function () {
    const dispatcher = new EventDispatcher();
    let args;

    args = dispatcher.fire('click', { test: 1 });
    LegacyUnit.equal(args.test, 1);
    LegacyUnit.equal(args.isDefaultPrevented(), false);
    LegacyUnit.equal(args.isPropagationStopped(), false);
    LegacyUnit.equal(args.isImmediatePropagationStopped(), false);
    LegacyUnit.equal(args.target, dispatcher);

    args = dispatcher.fire('click');
    LegacyUnit.equal(args.isDefaultPrevented(), false);
    LegacyUnit.equal(args.isPropagationStopped(), false);
    LegacyUnit.equal(args.isImmediatePropagationStopped(), false);
  });
Example #3
0
  suite.test('on', function () {
    const dispatcher = new EventDispatcher();
    let data = '';

    LegacyUnit.equal(dispatcher.on('click', function () {
      data += 'a';
    }), dispatcher);
    LegacyUnit.equal(dispatcher.on('click keydown', function () {
      data += 'b';
    }), dispatcher);

    dispatcher.fire('click');
    LegacyUnit.equal(data, 'ab');

    dispatcher.fire('keydown');
    LegacyUnit.equal(data, 'abb');
  });
Example #4
0
  suite.test('once (prepend)', function () {
    const dispatcher = new EventDispatcher();
    let data = '';

    LegacyUnit.equal(dispatcher.on('click', function () {
      data += 'a';
    }), dispatcher);
    LegacyUnit.equal(dispatcher.once('click', function () {
      data += 'b';
    }, true), dispatcher);
    LegacyUnit.equal(dispatcher.on('click', function () {
      data += 'c';
    }), dispatcher);

    dispatcher.fire('click');
    LegacyUnit.equal(data, 'bac');

    dispatcher.fire('click');
    LegacyUnit.equal(data, 'bacac');
  });
Example #5
0
  suite.test('beforeFire setting', function () {
    let lastArgs, dispatcher, args;

    dispatcher = new EventDispatcher({
      beforeFire (args) {
        lastArgs = args;
      }
    });

    args = dispatcher.fire('click');
    LegacyUnit.equal(lastArgs === args, true);
  });
Example #6
0
  suite.test('fire (event listeners) stopImmediatePropagation', function () {
    const dispatcher = new EventDispatcher();
    let data = '';

    dispatcher.on('click', function (e) {
      data += 'a'; e.stopImmediatePropagation();
    });
    dispatcher.on('click', function () {
      data += 'b';
    });

    dispatcher.fire('click', { test: 1 });
    LegacyUnit.equal(data, 'a');
  });
Example #7
0
  suite.test('fire (event listeners)', function () {
    const dispatcher = new EventDispatcher();
    let data = '';

    dispatcher.on('click', function () {
      data += 'a';
    });
    dispatcher.on('click', function () {
      data += 'b';
    });

    dispatcher.fire('click', { test: 1 });
    LegacyUnit.equal(data, 'ab');
  });
Example #8
0
  suite.test('once (unbind)', function () {
    const dispatcher = new EventDispatcher();
    let data = '';

    const handler = function () {
      data += 'b';
    };

    dispatcher.once('click', function () {
      data += 'a';
    });
    dispatcher.once('click', handler);
    dispatcher.off('click', handler);

    dispatcher.fire('click');
    LegacyUnit.equal(data, 'a');
  });
Example #9
0
  suite.test('beforeFire setting (stopImmediatePropagation)', function () {
    let lastArgs, dispatcher, args, data = '';

    dispatcher = new EventDispatcher({
      beforeFire (args) {
        lastArgs = args;
        args.stopImmediatePropagation();
      }
    });

    const listenerA = function () {
      data += 'a';
    };

    dispatcher.on('click', listenerA);
    args = dispatcher.fire('click');
    LegacyUnit.equal(lastArgs === args, true);
    LegacyUnit.equal(data, '');
  });
Example #10
0
  suite.test('off (all specific observer)', function () {
    const dispatcher = new EventDispatcher();
    let data = '';

    const listenerA = function () {
      data += 'a';
    };
    const listenerB = function () {
      data += 'b';
    };

    dispatcher.on('click', listenerA);
    dispatcher.on('click', listenerB);
    dispatcher.off('click', listenerB);

    data = '';
    dispatcher.fire('click');
    LegacyUnit.equal(data, 'a');
  });