summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/test/browser_toolbox_selectionchanged_event.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/framework/test/browser_toolbox_selectionchanged_event.js')
-rw-r--r--devtools/client/framework/test/browser_toolbox_selectionchanged_event.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/devtools/client/framework/test/browser_toolbox_selectionchanged_event.js b/devtools/client/framework/test/browser_toolbox_selectionchanged_event.js
new file mode 100644
index 0000000000..e4e0dcc446
--- /dev/null
+++ b/devtools/client/framework/test/browser_toolbox_selectionchanged_event.js
@@ -0,0 +1,40 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const PAGE_URL = "data:text/html;charset=utf-8,<body><div></div></body>";
+
+add_task(async function () {
+ const tab = await addTab(PAGE_URL);
+ const toolbox = await openToolboxForTab(tab, "inspector", "bottom");
+ const inspector = toolbox.getCurrentPanel();
+
+ const root = await inspector.walker.getRootNode();
+ const body = await inspector.walker.querySelector(root, "body");
+ const node = await inspector.walker.querySelector(root, "div");
+
+ is(inspector.selection.nodeFront, body, "Body is selected by default");
+
+ // Listen to selection changed
+ const onSelectionChanged = toolbox.once("selection-changed");
+
+ info("Select the div and wait for the selection-changed event to be fired.");
+ inspector.selection.setNodeFront(node, { reason: "browser-context-menu" });
+
+ await onSelectionChanged;
+
+ is(inspector.selection.nodeFront, node, "Div is now selected");
+
+ // Listen to cleared selection changed
+ const onClearSelectionChanged = toolbox.once("selection-changed");
+
+ info(
+ "Clear the selection and wait for the selection-changed event to be fired."
+ );
+ inspector.selection.setNodeFront(null);
+
+ await onClearSelectionChanged;
+
+ is(inspector.selection.nodeFront, null, "The selection is null as expected");
+});