mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
84 lines
2.9 KiB
JavaScript
84 lines
2.9 KiB
JavaScript
/* vim: set ft=javascript 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 the rule-view content when the inspector gets opened via the page
|
|
// ctx-menu "inspect element"
|
|
|
|
const CONTENT = '<body style="color:red;">\
|
|
<div style="color:blue;">\
|
|
<p style="color:green;">\
|
|
<span style="color:yellow;">test element</span>\
|
|
</p>\
|
|
</div>\
|
|
</body>';
|
|
|
|
const STRINGS = Services.strings
|
|
.createBundle("chrome://global/locale/devtools/styleinspector.properties");
|
|
|
|
add_task(function*() {
|
|
yield addTab("data:text/html;charset=utf-8," + CONTENT);
|
|
|
|
info("Getting the test element");
|
|
let element = getNode("span");
|
|
|
|
info("Opening the inspector using the content context-menu");
|
|
let onInspectorReady = gDevTools.once("inspector-ready");
|
|
|
|
document.popupNode = element;
|
|
let contentAreaContextMenu = document.getElementById("contentAreaContextMenu");
|
|
let contextMenu = new nsContextMenu(contentAreaContextMenu);
|
|
yield contextMenu.inspectNode();
|
|
|
|
// Clean up context menu:
|
|
contextMenu.hiding();
|
|
|
|
yield onInspectorReady;
|
|
|
|
let target = TargetFactory.forTab(gBrowser.selectedTab);
|
|
let toolbox = gDevTools.getToolbox(target);
|
|
|
|
info("Getting the inspector and making sure it is fully updated");
|
|
let inspector = toolbox.getPanel("inspector");
|
|
yield inspector.once("inspector-updated");
|
|
|
|
let view = inspector.sidebar.getWindowForTab("ruleview")["ruleview"].view;
|
|
|
|
checkRuleViewContent(view);
|
|
});
|
|
|
|
function checkRuleViewContent({doc}) {
|
|
info("Making sure the rule-view contains the expected content");
|
|
|
|
let headers = [...doc.querySelectorAll(".ruleview-header")];
|
|
is(headers.length, 3, "There are 3 headers for inherited rules");
|
|
|
|
is(headers[0].textContent,
|
|
STRINGS.formatStringFromName("rule.inheritedFrom", ["p"], 1),
|
|
"The first header is correct");
|
|
is(headers[1].textContent,
|
|
STRINGS.formatStringFromName("rule.inheritedFrom", ["div"], 1),
|
|
"The second header is correct");
|
|
is(headers[2].textContent,
|
|
STRINGS.formatStringFromName("rule.inheritedFrom", ["body"], 1),
|
|
"The third header is correct");
|
|
|
|
let rules = doc.querySelectorAll(".ruleview-rule");
|
|
is(rules.length, 4, "There are 4 rules in the view");
|
|
|
|
for (let rule of rules) {
|
|
let selector = rule.querySelector(".ruleview-selector");
|
|
is(selector.textContent,
|
|
STRINGS.GetStringFromName("rule.sourceElement"),
|
|
"The rule's selector is correct");
|
|
|
|
let propertyNames = [...rule.querySelectorAll(".ruleview-propertyname")];
|
|
is(propertyNames.length, 1, "There's only one property name, as expected");
|
|
|
|
let propertyValues = [...rule.querySelectorAll(".ruleview-propertyvalue")];
|
|
is(propertyValues.length, 1, "There's only one property value, as expected");
|
|
}
|
|
}
|