mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:07:35 +00:00
35 lines
1.3 KiB
HTML
35 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<div id="foo"></div>
|
|
<script src="../../include.js"></script>
|
|
<script>
|
|
asyncTest(async done => {
|
|
const wait = async (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
|
|
const foo = document.getElementById("foo");
|
|
const animation = foo.animate({ opacity: [0, 1] }, { duration: 1000 });
|
|
animation.playbackRate = 2;
|
|
|
|
// Allow 50ms of error for each test
|
|
await wait(100);
|
|
if (animation.currentTime >= 150 && animation.currentTime <= 250)
|
|
println("Animation has expected currentTime value after 100ms");
|
|
|
|
animation.playbackRate = 0.5;
|
|
await wait(100);
|
|
if (animation.currentTime >= 200 && animation.currentTime <= 300)
|
|
println("Animation has expected currentTime value after 200ms");
|
|
|
|
animation.playbackRate = -1;
|
|
await wait(100);
|
|
if (animation.currentTime >= 100 && animation.currentTime <= 200)
|
|
println("Animation has expected currentTime value after 300ms");
|
|
|
|
animation.playbackRate = 0;
|
|
const originalTime = animation.currentTime;
|
|
await wait(100);
|
|
if (animation.currentTime === originalTime)
|
|
println("Animation has expected currentTime value after 400ms");
|
|
|
|
done();
|
|
});
|
|
</script>
|