Index: third_party/WebKit/LayoutTests/animations/transition-and-animation-2.html |
diff --git a/third_party/WebKit/LayoutTests/animations/transition-and-animation-2.html b/third_party/WebKit/LayoutTests/animations/transition-and-animation-2.html |
index 9709ef7f84f1a414d89faff656eb5519765af8df..59ed7b3028f1ed0a1a87eb73df28646811e66ac2 100644 |
--- a/third_party/WebKit/LayoutTests/animations/transition-and-animation-2.html |
+++ b/third_party/WebKit/LayoutTests/animations/transition-and-animation-2.html |
@@ -1,11 +1,11 @@ |
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
- "http://www.w3.org/TR/html4/loose.dtd"> |
- |
-<html lang="en"> |
+<!DOCTYPE html> |
+<html> |
<head> |
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
+ <meta charset="utf-8"> |
+ <script src="../resources/testharness.js"></script> |
+ <script src="../resources/testharnessreport.js"></script> |
<title>Transition/Animation Test #2</title> |
- <style type="text/css" media="screen"> |
+ <style> |
#box { |
position: absolute; |
left: 0; |
@@ -13,44 +13,47 @@ |
height: 100px; |
width: 100px; |
background-color: blue; |
- animation-duration: 0.3s; |
- animation-timing-function: linear; |
- animation-name: anim; |
transition-property: transform; |
transition-duration: 10s; |
transition-timing-function: linear; |
} |
- @keyframes anim { |
- from { transform: translate(0,100px) } |
- to { transform: translate(400px, 100px) } |
+ #box.running { |
+ animation-duration: 0.3s; |
+ animation-timing-function: linear; |
+ animation-name: anim; |
} |
- </style> |
- <script src="resources/animation-test-helpers.js" type="text/javascript" charset="utf-8"></script> |
- <script type="text/javascript" charset="utf-8"> |
- |
- const expectedValues = [ |
- // [time, element-id, property, expected-value, tolerance] |
- [0.4, "box", "transform", "none", 0], |
- ]; |
- |
- // FIXME: This doesn't get called so we don't trigger a transition... |
- function setup() |
- { |
- document.getElementById("box").style.transform = "translateX(400px)"; |
+ @keyframes anim { |
+ from { transform: translate(0, 100px); } |
+ to { transform: translate(400px, 100px); } |
} |
- |
- runAnimationTest(expectedValues, undefined, undefined, 'do-not-use-pause-api'); |
- |
- </script> |
+ </style> |
</head> |
<body> |
-This test has a transition and animation on the same property (transform). |
-The animation starts and then the transition is triggered. The transition should start |
-at the position before the animation started (the unanimated position), which is (0,0). If it |
-starts from the start point of the animation (0,100) then there is an error |
-<div id="box"> |
-</div> |
-<div id="result"> |
-</div> |
+ <div id="box"></div> |
+ <script> |
+ 'use strict'; |
+ async_test(t => { |
+ |
+ t.step(() => { |
+ box.offsetTop; // force style recalc |
+ |
+ // Start animation |
+ box.classList.add('running'); |
+ // No transition - we jump to the animation's initial frame. |
+ assert_equals(getComputedStyle(box).transform, 'matrix(1, 0, 0, 1, 0, 100)'); |
+ |
+ // This would trigger a transition if no animation was in progress. |
+ box.style.transform = 'translate(400px, 0)'; |
+ |
+ // We remain at the animation's initial frame. |
+ assert_equals(getComputedStyle(box).transform, 'matrix(1, 0, 0, 1, 0, 100)'); |
+ }); |
+ |
+ box.addEventListener('animationend', t.step_func_done(() => { |
+ // No transition - the inline style takes immediate effect. |
+ assert_equals(getComputedStyle(box).transform, 'matrix(1, 0, 0, 1, 400, 0)'); |
+ })); |
+ }, 'Inline style applies when animation completes'); |
+ </script> |
</body> |
</html> |