diff options
Diffstat (limited to 'testing/web-platform/tests/web-animations/resources/timing-utils.js')
-rw-r--r-- | testing/web-platform/tests/web-animations/resources/timing-utils.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/testing/web-platform/tests/web-animations/resources/timing-utils.js b/testing/web-platform/tests/web-animations/resources/timing-utils.js new file mode 100644 index 0000000000..fba62a1f6d --- /dev/null +++ b/testing/web-platform/tests/web-animations/resources/timing-utils.js @@ -0,0 +1,52 @@ +'use strict'; + +// ======================================= +// +// Utility functions for testing timing +// +// ======================================= + + +// ------------------------------ +// Helper functions +// ------------------------------ + +// Utility function to check that a subset of timing properties have their +// default values. +function assert_default_timing_except(effect, propertiesToSkip) { + const defaults = { + delay: 0, + endDelay: 0, + fill: 'auto', + iterationStart: 0, + iterations: 1, + duration: 'auto', + direction: 'normal', + easing: 'linear', + }; + + for (const prop of Object.keys(defaults)) { + if (propertiesToSkip.includes(prop)) { + continue; + } + + assert_equals( + effect.getTiming()[prop], + defaults[prop], + `${prop} parameter has default value:` + ); + } +} + +function waitForAnimationTime(animation, time) { + return new Promise((resolve) => { + function raf() { + if (animation.currentTime < time) { + requestAnimationFrame(raf); + } else { + resolve(); + } + } + requestAnimationFrame(raf); + }); +} |