| <!DOCTYPE html> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| <div id="element">x</div> |
| <style> |
| #element { |
| transition: transform 2000ms; |
| transition-timing-function: linear; |
| } |
| </style> |
| <script> |
| promise_test(function(t) { |
| element.offsetTop; // Force recalc |
| element.style.transform = "rotateX(180deg)"; |
| element.offsetTop; // Force recalc |
| |
| assert_equals(element.getAnimations().length, 1, 'Transition creates an animation'); |
| var animation = element.getAnimations()[0]; |
| |
| return animation.ready.then(function() { |
| assert_equals(element.getAnimations().length, 1, 'No new animations yet'); |
| assert_equals(element.getAnimations()[0], animation); |
| |
| element.style.transform = "rotateX(360deg)"; |
| element.offsetTop; // Force recalc |
| |
| assert_equals(element.getAnimations().length, 1, 'Retargeting transition results in only one animation'); |
| |
| var newAnimation = element.getAnimations()[0]; |
| assert_not_equals(newAnimation, animation); |
| }); |
| }, 'Retargeting a transition should cause the old transition to be cancelled'); |
| </script> |