56 lines
1.8 KiB
HTML
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>
|