Index: polymer_0.5.0/bower_components/web-animations-js/test/js/player-finish-event.js |
diff --git a/polymer_0.5.0/bower_components/web-animations-js/test/js/player-finish-event.js b/polymer_0.5.0/bower_components/web-animations-js/test/js/player-finish-event.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6365d913e3bd8b115a305fd45c6780019bd4218a |
--- /dev/null |
+++ b/polymer_0.5.0/bower_components/web-animations-js/test/js/player-finish-event.js |
@@ -0,0 +1,79 @@ |
+suite('player-finish-event', function() { |
+ setup(function() { |
+ this.element = document.createElement('div'); |
+ document.documentElement.appendChild(this.element); |
+ this.player = this.element.animate([], 1000); |
+ }); |
+ teardown(function() { |
+ if (this.element.parent) |
+ this.element.removeChild(this.target); |
+ }); |
+ |
+ test('fire when player completes', function(done) { |
+ var ready = false; |
+ var fired = false; |
+ var player = this.player; |
+ player.onfinish = function(event) { |
+ assert(ready, 'must not be called synchronously'); |
+ assert.equal(this, player); |
+ assert.equal(event.target, player); |
+ assert.equal(event.currentTime, 1000); |
+ assert.equal(event.timelineTime, 1100); |
+ if (fired) |
+ assert(false, 'must not get fired twice'); |
+ fired = true; |
+ done(); |
+ }; |
+ tick(100); |
+ tick(1100); |
+ tick(2100); |
+ ready = true; |
+ }); |
+ |
+ test('fire when reversed player completes', function(done) { |
+ this.player.onfinish = function(event) { |
+ assert.equal(event.currentTime, 0); |
+ assert.equal(event.timelineTime, 1001); |
+ done(); |
+ }; |
+ tick(0); |
+ tick(500); |
+ this.player.reverse(); |
+ tick(501); |
+ tick(1001); |
+ }); |
+ |
+ test('fire after player is cancelled', function(done) { |
+ this.player.onfinish = function(event) { |
+ assert.equal(event.currentTime, 0); |
+ assert.equal(event.timelineTime, 1, 'event must be fired on next sample'); |
+ done(); |
+ }; |
+ tick(0); |
+ this.player.cancel(); |
+ tick(1); |
+ }); |
+ |
+ test('multiple event listeners', function(done) { |
+ var count = 0; |
+ function createHandler(expectedCount) { |
+ return function() { |
+ count++; |
+ assert.equal(count, expectedCount); |
+ }; |
+ } |
+ var toRemove = createHandler(0); |
+ this.player.addEventListener('finish', createHandler(1)); |
+ this.player.addEventListener('finish', createHandler(2)); |
+ this.player.addEventListener('finish', toRemove); |
+ this.player.addEventListener('finish', createHandler(3)); |
+ this.player.removeEventListener('finish', toRemove); |
+ this.player.onfinish = function() { |
+ assert.equal(count, 3); |
+ done(); |
+ }; |
+ tick(0); |
+ this.player.cancel(); |
+ tick(1000); |
+ }); |
+}); |