mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-06-22 01:19:09 +00:00
80 lines
2.6 KiB
JavaScript
80 lines
2.6 KiB
JavaScript
/* 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;
|
|
}
|
|
});
|