summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/svg/animations/scripted/SVGAnimationElement-getStartTime.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/svg/animations/scripted/SVGAnimationElement-getStartTime.html')
-rw-r--r--testing/web-platform/tests/svg/animations/scripted/SVGAnimationElement-getStartTime.html56
1 files changed, 56 insertions, 0 deletions
diff --git a/testing/web-platform/tests/svg/animations/scripted/SVGAnimationElement-getStartTime.html b/testing/web-platform/tests/svg/animations/scripted/SVGAnimationElement-getStartTime.html
new file mode 100644
index 0000000000..fec3ff4db2
--- /dev/null
+++ b/testing/web-platform/tests/svg/animations/scripted/SVGAnimationElement-getStartTime.html
@@ -0,0 +1,56 @@
+<!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>