summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/animation/test/browser_animation_animation-detail_visibility.js
blob: 14f406a1a34b55687965b3af4c46d5cf380743cf (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
51
52
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

// Test that whether animations detail could be displayed if there is selected animation.

add_task(async function () {
  await addTab(URL_ROOT + "doc_custom_playback_rate.html");
  const { animationInspector, inspector, panel } =
    await openAnimationInspector();

  info("Checking animation detail visibility if animation was unselected");
  const detailEl = panel.querySelector("#animation-container .controlled");
  ok(detailEl, "The detail pane should be in the DOM");
  await assertDisplayStyle(detailEl, true, "detailEl should be unvisibled");

  info(
    "Checking animation detail visibility if animation was selected by click"
  );
  await clickOnAnimation(animationInspector, panel, 0);
  await assertDisplayStyle(detailEl, false, "detailEl should be visibled");

  info(
    "Checking animation detail visibility when choose node which has animations"
  );
  await selectNode("html", inspector);
  await assertDisplayStyle(
    detailEl,
    true,
    "detailEl should be unvisibled after choose html node"
  );

  info(
    "Checking animation detail visibility when choose node which has an animation"
  );
  await selectNode("div", inspector);
  await assertDisplayStyle(
    detailEl,
    false,
    "detailEl should be visibled after choose .cssanimation-normal node"
  );
});

async function assertDisplayStyle(detailEl, isNoneExpected, description) {
  const win = detailEl.ownerGlobal;
  await waitUntil(() => {
    const isNone = win.getComputedStyle(detailEl).display === "none";
    return isNone === isNoneExpected;
  });
  ok(true, description);
}