mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
90 lines
3.4 KiB
JavaScript
90 lines
3.4 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";
|
|
|
|
// Tests for menuitem functionality that doesn't fit into any specific category
|
|
const TEST_URL = URL_ROOT + "doc_inspector_menu.html";
|
|
add_task(function* () {
|
|
let { inspector, toolbox, testActor } = yield openInspectorForURL(TEST_URL);
|
|
yield testShowDOMProperties();
|
|
yield testDuplicateNode();
|
|
yield testDeleteNode();
|
|
yield testDeleteRootNode();
|
|
yield testScrollIntoView();
|
|
function* testShowDOMProperties() {
|
|
info("Testing 'Show DOM Properties' menu item.");
|
|
let showDOMPropertiesNode = inspector.panelDoc.getElementById("node-menu-showdomproperties");
|
|
ok(showDOMPropertiesNode, "the popup menu has a show dom properties item");
|
|
|
|
let consoleOpened = toolbox.once("webconsole-ready");
|
|
|
|
info("Triggering 'Show DOM Properties' and waiting for inspector open");
|
|
dispatchCommandEvent(showDOMPropertiesNode);
|
|
yield consoleOpened;
|
|
|
|
let webconsoleUI = toolbox.getPanel("webconsole").hud.ui;
|
|
let messagesAdded = webconsoleUI.once("new-messages");
|
|
yield messagesAdded;
|
|
info("Checking if 'inspect($0)' was evaluated");
|
|
ok(webconsoleUI.jsterm.history[0] === 'inspect($0)');
|
|
yield toolbox.toggleSplitConsole();
|
|
}
|
|
function* testDuplicateNode() {
|
|
info("Testing 'Duplicate Node' menu item for normal elements.");
|
|
|
|
yield selectNode(".duplicate", inspector);
|
|
is((yield testActor.getNumberOfElementMatches(".duplicate")), 1,
|
|
"There should initially be 1 .duplicate node");
|
|
|
|
let menuItem = inspector.panelDoc.getElementById("node-menu-duplicatenode");
|
|
ok(menuItem, "'Duplicate node' menu item should exist");
|
|
|
|
info("Triggering 'Duplicate Node' and waiting for inspector to update");
|
|
let updated = inspector.once("markupmutation");
|
|
dispatchCommandEvent(menuItem);
|
|
yield updated;
|
|
|
|
is((yield testActor.getNumberOfElementMatches(".duplicate")), 2,
|
|
"The duplicated node should be in the markup.");
|
|
|
|
let container = yield getContainerForSelector(".duplicate + .duplicate",
|
|
inspector);
|
|
ok(container, "A MarkupContainer should be created for the new node");
|
|
}
|
|
|
|
function* testDeleteNode() {
|
|
info("Testing 'Delete Node' menu item for normal elements.");
|
|
yield selectNode("#delete", inspector);
|
|
let deleteNode = inspector.panelDoc.getElementById("node-menu-delete");
|
|
ok(deleteNode, "the popup menu has a delete menu item");
|
|
let updated = inspector.once("inspector-updated");
|
|
|
|
info("Triggering 'Delete Node' and waiting for inspector to update");
|
|
dispatchCommandEvent(deleteNode);
|
|
yield updated;
|
|
|
|
ok(!(yield testActor.hasNode("#delete")), "Node deleted");
|
|
}
|
|
|
|
function* testDeleteRootNode() {
|
|
info("Testing 'Delete Node' menu item does not delete root node.");
|
|
yield selectNode("html", inspector);
|
|
|
|
let deleteNode = inspector.panelDoc.getElementById("node-menu-delete");
|
|
dispatchCommandEvent(deleteNode);
|
|
|
|
let deferred = promise.defer();
|
|
executeSoon(deferred.resolve);
|
|
yield deferred.promise;
|
|
|
|
ok((yield testActor.eval("!!content.document.documentElement")),
|
|
"Document element still alive.");
|
|
}
|
|
|
|
function* testScrollIntoView() {
|
|
// Follow up bug to add this test - https://bugzilla.mozilla.org/show_bug.cgi?id=1154107
|
|
todo(false, "Verify that node is scrolled into the viewport.");
|
|
}
|
|
});
|