Sha256: dbb3da89b929f3650be3d485890a9a7a0454355f7e3ebe243b5360d68e479e11

Contents?: true

Size: 1.58 KB

Versions: 13

Compression:

Stored size: 1.58 KB

Contents

describe("Jax.Events.Methods", function() {
  var emitter, evt, listenerID;
  
  beforeEach(function() {
    emitter = Jax.Class.create({ });
    emitter.addMethods(Jax.Events.Methods);
    emitter = new emitter();
    listenerID = emitter.addEventListener('evt', function(obj) { evt = obj; });
  });
  
  // don't taint other tests
  afterEach(function() { evt = undefined; });
  
  it("should work with no event at all", function() {
    emitter.fireEvent('evt');
    expect(evt).toBeUndefined();
  });
  
  it("should set a default +type+ property on events", function() {
    emitter.fireEvent('evt', { });
    expect(evt.type).toEqual('evt');
  });
  
  it("should not override a +type+ property on events", function() {
    emitter.fireEvent('evt', { type: 'one' });
    expect(evt.type).toEqual('one');
  });
  
  it("should be un-listenenable", function() {
    emitter.removeEventListener('evt', listenerID);
    emitter.fireEvent('evt', {});
    expect(evt).toBeUndefined(); // because the original listener never was fired
  });
  
  it("should be un-listenable out of order", function() {
    // add a second listener. Its index is 1. If we remove index 0, we should still
    // be able to remove index 1. At that point no listeners should exist.
    var second = false, secondID;
    secondID = emitter.addEventListener('evt', function() { second = true; });
    emitter.removeEventListener('evt', listenerID);
    emitter.removeEventListener('evt', secondID);
    emitter.fireEvent('evt', {});
    // neither should have fired
    expect(second).toBeFalsy();
    expect(evt).toBeUndefined();
  });
});

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
jax-2.0.12 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.11 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.10 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.9 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.8 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.7 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.6 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.5 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.4 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.3 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.2 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.1 spec/javascripts/jax/webgl/core/events_spec.js
jax-2.0.0 spec/javascripts/jax/webgl/core/events_spec.js