Bug 1315600 - Part 2: Add test. r=pbro, a=jcristau
authorDaisuke Akatsuka <daisuke@mozilla-japan.org>
Tue, 15 Nov 2016 14:10:22 +0900
changeset 352542 a2b6e3fc03729758f7935bfbb08a77a7839492b6
parent 352541 fd05a57731b62a2205a37a7ff1effa6080a5fbd1
child 352543 0057723898d4c2ab03bff9a991c5b8ddf5756064
push id6795
push userjlund@mozilla.com
push dateMon, 23 Jan 2017 14:19:46 +0000
treeherdermozilla-esr52@76101b503191 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerspbro, jcristau
bugs1315600
milestone52.0a2
Bug 1315600 - Part 2: Add test. r=pbro, a=jcristau MozReview-Commit-ID: B9AikFP5sEH
devtools/client/animationinspector/test/browser.ini
devtools/client/animationinspector/test/browser_animation_timeline_shows_name_label.js
--- a/devtools/client/animationinspector/test/browser.ini
+++ b/devtools/client/animationinspector/test/browser.ini
@@ -56,15 +56,16 @@ skip-if = os == "linux" && !debug # Bug 
 [browser_animation_timeline_rewind_button.js]
 [browser_animation_timeline_scrubber_exists.js]
 [browser_animation_timeline_scrubber_movable.js]
 [browser_animation_timeline_scrubber_moves.js]
 [browser_animation_timeline_setCurrentTime.js]
 [browser_animation_timeline_shows_delay.js]
 [browser_animation_timeline_shows_endDelay.js]
 [browser_animation_timeline_shows_iterations.js]
+[browser_animation_timeline_shows_name_label.js]
 [browser_animation_timeline_shows_time_info.js]
 [browser_animation_timeline_takes_rate_into_account.js]
 [browser_animation_timeline_ui.js]
 [browser_animation_toggle_button_resets_on_navigate.js]
 [browser_animation_toggle_button_toggles_animations.js]
 [browser_animation_toolbar_exists.js]
 [browser_animation_ui_updates_when_animation_data_changes.js]
new file mode 100644
--- /dev/null
+++ b/devtools/client/animationinspector/test/browser_animation_timeline_shows_name_label.js
@@ -0,0 +1,46 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+requestLongerTimeout(2);
+
+// Check the text content and width of name label.
+
+add_task(function* () {
+  yield addTab(URL_ROOT + "doc_simple_animation.html");
+  let {inspector, panel} = yield openAnimationInspector();
+
+  info("Selecting 'simple-animation' animation which is running on compositor");
+  yield selectNodeAndWaitForAnimations(".animated", inspector);
+  checkNameLabel(panel.animationsTimelineComponent.rootWrapperEl, "simple-animation");
+
+  info("Selecting 'no-compositor' animation which is not running on compositor");
+  yield selectNodeAndWaitForAnimations(".no-compositor", inspector);
+  checkNameLabel(panel.animationsTimelineComponent.rootWrapperEl, "no-compositor");
+});
+
+function checkNameLabel(rootWrapperEl, expectedLabelContent) {
+  const timeblockEl = rootWrapperEl.querySelector(".time-block");
+  const labelEl = rootWrapperEl.querySelector(".name div");
+  is(labelEl.textContent, expectedLabelContent,
+     `Text content of labelEl sould be ${ expectedLabelContent }`);
+
+  // Expand timeblockEl to avoid max-width of the label.
+  timeblockEl.style.width = "10000px";
+  const originalLabelWidth = labelEl.clientWidth;
+  ok(originalLabelWidth < timeblockEl.clientWidth / 2,
+     "Label width should be less than 50%");
+
+  // Set timeblockEl width to double of original label width.
+  timeblockEl.style.width = `${ originalLabelWidth * 2 }px`;
+  is(labelEl.clientWidth + labelEl.offsetLeft, originalLabelWidth,
+     `Label width + offsetLeft should be ${ originalLabelWidth }px`);
+
+  // Shrink timeblockEl to enable max-width.
+  timeblockEl.style.width = `${ originalLabelWidth }px`;
+  is(labelEl.clientWidth + labelEl.offsetLeft,
+     Math.round(timeblockEl.clientWidth / 2),
+     "Label width + offsetLeft should be half of timeblockEl");
+}