summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/test/browser_inspector_highlighter-cssshape_01.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/test/browser_inspector_highlighter-cssshape_01.js95
1 files changed, 95 insertions, 0 deletions
diff --git a/devtools/client/inspector/test/browser_inspector_highlighter-cssshape_01.js b/devtools/client/inspector/test/browser_inspector_highlighter-cssshape_01.js
new file mode 100644
index 0000000000..ae4e968263
--- /dev/null
+++ b/devtools/client/inspector/test/browser_inspector_highlighter-cssshape_01.js
@@ -0,0 +1,95 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+// Test the creation of the CSS shapes highlighter.
+
+const TEST_URL = URL_ROOT + "doc_inspector_highlighter_cssshapes.html";
+const HIGHLIGHTER_TYPE = "ShapesHighlighter";
+const SHAPE_IDS = ["polygon", "ellipse", "rect"];
+const SHAPE_TYPES = [
+ {
+ shapeName: "polygon",
+ highlighter: "polygon",
+ },
+ {
+ shapeName: "circle",
+ highlighter: "ellipse",
+ },
+ {
+ shapeName: "ellipse",
+ highlighter: "ellipse",
+ },
+ {
+ shapeName: "inset",
+ highlighter: "rect",
+ },
+];
+
+add_task(async function () {
+ const { inspector, highlighterTestFront } = await openInspectorForURL(
+ TEST_URL
+ );
+ const front = inspector.inspectorFront;
+ const highlighter = await front.getHighlighterByType(HIGHLIGHTER_TYPE);
+
+ await isHiddenByDefault(highlighterTestFront, highlighter);
+ await isVisibleWhenShown(highlighterTestFront, inspector, highlighter);
+
+ await highlighter.finalize();
+});
+
+async function getShapeHidden(highlighterTestFront, highlighterFront) {
+ const hidden = {};
+ for (const shape of SHAPE_IDS) {
+ hidden[shape] = await highlighterTestFront.getHighlighterNodeAttribute(
+ "shapes-" + shape,
+ "hidden",
+ highlighterFront
+ );
+ }
+ return hidden;
+}
+
+async function isHiddenByDefault(highlighterTestFront, highlighterFront) {
+ info("Checking that highlighter is hidden by default");
+
+ const polygonHidden = await highlighterTestFront.getHighlighterNodeAttribute(
+ "shapes-polygon",
+ "hidden",
+ highlighterFront
+ );
+ const ellipseHidden = await highlighterTestFront.getHighlighterNodeAttribute(
+ "shapes-ellipse",
+ "hidden",
+ highlighterFront
+ );
+ ok(polygonHidden && ellipseHidden, "The highlighter is hidden by default");
+}
+
+async function isVisibleWhenShown(
+ highlighterTestFront,
+ inspector,
+ highlighterFront
+) {
+ for (const { shapeName, highlighter } of SHAPE_TYPES) {
+ info(`Asking to show the highlighter on the ${shapeName} node`);
+
+ const node = await getNodeFront(`#${shapeName}`, inspector);
+ await highlighterFront.show(node, { mode: "cssClipPath" });
+
+ const hidden = await getShapeHidden(highlighterTestFront, highlighterFront);
+ ok(!hidden[highlighter], `The ${shapeName} highlighter is visible`);
+ }
+
+ info("Hiding the highlighter");
+ await highlighterFront.hide();
+
+ const hidden = await getShapeHidden(highlighterTestFront, highlighterFront);
+ ok(
+ hidden.polygon && hidden.ellipse && hidden.rect,
+ "The highlighter is hidden"
+ );
+}