Home | History | Annotate | Download | only in js
      1 suite('timing', function() {
      2   setup(function() {
      3     webAnimations1.timeline._players = [];
      4   });
      5 
      6   test('pause and scrub', function() {
      7     var player = document.body.animate([], { duration: 1000 });
      8     player.pause();
      9 
     10     player.currentTime = 500;
     11     assert.equal(player.currentTime, 500);
     12   });
     13 
     14   test('pause, scrub and play', function() {
     15     var target = document.createElement('div');
     16     document.body.appendChild(target);
     17 
     18     var player = target.animate([
     19       { background: 'blue' },
     20       { background: 'red' }
     21     ], { duration: 1000 });
     22     tick(100);
     23     player.pause();
     24 
     25     player.currentTime = 200;
     26     // http://www.w3.org/TR/web-animations/#the-current-time-of-a-player
     27     // currentTime should now mean 'hold time' - this allows scrubbing.
     28     assert.equal(player.currentTime, 200);
     29     player.play();
     30 
     31     tick(200);
     32     tick(300);
     33     assert.equal(player.currentTime, 300);
     34     assert.equal(player.startTime, 0);
     35   });
     36 
     37   test('sanity-check NaN timing', function() {
     38     // This has no actual tests, but will infinite loop without fix.
     39 
     40     var player = document.body.animate([], {
     41       duration: 2000,
     42       easing: 'ease-in'  // fails only with cubic easing, not linear
     43     });
     44     tick(100);
     45     player.currentTime = NaN;
     46     tick(200);
     47 
     48     player = document.body.animate([], { duration: NaN, easing: 'ease-out' });
     49     tick(300);
     50   });
     51 
     52   test('can set fill:none on group', function() {
     53     var timing = webAnimationsShared.makeTiming({fill: 'none'}, true);
     54     assert.equal(timing.fill, 'none');
     55   });
     56 });
     57