summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/test/browser_inspector_addNode_02.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/client/inspector/test/browser_inspector_addNode_02.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/inspector/test/browser_inspector_addNode_02.js')
-rw-r--r--devtools/client/inspector/test/browser_inspector_addNode_02.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/devtools/client/inspector/test/browser_inspector_addNode_02.js b/devtools/client/inspector/test/browser_inspector_addNode_02.js
new file mode 100644
index 000000000..2421f9df3
--- /dev/null
+++ b/devtools/client/inspector/test/browser_inspector_addNode_02.js
@@ -0,0 +1,63 @@
+/* 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 the add node button and context menu items have the right state
+// depending on the current selection.
+
+const TEST_URL = URL_ROOT + "doc_inspector_add_node.html";
+
+add_task(function* () {
+ let {inspector} = yield openInspectorForURL(TEST_URL);
+
+ info("Select the DOCTYPE element");
+ let {nodes} = yield inspector.walker.children(inspector.walker.rootNode);
+ yield selectNode(nodes[0], inspector);
+ assertState(false, inspector,
+ "The button and item are disabled on DOCTYPE");
+
+ info("Select the ::before pseudo-element");
+ let body = yield getNodeFront("body", inspector);
+ ({nodes} = yield inspector.walker.children(body));
+ yield selectNode(nodes[0], inspector);
+ assertState(false, inspector,
+ "The button and item are disabled on a pseudo-element");
+
+ info("Select the svg element");
+ yield selectNode("svg", inspector);
+ assertState(false, inspector,
+ "The button and item are disabled on a SVG element");
+
+ info("Select the div#foo element");
+ yield selectNode("#foo", inspector);
+ assertState(true, inspector,
+ "The button and item are enabled on a DIV element");
+
+ info("Select the documentElement element (html)");
+ yield selectNode("html", inspector);
+ assertState(false, inspector,
+ "The button and item are disabled on the documentElement");
+
+ info("Select the iframe element");
+ yield selectNode("iframe", inspector);
+ assertState(false, inspector,
+ "The button and item are disabled on an IFRAME element");
+});
+
+function assertState(isEnabled, inspector, desc) {
+ let doc = inspector.panelDoc;
+ let btn = doc.querySelector("#inspector-element-add-button");
+
+ // Force an update of the context menu to make sure menu items are updated
+ // according to the current selection. This normally happens when the menu is
+ // opened, but for the sake of this test's simplicity, we directly call the
+ // private update function instead.
+ let allMenuItems = openContextMenuAndGetAllItems(inspector);
+ let menuItem = allMenuItems.find(item => item.id === "node-menu-add");
+ ok(menuItem, "The item is in the menu");
+ is(!menuItem.disabled, isEnabled, desc);
+
+ is(!btn.hasAttribute("disabled"), isEnabled, desc);
+}