53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
requestLongerTimeout(2);
|
|
|
|
// Verify that if the animation's duration, iterations or delay change in
|
|
// content, then the widget reflects the changes.
|
|
|
|
add_task(function* () {
|
|
yield addTab(URL_ROOT + "doc_simple_animation.html");
|
|
let {panel, controller, inspector} = yield openAnimationInspector();
|
|
|
|
info("Select the test node");
|
|
yield selectNodeAndWaitForAnimations(".animated", inspector);
|
|
|
|
let animation = controller.animationPlayers[0];
|
|
yield setStyle(animation, panel, "animationDuration", "5.5s");
|
|
yield setStyle(animation, panel, "animationIterationCount", "300");
|
|
yield setStyle(animation, panel, "animationDelay", "45s");
|
|
|
|
let animationsEl = panel.animationsTimelineComponent.animationsEl;
|
|
let timeBlockEl = animationsEl.querySelector(".time-block");
|
|
|
|
// 45s delay + (300 * 5.5)s duration
|
|
let expectedTotalDuration = 1695 * 1000;
|
|
|
|
// XXX: the nb and size of each iteration cannot be tested easily (displayed
|
|
// using a linear-gradient background and capped at 2px wide). They should
|
|
// be tested in bug 1173761.
|
|
let delayWidth = parseFloat(timeBlockEl.querySelector(".delay").style.width);
|
|
is(Math.round(delayWidth * expectedTotalDuration / 100), 45 * 1000,
|
|
"The timeline has the right delay");
|
|
});
|
|
|
|
function* setStyle(animation, panel, name, value) {
|
|
info("Change the animation style via the content DOM. Setting " +
|
|
name + " to " + value);
|
|
|
|
let onAnimationChanged = once(animation, "changed");
|
|
yield executeInContent("devtools:test:setStyle", {
|
|
selector: ".animated",
|
|
propertyName: name,
|
|
propertyValue: value
|
|
});
|
|
yield onAnimationChanged;
|
|
|
|
// Also wait for the target node previews to be loaded if the panel got
|
|
// refreshed as a result of this animation mutation.
|
|
yield waitForAllAnimationTargets(panel);
|
|
}
|