Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(87)

Unified Diff: third_party/WebKit/LayoutTests/web-animations-api/fill-forward-negative-end-delay.html

Issue 2030843002: Web Animations: Account for end delay in after phase active time (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Unit test Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/web-animations-api/fill-forward-negative-end-delay.html
diff --git a/third_party/WebKit/LayoutTests/web-animations-api/fill-forward-negative-end-delay.html b/third_party/WebKit/LayoutTests/web-animations-api/fill-forward-negative-end-delay.html
new file mode 100644
index 0000000000000000000000000000000000000000..50b20cdcfb8a3f065ee54be261e22ee7473cb8b4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/web-animations-api/fill-forward-negative-end-delay.html
@@ -0,0 +1,69 @@
+<script src="../resources/testharness.js"></script>
suzyh_UTC10 (ex-contributor) 2016/07/25 00:51:09 Are we intending to upstream this one?
alancutter (OOO until 2018) 2016/07/25 01:44:32 Yes.
suzyh_UTC10 (ex-contributor) 2016/07/25 01:52:12 In that case, please add the usual meta/header inf
alancutter (OOO until 2018) 2016/07/25 04:46:48 Done.
+<script src="../resources/testharnessreport.js"></script>
+<script src="../imported/wpt/web-animations/testcommon.js"></script>
+<body>
+<script>
+'use strict';
+
+var keyframes = {left: ['0px', '1px']};
+
+// TODO(alancutter): Implement animation.effect.getComputedTiming().progress to
suzyh_UTC10 (ex-contributor) 2016/07/25 00:51:09 Don't we have this now?
alancutter (OOO until 2018) 2016/07/25 01:44:32 Using it now.
+// query the timing model more directly and avoid having to read getComputedStyle().
+function animationProgress(element) {
+ return parseFloat(getComputedStyle(element).left);
+}
+
+test(function(t) {
+ var element = createDiv(t);
+ var animation = element.animate(keyframes, {
+ fill: 'forwards',
+ duration: 1,
+ endDelay: -1,
+ });
+ animation.currentTime = 10;
+ assert_equals(animationProgress(element), 0,
+ 'Progress should be zero since we clip to the start of the animation');
+}, 'Negative end delay clipping into the start of the animation');
+
+test(function(t) {
+ var element = createDiv(t);
+ var animation = element.animate(keyframes, {
+ fill: 'forwards',
+ duration: 1,
+ iterations: 2,
+ endDelay: -1,
+ });
+ animation.currentTime = 10;
+ assert_equals(animationProgress(element), 1,
+ 'Progress should be 1 since we clip to the end of the first iteration ' +
+ 'and the second iteration does not have a chance to start');
+}, 'Negative end delay clipping to the end of the the first iteration');
+
+test(function(t) {
+ var element = createDiv(t);
+ var animation = element.animate(keyframes, {
+ fill: 'forwards',
+ duration: 1,
+ iterations: 2,
+ endDelay: -0.75,
+ });
+ animation.currentTime = 10;
+ assert_equals(animationProgress(element), 0.25,
+ 'Progress should be 0.25 since we clip part way through the second iteration');
+}, 'Negative end delay clipping part way into the second iteration');
+
+test(function(t) {
+ var element = createDiv(t);
+ var animation = element.animate(keyframes, {
+ fill: 'forwards',
+ duration: 1,
+ iterations: 0,
+ endDelay: -1,
+ });
+ animation.currentTime = 10;
+ assert_equals(animationProgress(element), 0,
+ 'Progress should be 0 since there are no iterations to make progress in');
+}, 'Negative end delay clipping into zero iterations');
+
+</script>
+</body>

Powered by Google App Engine
This is Rietveld 408576698