Bug 1473586: Reduce testing time and add requestLongerTimeout. r?gl draft
authorDaisuke Akatsuka <dakatsuka@mozilla.com>
Wed, 25 Jul 2018 12:28:03 +0900
changeset 822268 b1f63e96f5d5953acd3c9c61882b8c9c4c747d9f
parent 822234 dd386b5b9fa7f5cd6dc4bbbfa0503b3eb2969af5
push id117338
push userbmo:dakatsuka@mozilla.com
push dateWed, 25 Jul 2018 03:34:04 +0000
reviewersgl
bugs1473586
milestone63.0a1
Bug 1473586: Reduce testing time and add requestLongerTimeout. r?gl MozReview-Commit-ID: 75EaEwkISrY
devtools/client/inspector/animation/test/browser_animation_summary-graph_compositor.js
--- a/devtools/client/inspector/animation/test/browser_animation_summary-graph_compositor.js
+++ b/devtools/client/inspector/animation/test/browser_animation_summary-graph_compositor.js
@@ -1,47 +1,46 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Test that when animations displayed in the timeline are running on the
 // compositor, they get a special icon and information in the tooltip.
 
+requestLongerTimeout(2);
+
 add_task(async function() {
   await addTab(URL_ROOT + "doc_simple_animation.html");
   await removeAnimatedElementsExcept(
     [".compositor-all", ".compositor-notall", ".no-compositor"]);
   const { animationInspector, inspector, panel } = await openAnimationInspector();
 
-  info("Select a test node we know has an animation running on the compositor");
-  await selectNodeAndWaitForAnimations(".compositor-all", inspector);
-
-  const summaryGraphEl = panel.querySelector(".animation-summary-graph");
-  ok(summaryGraphEl.classList.contains("compositor"),
+  info("Check animation whose all properties are running on compositor");
+  const summaryGraphAllEl = findSummaryGraph(".compositor-all", panel);
+  ok(summaryGraphAllEl.classList.contains("compositor"),
     "The element has the compositor css class");
-  ok(hasTooltip(summaryGraphEl,
+  ok(hasTooltip(summaryGraphAllEl,
                 ANIMATION_L10N.getStr("player.allPropertiesOnCompositorTooltip")),
      "The element has the right tooltip content");
 
-  info("Select a node we know doesn't have an animation on the compositor");
-  await selectNodeAndWaitForAnimations(".no-compositor", inspector);
-
-  ok(!summaryGraphEl.classList.contains("compositor"),
+  info("Check animation is not running on compositor");
+  const summaryGraphNoEl = findSummaryGraph(".no-compositor", panel);
+  ok(!summaryGraphNoEl.classList.contains("compositor"),
     "The element does not have the compositor css class");
-  ok(!hasTooltip(summaryGraphEl,
+  ok(!hasTooltip(summaryGraphNoEl,
                  ANIMATION_L10N.getStr("player.allPropertiesOnCompositorTooltip")),
      "The element does not have oncompositor tooltip content");
-  ok(!hasTooltip(summaryGraphEl,
+  ok(!hasTooltip(summaryGraphNoEl,
                  ANIMATION_L10N.getStr("player.somePropertiesOnCompositorTooltip")),
      "The element does not have oncompositor tooltip content");
 
-  info("Select a node we know has animation on the compositor and not on the compositor");
+  info("Select a node has animation whose some properties are running on compositor");
   await selectNodeAndWaitForAnimations(".compositor-notall", inspector);
-
+  const summaryGraphEl = panel.querySelector(".animation-summary-graph");
   ok(summaryGraphEl.classList.contains("compositor"),
     "The element has the compositor css class");
   ok(hasTooltip(summaryGraphEl,
                 ANIMATION_L10N.getStr("player.somePropertiesOnCompositorTooltip")),
      "The element has the right tooltip content");
 
   info("Check compositor sign after pausing");
   await clickOnPauseResumeButton(animationInspector, panel);
@@ -66,12 +65,17 @@ add_task(async function() {
   ok(!summaryGraphEl.classList.contains("compositor"),
     "The element should not have the compositor css class " +
     "after setting the current time");
   await clickOnPauseResumeButton(animationInspector, panel);
   ok(summaryGraphEl.classList.contains("compositor"),
     "The element should have the compositor css class after resuming");
 });
 
+function findSummaryGraph(selector, panel) {
+  const animationItemEl = findAnimationItemElementsByTargetSelector(panel, selector);
+  return animationItemEl.querySelector(".animation-summary-graph");
+}
+
 function hasTooltip(summaryGraphEl, expected) {
   const tooltip = summaryGraphEl.getAttribute("title");
   return tooltip.includes(expected);
 }