Stop querying `CssRuleView.element.children` from many tests as it depends on how the frontend's DOM is organized. Also stop assuming the order of elements between header, container and rules and now refer to rules by their index in the rule view. This ignores containers and headers. The 3rd rule is the 3rd potentially displayed rule. This ignores container visibility and assume all rules are visible. Differential Revision: https://phabricator.services.mozilla.com/D284541
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
"use strict";
|
|
|
|
// Test that adding a new rule is synced to the style editor.
|
|
|
|
const TESTCASE_URI = TEST_BASE_HTTP + "sync.html";
|
|
const TESTCASE_URI_WITH_CSP = TEST_BASE_HTTP + "sync_with_csp.html";
|
|
|
|
const expectedText = `
|
|
body {
|
|
border-width: 15px;
|
|
color: red;
|
|
}
|
|
|
|
#testid {
|
|
font-size: 4em;
|
|
/*! background-color: yellow; */
|
|
}
|
|
`;
|
|
|
|
add_task(async function () {
|
|
const URIs = [TESTCASE_URI, TESTCASE_URI_WITH_CSP];
|
|
|
|
for (const URI of URIs) {
|
|
await addTab(URI);
|
|
const { inspector, view } = await openRuleView();
|
|
await selectNode("#testid", inspector);
|
|
|
|
info("Focusing a new property name in the rule-view on " + URI);
|
|
const ruleEditor = getRuleViewRuleEditorAt(view, 1);
|
|
const editor = await focusEditableField(view, ruleEditor.closeBrace);
|
|
is(
|
|
inplaceEditor(ruleEditor.newPropSpan),
|
|
editor,
|
|
"The new property editor has focus"
|
|
);
|
|
|
|
const input = editor.input;
|
|
input.value = "/* background-color: yellow; */";
|
|
|
|
info("Pressing return to commit and focus the new value field");
|
|
const onModifications = view.once("ruleview-changed");
|
|
EventUtils.synthesizeKey("VK_RETURN", {}, view.styleWindow);
|
|
await onModifications;
|
|
|
|
const { ui } = await openStyleEditor();
|
|
const sourceEditor = await ui.editors[0].getSourceEditor();
|
|
const text = sourceEditor.sourceEditor.getText();
|
|
is(text, expectedText, "selector edits are synced");
|
|
}
|
|
});
|