diff options
Diffstat (limited to 'devtools/client/animationinspector/test/browser_animation_keyframe_click_to_set_time.js')
-rw-r--r-- | devtools/client/animationinspector/test/browser_animation_keyframe_click_to_set_time.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/devtools/client/animationinspector/test/browser_animation_keyframe_click_to_set_time.js b/devtools/client/animationinspector/test/browser_animation_keyframe_click_to_set_time.js new file mode 100644 index 000000000..ba700b7a5 --- /dev/null +++ b/devtools/client/animationinspector/test/browser_animation_keyframe_click_to_set_time.js @@ -0,0 +1,52 @@ +/* vim: set ts=2 et sw=2 tw=80: */ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Test that animated properties' keyframes can be clicked, and that doing so +// sets the current time in the timeline. + +add_task(function* () { + yield addTab(URL_ROOT + "doc_keyframes.html"); + let {panel} = yield openAnimationInspector(); + let timeline = panel.animationsTimelineComponent; + let {scrubberEl} = timeline; + + // XXX: The scrollbar is placed in the timeline in such a way that it causes + // the animations to be slightly offset with the header when it appears. + // So for now, let's hide the scrollbar. Bug 1229340 should fix this. + timeline.animationsEl.style.overflow = "hidden"; + + info("Expand the animation"); + yield clickOnAnimation(panel, 0); + + info("Click on the first keyframe of the first animated property"); + yield clickKeyframe(panel, 0, "background-color", 0); + + info("Make sure the scrubber stopped moving and is at the right position"); + yield assertScrubberMoving(panel, false); + checkScrubberPos(scrubberEl, 0); + + info("Click on a keyframe in the middle"); + yield clickKeyframe(panel, 0, "transform", 2); + + info("Make sure the scrubber is at the right position"); + checkScrubberPos(scrubberEl, 50); +}); + +function* clickKeyframe(panel, animIndex, property, index) { + let keyframeComponent = getKeyframeComponent(panel, animIndex, property); + let keyframeEl = getKeyframeEl(panel, animIndex, property, index); + + let onSelect = keyframeComponent.once("frame-selected"); + EventUtils.sendMouseEvent({type: "click"}, keyframeEl, + keyframeEl.ownerDocument.defaultView); + yield onSelect; +} + +function checkScrubberPos(scrubberEl, pos) { + let newPos = Math.round(parseFloat(scrubberEl.style.left)); + let expectedPos = Math.round(pos); + is(newPos, expectedPos, `The scrubber is at ${pos}%`); +} |