diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:35:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:35:49 +0000 |
commit | d8bbc7858622b6d9c278469aab701ca0b609cddf (patch) | |
tree | eff41dc61d9f714852212739e6b3738b82a2af87 /testing/web-platform/tests/web-animations/interfaces/Animation/progress.tentative.html | |
parent | Releasing progress-linux version 125.0.3-1~progress7.99u1. (diff) | |
download | firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip |
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/web-animations/interfaces/Animation/progress.tentative.html')
-rw-r--r-- | testing/web-platform/tests/web-animations/interfaces/Animation/progress.tentative.html | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/testing/web-platform/tests/web-animations/interfaces/Animation/progress.tentative.html b/testing/web-platform/tests/web-animations/interfaces/Animation/progress.tentative.html new file mode 100644 index 0000000000..38f37cbfeb --- /dev/null +++ b/testing/web-platform/tests/web-animations/interfaces/Animation/progress.tentative.html @@ -0,0 +1,81 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Animation.progress</title> +<link rel="help" +href="https://drafts.csswg.org/web-animations-2/#the-progress-of-an-animation"> +<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(t => { + const animation = new Animation(null); + animation.startTime = document.timeline.currentTime; + assert_time_equals_literal(animation.currentTime, 0, 'currentTime is zero'); + assert_equals(animation.progress, null, 'progress is unresolved'); +}, 'progress of a newly created animation without an effect is unresolved'); + +test(t => { + // currentTime should be unresolved because the animation has no associated + // timeline. + const animation = new Animation(new KeyframeEffect(createDiv(t), null), null); + assert_equals(animation.currentTime, null, 'currentTime is unresolved'); + assert_equals(animation.progress, null, 'progress is unresolved'); +}, 'progress of an animation whose currentTime is unresolved is unresolved.'); + +test(t => { + const animation = new Animation(new KeyframeEffect(createDiv(t), null, + { duration: 0 }), document.timeline); + // Set the startTime to 20 seconds into the future. + animation.startTime = document.timeline.currentTime + 20 * MS_PER_SEC; + assert_less_than(animation.currentTime, 0, 'currentTime is negative'); + assert_approx_equals(animation.progress, 0, 0.01, 'progress is zero'); +}, "progress of an animation whose effect's endTime is zero is zero if its " + + "currentTime is negative."); + +test(t => { + const animation = new Animation(new KeyframeEffect(createDiv(t), null, + { duration: 0 }), document.timeline); + animation.startTime = document.timeline.currentTime; + assert_time_equals_literal(animation.currentTime, 0, 'currentTime is zero'); + assert_approx_equals(animation.progress, 1, 0.01, 'progress is one'); + + animation.startTime = document.timeline.currentTime - 20 * MS_PER_SEC; + assert_greater_than(animation.currentTime, 0, 'currentTime greater than zero'); + assert_approx_equals(animation.progress, 1, 0.01, 'progress is one'); +}, "progress of an animation whose effect's endTime is zero is one if its " + + "currentTime is non-negative."); + +test(t => { + const animation = new Animation(new KeyframeEffect(createDiv(t), null, + { duration: Infinity }), document.timeline); + + animation.startTime = document.timeline.currentTime - 20 * MS_PER_SEC; + assert_greater_than(animation.currentTime, 0, 'currentTime is positive'); + assert_approx_equals(animation.progress, 0, 0.01, 'progress is zero'); +}, "progress of an animation whose effect's endTime is infinity is zero."); + +test(t => { + const animation = new Animation(new KeyframeEffect(createDiv(t), null, + 200 * MS_PER_SEC), document.timeline); + animation.playbackRate = 2; + + animation.startTime = document.timeline.currentTime - 50 * MS_PER_SEC; + assert_time_equals_literal(animation.currentTime, 100 * MS_PER_SEC, 'currentTime is 100s'); + assert_approx_equals(animation.progress, 0.5, 0.01, 'progress is zero'); + + animation.startTime = document.timeline.currentTime - 100 * MS_PER_SEC; + assert_time_equals_literal(animation.currentTime, 200 * MS_PER_SEC, 'currentTime is 200s'); + assert_approx_equals(animation.progress, 1, 0.01, 'progress is one'); + + animation.startTime = document.timeline.currentTime - 150 * MS_PER_SEC; + assert_time_equals_literal(animation.currentTime, 300 * MS_PER_SEC, 'currentTime is 300s'); + assert_approx_equals(animation.progress, 1, 0.01, 'progress is still one'); +}, "progress of an animation is calculated by currentTime / effect endTime."); + +</script> +</body> |