/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; // Test whether the scrubber was working for even the animation of infinity duration. add_task(async function () { await addTab(URL_ROOT + "doc_infinity_duration.html"); await removeAnimatedElementsExcept([".infinity-delay-iteration-start"]); const { animationInspector, panel } = await openAnimationInspector(); info("Set initial state"); clickOnCurrentTimeScrubberController(animationInspector, panel, 0); await waitUntilAnimationsPlayState(animationInspector, "paused"); const initialCurrentTime = animationInspector.state.animations[0].state.currentTime; info("Check whether the animation currentTime was increased"); clickOnCurrentTimeScrubberController(animationInspector, panel, 1); await waitUntil( () => initialCurrentTime < animationInspector.state.animations[0].state.currentTime ); ok(true, "currentTime should be increased"); info("Check whether the progress bar was moved"); const areaEl = panel.querySelector(".keyframes-progress-bar-area"); const barEl = areaEl.querySelector(".keyframes-progress-bar"); const controllerBounds = areaEl.getBoundingClientRect(); const barBounds = barEl.getBoundingClientRect(); const barX = barBounds.x + barBounds.width / 2 - controllerBounds.x; const expectedBarX = controllerBounds.width * 0.5; Assert.less( Math.abs(barX - expectedBarX), 1, "Progress bar should indicate at progress of 0.5" ); });