EventDispatcher.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /**
  2. * @author simonThiele / https://github.com/simonThiele
  3. */
  4. QUnit.module( "EventDispatcher" );
  5. QUnit.test( "addEventListener" , function( assert ) {
  6. var eventDispatcher = new THREE.EventDispatcher();
  7. var listener = {};
  8. eventDispatcher.addEventListener( 'anyType', listener );
  9. assert.ok( eventDispatcher._listeners.anyType.length === 1, "listener with unknown type was added" );
  10. assert.ok( eventDispatcher._listeners.anyType[0] === listener, "listener with unknown type was added" );
  11. eventDispatcher.addEventListener( 'anyType', listener );
  12. assert.ok( eventDispatcher._listeners.anyType.length === 1, "can't add one listener twice to same type" );
  13. assert.ok( eventDispatcher._listeners.anyType[0] === listener, "listener is still there" );
  14. });
  15. QUnit.test( "hasEventListener" , function( assert ) {
  16. var eventDispatcher = new THREE.EventDispatcher();
  17. var listener = {};
  18. eventDispatcher.addEventListener( 'anyType', listener );
  19. assert.ok( eventDispatcher.hasEventListener( 'anyType', listener ), "listener was found" );
  20. assert.ok( !eventDispatcher.hasEventListener( 'anotherType', listener ), "listener was not found which is good" );
  21. });
  22. QUnit.test( "removeEventListener" , function( assert ) {
  23. var eventDispatcher = new THREE.EventDispatcher();
  24. var listener = {};
  25. assert.ok( eventDispatcher._listeners === undefined, "there are no listeners by default" );
  26. eventDispatcher.addEventListener( 'anyType', listener );
  27. assert.ok( Object.keys( eventDispatcher._listeners ).length === 1 &&
  28. eventDispatcher._listeners.anyType.length === 1, "if a listener was added, there is a new key" );
  29. eventDispatcher.removeEventListener( 'anyType', listener );
  30. assert.ok( eventDispatcher._listeners.anyType.length === 0, "listener was deleted" );
  31. eventDispatcher.removeEventListener( 'unknownType', listener );
  32. assert.ok( eventDispatcher._listeners.unknownType === undefined, "unknown types will be ignored" );
  33. eventDispatcher.removeEventListener( 'anyType', undefined );
  34. assert.ok( eventDispatcher._listeners.anyType.length === 0, "undefined listeners are ignored" );
  35. });
  36. QUnit.test( "dispatchEvent" , function( assert ) {
  37. var eventDispatcher = new THREE.EventDispatcher();
  38. var callCount = 0;
  39. var listener = function() { callCount++; };
  40. eventDispatcher.addEventListener( 'anyType', listener );
  41. assert.ok( callCount === 0, "no event, no call" );
  42. eventDispatcher.dispatchEvent( { type: 'anyType' } );
  43. assert.ok( callCount === 1, "one event, one call" );
  44. eventDispatcher.dispatchEvent( { type: 'anyType' } );
  45. assert.ok( callCount === 2, "two events, two calls" );
  46. });
  47. //