From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../browser_inspector_menu-05-attribute-items.js | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 devtools/client/inspector/test/browser_inspector_menu-05-attribute-items.js (limited to 'devtools/client/inspector/test/browser_inspector_menu-05-attribute-items.js') diff --git a/devtools/client/inspector/test/browser_inspector_menu-05-attribute-items.js b/devtools/client/inspector/test/browser_inspector_menu-05-attribute-items.js new file mode 100644 index 000000000..df901f0a4 --- /dev/null +++ b/devtools/client/inspector/test/browser_inspector_menu-05-attribute-items.js @@ -0,0 +1,79 @@ +/* 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 attribute items work in the context menu + +const TEST_URL = URL_ROOT + "doc_inspector_menu.html"; + +add_task(function* () { + let { inspector, testActor } = yield openInspectorForURL(TEST_URL); + yield selectNode("#attributes", inspector); + + yield testAddAttribute(); + yield testEditAttribute(); + yield testRemoveAttribute(); + + function* testAddAttribute() { + info("Triggering 'Add Attribute' and waiting for mutation to occur"); + let addAttribute = getMenuItem("node-menu-add-attribute"); + addAttribute.click(); + + EventUtils.synthesizeKey('class="u-hidden"', {}); + let onMutation = inspector.once("markupmutation"); + EventUtils.synthesizeKey("VK_RETURN", {}); + yield onMutation; + + let hasAttribute = testActor.hasNode("#attributes.u-hidden"); + ok(hasAttribute, "attribute was successfully added"); + } + + function* testEditAttribute() { + info("Testing 'Edit Attribute' menu item"); + let editAttribute = getMenuItem("node-menu-edit-attribute"); + + info("Triggering 'Edit Attribute' and waiting for mutation to occur"); + inspector.nodeMenuTriggerInfo = { + type: "attribute", + name: "data-edit" + }; + editAttribute.click(); + EventUtils.synthesizeKey("data-edit='edited'", {}); + let onMutation = inspector.once("markupmutation"); + EventUtils.synthesizeKey("VK_RETURN", {}); + yield onMutation; + + let isAttributeChanged = + yield testActor.hasNode("#attributes[data-edit='edited']"); + ok(isAttributeChanged, "attribute was successfully edited"); + } + + function* testRemoveAttribute() { + info("Testing 'Remove Attribute' menu item"); + let removeAttribute = getMenuItem("node-menu-remove-attribute"); + + info("Triggering 'Remove Attribute' and waiting for mutation to occur"); + inspector.nodeMenuTriggerInfo = { + type: "attribute", + name: "data-remove" + }; + let onMutation = inspector.once("markupmutation"); + removeAttribute.click(); + yield onMutation; + + let hasAttribute = yield testActor.hasNode("#attributes[data-remove]"); + ok(!hasAttribute, "attribute was successfully removed"); + } + + function getMenuItem(id) { + let allMenuItems = openContextMenuAndGetAllItems(inspector, { + target: getContainerForSelector("#attributes", inspector).tagLine, + }); + let menuItem = allMenuItems.find(i => i.id === id); + ok(menuItem, "Menu item '" + id + "' found"); + // Close the menu so synthesizing future keys won't select menu items. + EventUtils.synthesizeKey("VK_ESCAPE", {}); + return menuItem; + } +}); -- cgit v1.2.3