suite('timing', function() { setup(function() { webAnimations1.timeline._players = []; }); test('pause and scrub', function() { var player = document.body.animate([], { duration: 1000 }); player.pause(); player.currentTime = 500; assert.equal(player.currentTime, 500); }); test('pause, scrub and play', function() { var target = document.createElement('div'); document.body.appendChild(target); var player = target.animate([ { background: 'blue' }, { background: 'red' } ], { duration: 1000 }); tick(100); player.pause(); player.currentTime = 200; // http://www.w3.org/TR/web-animations/#the-current-time-of-a-player // currentTime should now mean 'hold time' - this allows scrubbing. assert.equal(player.currentTime, 200); player.play(); tick(200); tick(300); assert.equal(player.currentTime, 300); assert.equal(player.startTime, 0); }); test('sanity-check NaN timing', function() { // This has no actual tests, but will infinite loop without fix. var player = document.body.animate([], { duration: 2000, easing: 'ease-in' // fails only with cubic easing, not linear }); tick(100); player.currentTime = NaN; tick(200); player = document.body.animate([], { duration: NaN, easing: 'ease-out' }); tick(300); }); test('can set fill:none on group', function() { var timing = webAnimationsShared.makeTiming({fill: 'none'}, true); assert.equal(timing.fill, 'none'); }); });