/* 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 inspector has the correct pseudo-class locking menu items and // that these items actually work const TEST_URI = "data:text/html;charset=UTF-8," + "pseudo-class lock node menu tests" + "
test div
"; const PSEUDOS = ["hover", "active", "focus"]; add_task(function* () { let {inspector, testActor} = yield openInspectorForURL(TEST_URI); yield selectNode("div", inspector); let allMenuItems = openContextMenuAndGetAllItems(inspector); yield testMenuItems(testActor, allMenuItems, inspector); }); function* testMenuItems(testActor, allMenuItems, inspector) { for (let pseudo of PSEUDOS) { let menuItem = allMenuItems.find(item => item.id === "node-menu-pseudo-" + pseudo); ok(menuItem, ":" + pseudo + " menuitem exists"); is(menuItem.disabled, false, ":" + pseudo + " menuitem is enabled"); // Give the inspector panels a chance to update when the pseudoclass changes let onPseudo = inspector.selection.once("pseudoclass"); let onRefresh = inspector.once("rule-view-refreshed"); // Walker uses SDK-events so calling walker.once does not return a promise. let onMutations = once(inspector.walker, "mutations"); menuItem.click(); yield onPseudo; yield onRefresh; yield onMutations; let hasLock = yield testActor.hasPseudoClassLock("div", ":" + pseudo); ok(hasLock, "pseudo-class lock has been applied"); } }