1
0
Fork 0
firefox/testing/web-platform/tests/svg/animations/scripted/SVGAnimationElement-getStartTime.html
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

56 lines
1.8 KiB
HTML

<!DOCTYPE html>
<title>SVGAnimationElement.getStartTime() returns the start time of the current interval.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<svg height="0">
<animate attributeName="visibility" begin="1s; 3s" dur="1s"/>
<animate attributeName="visibility" begin="1s; 3s" dur="1s" fill="freeze"/>
</svg>
<script>
setup(function() {
window.animationElements = document.querySelectorAll('animate');
window.timeContainer = document.querySelector('svg');
});
function checkStartTime(values, t) {
assert_equals(animationElements[0].getStartTime(), values[0],
'start time @ ' + t);
assert_equals(animationElements[1].getStartTime(), values[1],
'start time @ ' + t);
}
function checkHasNoCurrentInterval(t) {
assert_throws_dom('InvalidStateError', () => {
animationElements[0].getStartTime()
}, 'no interval @ ' + t);
assert_throws_dom('InvalidStateError', () => {
animationElements[1].getStartTime()
}, 'no interval @ ' + t);
}
async_test(t => {
timeContainer.pauseAnimations();
// Wait for the timeline to start.
onload = t.step_func(() => {
t.step_timeout(function() {
assert_equals(timeContainer.getCurrentTime(), 0);
checkStartTime([1, 1], 0);
timeContainer.setCurrentTime(1);
checkStartTime([1, 1], 1);
timeContainer.setCurrentTime(1.5);
checkStartTime([1, 1], 1.5);
timeContainer.setCurrentTime(2);
checkStartTime([3, 3], 2);
timeContainer.setCurrentTime(2.5);
checkStartTime([3, 3], 2.5);
timeContainer.setCurrentTime(3);
checkStartTime([3, 3], 3);
timeContainer.setCurrentTime(4);
checkHasNoCurrentInterval(4);
timeContainer.setCurrentTime(5);
checkHasNoCurrentInterval(5);
t.done();
}, 0);
});
});
</script>