/* 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";
// Tests that the rule view marks overridden rules correctly based on the
// specificity of the rule.
const TEST_URI = `
Styled Node
`;
add_task(function* () {
yield addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI));
let {inspector, view} = yield openRuleView();
yield selectNode("#testid", inspector);
yield testMarkOverridden(inspector, view);
});
function* testMarkOverridden(inspector, view) {
let elementStyle = view._elementStyle;
let RESULTS = [
// We skip the first element
[],
[{name: "margin-left", value: "23px", overridden: true}],
[{name: "margin-right", value: "23px", overridden: false},
{name: "margin-left", value: "1px", overridden: false}],
[{name: "font-size", value: "12px", overridden: false}],
[{name: "margin-right", value: "1px", overridden: true},
{name: "font-size", value: "79px", overridden: true}]
];
for (let i = 1; i < RESULTS.length; ++i) {
let idRule = elementStyle.rules[i];
for (let propIndex in RESULTS[i]) {
let expected = RESULTS[i][propIndex];
let prop = idRule.textProps[propIndex];
info("Checking rule " + i + ", property " + propIndex);
is(prop.name, expected.name, "check property name");
is(prop.value, expected.value, "check property value");
is(prop.overridden, expected.overridden, "check property overridden");
}
}
}