| <!doctype html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] --> |
| <meta charset=utf-8> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <script src="../resources/testcommon.js"></script> |
| <style> |
| |
| .animated-div { |
| margin-left: 100px; |
| transition: margin-left 1000s linear 1000s; |
| } |
| |
| </style> |
| <body> |
| <div id="log"></div> |
| <script> |
| |
| 'use strict'; |
| |
| const ANIM_DELAY_MS = 1000000; // 1000s |
| const ANIM_DUR_MS = 1000000; // 1000s |
| |
| async_test(function(t) { |
| var div = addDiv(t, {'class': 'animated-div'}); |
| flushComputedStyle(div); |
| div.style.marginLeft = '200px'; // initiate transition |
| |
| var animation = div.getAnimations()[0]; |
| |
| animation.finish(); |
| |
| animation.finished.then(t.step_func(function() { |
| animation.play(); |
| assert_equals(animation.currentTime, 0, |
| 'Replaying a finished transition should reset its ' + |
| 'currentTime'); |
| t.done(); |
| })); |
| }, 'Test restarting a finished transition'); |
| |
| async_test(function(t) { |
| var div = addDiv(t, {'class': 'animated-div'}); |
| flushComputedStyle(div); |
| div.style.marginLeft = '200px'; // initiate transition |
| |
| var animation = div.getAnimations()[0]; |
| |
| animation.ready.then(function() { |
| animation.playbackRate = -1; |
| return animation.finished; |
| }).then(t.step_func(function() { |
| animation.play(); |
| // FIXME: once animation.effect.computedTiming.endTime is available (bug |
| // 1108055) we should use that here. |
| assert_equals(animation.currentTime, ANIM_DELAY_MS + ANIM_DUR_MS, |
| 'Replaying a finished reversed transition should reset ' + |
| 'its currentTime to the end of the effect'); |
| t.done(); |
| })); |
| }, 'Test restarting a reversed finished transition'); |
| |
| </script> |
| </body> |