Index: third_party/WebKit/LayoutTests/imported/wpt/web-animations/timing-model/animations/current-time.html |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/web-animations/timing-model/animations/current-time.html b/third_party/WebKit/LayoutTests/imported/wpt/web-animations/timing-model/animations/current-time.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..efc7ba78b968d55883a61f08d0fba94fa988288c |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/web-animations/timing-model/animations/current-time.html |
@@ -0,0 +1,65 @@ |
+<!DOCTYPE html> |
+<meta charset=utf-8> |
+<title>Tests for current time</title> |
+<link rel="help" href="https://w3c.github.io/web-animations/#current-time"> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<script src="../../testcommon.js"></script> |
+<body> |
+<div id="log"></div> |
+<script> |
+'use strict'; |
+ |
+test(function(t) { |
+ var animation = |
+ new Animation(new KeyframeEffect(createDiv(t), null, 100 * MS_PER_SEC), |
+ document.timeline); |
+ |
+ animation.play(); |
+ assert_equals(animation.currentTime, 0, |
+ 'Current time returns the hold time set when entering the play-pending ' + |
+ 'state'); |
+}, 'The current time returns the hold time when set'); |
+ |
+promise_test(function(t) { |
+ var animation = |
+ new Animation(new KeyframeEffect(createDiv(t), null, 100 * MS_PER_SEC), |
+ null); |
+ |
+ return animation.ready.then(function() { |
+ assert_equals(animation.currentTime, null); |
+ }); |
+}, 'The current time is unresolved when there is no associated timeline ' + |
+ '(and no hold time is set)'); |
+ |
+// FIXME: Test that the current time is unresolved when we have an inactive |
+// timeline if we find a way of creating an inactive timeline! |
+ |
+test(function(t) { |
+ var animation = |
+ new Animation(new KeyframeEffect(createDiv(t), null, 100 * MS_PER_SEC), |
+ document.timeline); |
+ |
+ animation.startTime = null; |
+ assert_equals(animation.currentTime, null); |
+}, 'The current time is unresolved when the start time is unresolved ' + |
+ '(and no hold time is set)'); |
+ |
+promise_test(function(t) { |
+ var animation = |
+ new Animation(new KeyframeEffect(createDiv(t), null, 100 * MS_PER_SEC), |
+ document.timeline); |
+ |
+ animation.playbackRate = 2; |
+ animation.startTime = document.timeline.currentTime - 25 * MS_PER_SEC; |
+ |
+ var timelineTime = document.timeline.currentTime; |
+ var startTime = animation.startTime; |
+ var playbackRate = animation.playbackRate; |
+ assert_times_equal(animation.currentTime, |
+ (timelineTime - startTime) * playbackRate, |
+ 'Animation has a unresolved start time'); |
+}, 'The current time is calculated from the timeline time, start time and ' + |
+ 'playback rate'); |
+</script> |
+</body> |