Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Errors

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Check that the ruleview is still correctly displayed after reloading the page.
* See Bug 1487284.
*/
// To trigger the initial issue, the stylesheet needs to be fetched from the network
// monitor, so we can not use a data:uri with inline styles here.
const TEST_URI = `${URL_ROOT}doc_toolbox_rule_view.html`;
addRDMTaskWithPreAndPost(
TEST_URI,
async function pre_task() {
info("Open the rule-view and select the test node before opening RDM");
const ruleViewValues = await openRuleView();
const { inspector, view } = ruleViewValues;
await selectNode("div", inspector);
is(numberOfRules(view), 2, "Rule view has two rules.");
return ruleViewValues;
},
async function task({ preTaskValue }) {
const { inspector, view } = preTaskValue;
info("Reload the current page");
const onNewRoot = inspector.once("new-root");
const onRuleViewRefreshed = inspector.once("rule-view-refreshed");
await reloadBrowser();
await onNewRoot;
await inspector.markup._waitForChildren();
await onRuleViewRefreshed;
// Await two reflows of the Rule View window.
await new Promise(resolve => {
view.styleWindow.requestAnimationFrame(() => {
view.styleWindow.requestAnimationFrame(resolve);
});
});
is(
numberOfRules(view),
2,
"Rule view still has two rules and is not empty."
);
},
null
);
function numberOfRules(ruleView) {
return ruleView.element.querySelectorAll(".ruleview-code").length;
}