summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/animation/test/browser_animation_timing_negative-playback-rate_current-time-scrubber.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/animation/test/browser_animation_timing_negative-playback-rate_current-time-scrubber.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/devtools/client/inspector/animation/test/browser_animation_timing_negative-playback-rate_current-time-scrubber.js b/devtools/client/inspector/animation/test/browser_animation_timing_negative-playback-rate_current-time-scrubber.js
new file mode 100644
index 0000000000..f9906329ea
--- /dev/null
+++ b/devtools/client/inspector/animation/test/browser_animation_timing_negative-playback-rate_current-time-scrubber.js
@@ -0,0 +1,46 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// Test whether the scrubber was working in case of negative playback rate.
+
+add_task(async function () {
+ await addTab(URL_ROOT + "doc_negative_playback_rate.html");
+ await removeAnimatedElementsExcept([".normal"]);
+ 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;
+ const initialProgressBarX = getProgressBarX(panel);
+
+ info("Check whether the animation currentTime was decreased");
+ clickOnCurrentTimeScrubberController(animationInspector, panel, 0.5);
+ await waitUntilCurrentTimeChangedAt(
+ animationInspector,
+ animationInspector.state.timeScale.getDuration() * 0.5
+ );
+ ok(
+ initialCurrentTime >
+ animationInspector.state.animations[0].state.currentTime,
+ "currentTime should be decreased"
+ );
+
+ info("Check whether the progress bar was moved to left");
+ ok(
+ initialProgressBarX > getProgressBarX(panel),
+ "Progress bar should be moved to left"
+ );
+});
+
+function getProgressBarX(panel) {
+ 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;
+ return barX;
+}