/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; const nodeConstants = require("resource://devtools/shared/dom-node-constants.js"); // Tests if the `Add rule` button disables itself properly for non-element nodes. const TEST_URI = `
${ // put a text node big enough so the text node is not inlined "pseudo ".repeat(50) }
<-- my comment -->
Test Node
`; add_task(async function () { await addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI)); const { inspector, view } = await openRuleView(); await testDisabledButton(inspector, view); }); async function testDisabledButton(inspector, view) { const node = "#testid"; info("Selecting a real element"); await selectNode(node, inspector); ok( !view.addRuleButton.disabled, "Add rule button should be enabled for regular element" ); info("Clear selection"); await view.selectElement(null); ok( view.addRuleButton.disabled, "Add rule button should be disabled when no element is selected" ); info("Selecting a real element"); await selectNode(node, inspector); ok( !view.addRuleButton.disabled, "Add rule button should be enabled again when selecting regular element" ); info("Selecting a pseudo element"); const pseudo = await getNodeFront("#pseudo", inspector); const children = await inspector.walker.children(pseudo); const [beforeNodeFront, textNodeFront] = children.nodes; await selectNode(beforeNodeFront, inspector); // sanity check is( inspector.selection.nodeFront.displayName, "::before", "We selected the ::before pseudo element" ); ok( !view.addRuleButton.disabled, "Add rule button should be enabled for pseudo element" ); await selectNode(textNodeFront, inspector); // sanity check is( inspector.selection.nodeFront.nodeType, nodeConstants.TEXT_NODE, "We selected the text node" ); ok( view.addRuleButton.disabled, "Add rule button should be disabled for text node" ); info("Selecting a real element"); await selectNode(node, inspector); ok( !view.addRuleButton.disabled, "Add rule button should be enabled again when selecting regular element" ); }