Clock.tests.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /* global QUnit */
  2. import { Clock } from '../../../../src/core/Clock';
  3. export default QUnit.module( 'Core', () => {
  4. QUnit.module( 'Clock', () => {
  5. function mockPerformance() {
  6. const reference = ( typeof global !== 'undefined' ) ? global : self;
  7. reference.performance = {
  8. deltaTime: 0,
  9. next: function ( delta ) {
  10. this.deltaTime += delta;
  11. },
  12. now: function () {
  13. return this.deltaTime;
  14. }
  15. };
  16. }
  17. // INSTANCING
  18. QUnit.todo( 'Instancing', ( assert ) => {
  19. assert.ok( false, 'everything\'s gonna be alright' );
  20. } );
  21. // PUBLIC STUFF
  22. QUnit.todo( 'start', ( assert ) => {
  23. assert.ok( false, 'everything\'s gonna be alright' );
  24. } );
  25. QUnit.todo( 'stop', ( assert ) => {
  26. assert.ok( false, 'everything\'s gonna be alright' );
  27. } );
  28. QUnit.todo( 'getElapsedTime', ( assert ) => {
  29. assert.ok( false, 'everything\'s gonna be alright' );
  30. } );
  31. QUnit.todo( 'getDelta', ( assert ) => {
  32. assert.ok( false, 'everything\'s gonna be alright' );
  33. } );
  34. // OTHERS
  35. QUnit.test( 'clock with performance', ( assert ) => {
  36. if ( typeof performance === 'undefined' ) {
  37. assert.expect( 0 );
  38. return;
  39. }
  40. mockPerformance();
  41. var clock = new Clock( false );
  42. clock.start();
  43. performance.next( 123 );
  44. assert.numEqual( clock.getElapsedTime(), 0.123, 'okay' );
  45. performance.next( 100 );
  46. assert.numEqual( clock.getElapsedTime(), 0.223, 'okay' );
  47. clock.stop();
  48. performance.next( 1000 );
  49. assert.numEqual( clock.getElapsedTime(), 0.223, 'don\'t update time if the clock was stopped' );
  50. } );
  51. } );
  52. } );