summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/animation/test/browser_animation_logic_adjust-time-with-playback-rate.js
blob: ad356cadd2a0d39d1123a1d873526159fa7ee8d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* 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"
  );
  clickOnPauseResumeButton(animationInspector, panel);
  await waitUntilAnimationsPlayState(animationInspector, "paused");
  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 selectNode(".div2", inspector);
  await waitUntil(() => panel.querySelectorAll(".animation-item").length === 1);
  await changePlaybackRateSelector(animationInspector, panel, 10);

  info("Check each adjusted result of animations after selecting 'body' again");
  await selectNode("body", inspector);
  await waitUntil(() => panel.querySelectorAll(".animation-item").length === 2);

  checkAdjustingTheTime(
    animationInspector.state.animations[0].state,
    animationInspector.state.animations[1].state
  );

  await waitUntil(
    () => animationInspector.state.animations[0].state.currentTime === 50000
  );
  ok(true, "The current time of '.div1' animation is 50%");

  await waitUntil(
    () => animationInspector.state.animations[1].state.currentTime === 50000
  );
  ok(true, "The current time of '.div2' animation is 50%");
});