Bug 1467408 - (Part 2) Add test for keyword values in font editor UI. r=gl draft
authorRazvan Caliman <rcaliman@mozilla.com>
Tue, 26 Jun 2018 17:58:35 +0200
changeset 811211 c7248d8a56878b9f9af2104241dca42dd98f0c93
parent 810855 7b5f7aa4fc85e3f7c1076dbf2266042d4f531cc9
push id114238
push userbmo:rcaliman@mozilla.com
push dateWed, 27 Jun 2018 08:27:27 +0000
reviewersgl
bugs1467408
milestone63.0a1
Bug 1467408 - (Part 2) Add test for keyword values in font editor UI. r=gl MozReview-Commit-ID: 2ROABhBBjFU
devtools/client/inspector/fonts/test/browser.ini
devtools/client/inspector/fonts/test/browser_fontinspector.html
devtools/client/inspector/fonts/test/browser_fontinspector_editor-keywords.js
--- a/devtools/client/inspector/fonts/test/browser.ini
+++ b/devtools/client/inspector/fonts/test/browser.ini
@@ -16,12 +16,13 @@ support-files =
   !/devtools/client/shared/test/test-actor-registry.js
 
 [browser_fontinspector.js]
 [browser_fontinspector_copy-URL.js]
 skip-if = !e10s # too slow on !e10s, logging fully serialized actors (Bug 1446595)
 subsuite = clipboard
 [browser_fontinspector_edit-previews.js]
 [browser_fontinspector_editor-values.js]
+[browser_fontinspector_editor-keywords.js]
 [browser_fontinspector_expand-css-code.js]
 [browser_fontinspector_other-fonts.js]
 [browser_fontinspector_reveal-in-page.js]
 [browser_fontinspector_theme-change.js]
--- a/devtools/client/inspector/fonts/test/browser_fontinspector.html
+++ b/devtools/client/inspector/fonts/test/browser_fontinspector.html
@@ -32,16 +32,17 @@
   }
   .normal-text {
     font-family: barnormal;
     font-weight: normal;
   }
   .bold-text {
     font-family: bar;
     font-weight: bold;
+    font-size: inherit;
   }
   .black-text {
     font-family: bar;
     font-weight: 800;
   }
 </style>
 
 <body>
new file mode 100644
--- /dev/null
+++ b/devtools/client/inspector/fonts/test/browser_fontinspector_editor-keywords.js
@@ -0,0 +1,43 @@
+/* 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";
+
+// Test that keyword values for font properties don't show up in the font editor,
+// but their computed style values show up instead.
+
+const TEST_URI = URL_ROOT + "browser_fontinspector.html";
+
+add_task(async function() {
+  await pushPref("devtools.inspector.fonteditor.enabled", true);
+  const { inspector, view } = await openFontInspectorForURL(TEST_URI);
+  const viewDoc = view.document;
+
+  await testKeywordValues(inspector, viewDoc);
+});
+
+function getPropertyValue(viewDoc, name) {
+  const selector = `#font-editor .font-value-slider[name=${name}]`;
+  return {
+    value: viewDoc.querySelector(selector).value,
+    // Ensure unit dropdown exists before querying its value
+    unit: viewDoc.querySelector(selector + ` ~ .font-unit-select`) &&
+          viewDoc.querySelector(selector + ` ~ .font-unit-select`).value
+  };
+}
+
+async function testKeywordValues(inspector, viewDoc) {
+  await selectNode(".bold-text", inspector);
+
+  info("Check font-weight shows its computed style instead of the bold keyword value.");
+  const fontWeight = getPropertyValue(viewDoc, "font-weight");
+  isnot(fontWeight.value, "bold", "Font weight is not shown as keyword");
+  is(fontWeight.value, "700", "Font weight is shown as computed style");
+
+  info("Check font-size shows its computed style instead of the inherit keyword value.");
+  const fontSize = getPropertyValue(viewDoc, "font-size");
+  isnot(fontSize.unit, "inherit", "Font size unit is not shown as keyword");
+  is(fontSize.unit, "px", "Font size unit is shown as computed style");
+  is(fontSize.value + fontSize.unit, "36px", "Font size is read as computed style");
+}