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

"use strict";

// Test whether the animation items in the list were selectable.

add_task(async function () {
  await addTab(URL_ROOT + "doc_simple_animation.html");
  await removeAnimatedElementsExcept([".animated", ".long"]);
  const { animationInspector, panel } = await openAnimationInspector();

  info("Checking whether 1st element will be selected");
  await clickOnAnimation(animationInspector, panel, 0);
  assertSelection(panel, [true, false]);

  info("Checking whether 2nd element will be selected");
  await clickOnAnimation(animationInspector, panel, 1);
  assertSelection(panel, [false, true]);

  info(
    "Checking whether all elements will be unselected after closing the detail pane"
  );
  clickOnDetailCloseButton(panel);
  assertSelection(panel, [false, false]);
});

function assertSelection(panel, expectedResult) {
  panel.querySelectorAll(".animation-item").forEach((item, index) => {
    const shouldSelected = expectedResult[index];
    is(
      item.classList.contains("selected"),
      shouldSelected,
      `Animation item[${index}] should ` +
        `${shouldSelected ? "" : "not"} have 'selected' class`
    );
  });
}