Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'linux' && os_version == '18.04' && processor == 'x86_64' && a11y_checks
- Manifest: devtools/client/inspector/animation/test/browser.toml
/* Any copyright is dedicated to the Public Domain.
"use strict";
// Test whether the indication bar of both scrubber and progress bar indicates correct
// progress after resizing animation inspector.
add_task(async function () {
await pushPref("devtools.inspector.three-pane-enabled", false);
await addTab(URL_ROOT + "doc_simple_animation.html");
await removeAnimatedElementsExcept([".animated"]);
const { animationInspector, inspector, panel } =
await openAnimationInspector();
info("Checking timeline tick item elements after enlarge sidebar width");
clickOnCurrentTimeScrubberController(animationInspector, panel, 0.5);
await waitUntilAnimationsPlayState(animationInspector, "paused");
await setSidebarWidth("100%", inspector);
assertPosition(".current-time-scrubber", panel, 0.5);
assertPosition(".keyframes-progress-bar", panel, 0.5);
});
/**
* Assert indication bar position.
*
* @param {String} indicationBarSelector
* @param {Element} panel
* @param {Number} expectedPositionRate
*/
function assertPosition(indicationBarSelector, panel, expectedPositionRate) {
const barEl = panel.querySelector(indicationBarSelector);
const parentEl = barEl.parentNode;
const rectBar = barEl.getBoundingClientRect();
const rectParent = parentEl.getBoundingClientRect();
const barX = rectBar.x + rectBar.width * 0.5 - rectParent.x;
const expectedPosition = rectParent.width * expectedPositionRate;
ok(
expectedPosition - 1 <= barX && barX <= expectedPosition + 1,
`Indication bar position should be approximately ${expectedPosition}`
);
}