Bug 1468364 - Part 2. Add animation inspector test which checks the created time when changing the playback rate and current time. r=daisuke

MozReview-Commit-ID: HvLl67GaOhi

--HG--
extra : rebase_source : c3c4185eaa69b58661a9720d73576977e8326203
This commit is contained in:
Mantaroh Yoshinaga 2018-07-02 15:08:58 +09:00
parent 7da7ae2094
commit da14eeae31
4 changed files with 85 additions and 0 deletions

View File

@ -57,6 +57,8 @@ skip-if = (verify && !debug)
[browser_animation_keyframes-graph_keyframe-marker-rtl.js]
[browser_animation_keyframes-progress-bar.js]
[browser_animation_keyframes-progress-bar_after-resuming.js]
[browser_animation_logic_adjust-time.js]
[browser_animation_logic_adjust-time-with-playback-rate.js]
[browser_animation_logic_auto-stop.js]
[browser_animation_logic_avoid-updating-during-hiding.js]
[browser_animation_logic_created-time.js]

View File

@ -0,0 +1,34 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test adjusting the created time with different playback rate of animation.
add_task(async function() {
await addTab(URL_ROOT + "doc_custom_playback_rate.html");
const { animationInspector, inspector, panel } = await openAnimationInspector();
info("Pause the all animation and set current time to middle in order to check " +
"the adjusting time");
await clickOnPauseResumeButton(animationInspector, panel);
await clickOnCurrentTimeScrubberController(animationInspector, panel, 0.5);
info("Check the created times of all animation are same");
checkAdjustingTheTime(animationInspector.state.animations[0].state,
animationInspector.state.animations[1].state);
info("Change the playback rate to x10 after selecting '.div2'");
await selectNodeAndWaitForAnimations(".div2", inspector);
await clickOnPlaybackRateSelector(animationInspector, panel, 10);
info("Check each adjusted result of animations after selecting 'body' again");
await selectNodeAndWaitForAnimations("body", inspector);
checkAdjustingTheTime(animationInspector.state.animations[0].state,
animationInspector.state.animations[1].state);
is(animationInspector.state.animations[0].state.currentTime, 50000,
"The current time of '.div1' animation is 50%");
is(animationInspector.state.animations[1].state.currentTime, 50000,
"The current time of '.div2' animation is 50%");
});

View File

@ -0,0 +1,35 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test adjusting the created time with different current times of animation.
add_task(async function() {
await addTab(URL_ROOT + "doc_custom_playback_rate.html");
const { animationInspector, inspector, panel } = await openAnimationInspector();
info("Pause the all animation and set current time to middle time in order to " +
"check the adjusting time");
await clickOnPauseResumeButton(animationInspector, panel);
await clickOnCurrentTimeScrubberController(animationInspector, panel, 0.5);
info("Check the created times of all animation are same");
checkAdjustingTheTime(animationInspector.state.animations[0].state,
animationInspector.state.animations[1].state);
info("Change the current time to 75% after selecting '.div2'");
await selectNodeAndWaitForAnimations(".div2", inspector);
await clickOnCurrentTimeScrubberController(animationInspector, panel, 0.75);
info("Check each adjusted result of animations after selecting 'body' again");
await selectNodeAndWaitForAnimations("body", inspector);
checkAdjustingTheTime(animationInspector.state.animations[0].state,
animationInspector.state.animations[1].state);
is(animationInspector.state.animations[0].state.currentTime, 50000,
"The current time of '.div1' animation is 50%");
is(animationInspector.state.animations[1].state.currentTime, 75000,
"The current time of '.div2' animation is 75%");
});

View File

@ -821,3 +821,17 @@ async function testKeyframesGraphComputedValuePath(testData) {
}
}
}
/**
* Check the adjusted current time and created time from specified two animations.
*
* @param {AnimationPlayerFront.state} animation1
* @param {AnimationPlayerFront.state} animation2
*/
function checkAdjustingTheTime(animation1, animation2) {
const adjustedCurrentTimeDiff = animation2.currentTime / animation2.playbackRate
- animation1.currentTime / animation1.playbackRate;
const createdTimeDiff = animation1.createdTime - animation2.createdTime;
ok(Math.abs(adjustedCurrentTimeDiff - createdTimeDiff) < 0.1,
"Adjusted time is correct");
}