michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function test() { michael@0: michael@0: let DOMUtils = Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils); michael@0: michael@0: let pseudos = ["hover", "active", "focus"]; michael@0: michael@0: let doc; michael@0: let div; michael@0: let menu; michael@0: let inspector; michael@0: michael@0: waitForExplicitFinish(); michael@0: ignoreAllUncaughtExceptions(); michael@0: gBrowser.selectedTab = gBrowser.addTab(); michael@0: gBrowser.selectedBrowser.addEventListener("load", function() { michael@0: gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); michael@0: doc = content.document; michael@0: waitForFocus(createDocument, content); michael@0: }, true); michael@0: michael@0: content.location = "data:text/html,pseudo-class lock node menu tests"; michael@0: michael@0: function createDocument() michael@0: { michael@0: div = doc.createElement("div"); michael@0: div.textContent = "test div"; michael@0: michael@0: doc.body.appendChild(div); michael@0: michael@0: openInspector(selectNode); michael@0: } michael@0: michael@0: function selectNode(aInspector) michael@0: { michael@0: inspector = aInspector; michael@0: inspector.selection.setNode(div); michael@0: inspector.once("inspector-updated", performTests); michael@0: } michael@0: michael@0: function performTests() michael@0: { michael@0: menu = inspector.panelDoc.getElementById("inspector-node-popup"); michael@0: menu.addEventListener("popupshowing", testMenuItems, true); michael@0: menu.openPopup(); michael@0: } michael@0: michael@0: function testMenuItems() michael@0: { michael@0: menu.removeEventListener("popupshowing", testMenuItems, true); michael@0: michael@0: var tryNext = () => { michael@0: if (pseudos.length === 0) { michael@0: finishUp(); michael@0: return; michael@0: } michael@0: let pseudo = pseudos.shift(); michael@0: michael@0: let menuitem = inspector.panelDoc.getElementById("node-menu-pseudo-" + pseudo); michael@0: ok(menuitem, ":" + pseudo + " menuitem exists"); michael@0: michael@0: menuitem.doCommand(); michael@0: inspector.selection.once("pseudoclass", () => { michael@0: is(DOMUtils.hasPseudoClassLock(div, ":" + pseudo), true, michael@0: "pseudo-class lock has been applied"); michael@0: tryNext(); michael@0: }); michael@0: } michael@0: tryNext(); michael@0: } michael@0: michael@0: function finishUp() michael@0: { michael@0: gBrowser.removeCurrentTab(); michael@0: finish(); michael@0: } michael@0: }