OLD | NEW |
(Empty) | |
| 1 suite('player-finish-event', function() { |
| 2 setup(function() { |
| 3 this.element = document.createElement('div'); |
| 4 document.documentElement.appendChild(this.element); |
| 5 this.player = this.element.animate([], 1000); |
| 6 }); |
| 7 teardown(function() { |
| 8 if (this.element.parent) |
| 9 this.element.removeChild(this.target); |
| 10 }); |
| 11 |
| 12 test('fire when player completes', function(done) { |
| 13 var ready = false; |
| 14 var fired = false; |
| 15 var player = this.player; |
| 16 player.onfinish = function(event) { |
| 17 assert(ready, 'must not be called synchronously'); |
| 18 assert.equal(this, player); |
| 19 assert.equal(event.target, player); |
| 20 assert.equal(event.currentTime, 1000); |
| 21 assert.equal(event.timelineTime, 1100); |
| 22 if (fired) |
| 23 assert(false, 'must not get fired twice'); |
| 24 fired = true; |
| 25 done(); |
| 26 }; |
| 27 tick(100); |
| 28 tick(1100); |
| 29 tick(2100); |
| 30 ready = true; |
| 31 }); |
| 32 |
| 33 test('fire when reversed player completes', function(done) { |
| 34 this.player.onfinish = function(event) { |
| 35 assert.equal(event.currentTime, 0); |
| 36 assert.equal(event.timelineTime, 1001); |
| 37 done(); |
| 38 }; |
| 39 tick(0); |
| 40 tick(500); |
| 41 this.player.reverse(); |
| 42 tick(501); |
| 43 tick(1001); |
| 44 }); |
| 45 |
| 46 test('fire after player is cancelled', function(done) { |
| 47 this.player.onfinish = function(event) { |
| 48 assert.equal(event.currentTime, 0); |
| 49 assert.equal(event.timelineTime, 1, 'event must be fired on next sample'); |
| 50 done(); |
| 51 }; |
| 52 tick(0); |
| 53 this.player.cancel(); |
| 54 tick(1); |
| 55 }); |
| 56 |
| 57 test('multiple event listeners', function(done) { |
| 58 var count = 0; |
| 59 function createHandler(expectedCount) { |
| 60 return function() { |
| 61 count++; |
| 62 assert.equal(count, expectedCount); |
| 63 }; |
| 64 } |
| 65 var toRemove = createHandler(0); |
| 66 this.player.addEventListener('finish', createHandler(1)); |
| 67 this.player.addEventListener('finish', createHandler(2)); |
| 68 this.player.addEventListener('finish', toRemove); |
| 69 this.player.addEventListener('finish', createHandler(3)); |
| 70 this.player.removeEventListener('finish', toRemove); |
| 71 this.player.onfinish = function() { |
| 72 assert.equal(count, 3); |
| 73 done(); |
| 74 }; |
| 75 tick(0); |
| 76 this.player.cancel(); |
| 77 tick(1000); |
| 78 }); |
| 79 }); |
OLD | NEW |