/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test that the selector highlighter works for nested rules.
const TEST_URI = `
Selector Highlighter for nested rules
`;
add_task(async function () {
await addTab("data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI));
const { inspector, view } = await openRuleView();
await selectNode("h1", inspector);
const activeHighlighter = inspector.highlighters.getActiveHighlighter(
inspector.highlighters.TYPES.SELECTOR
);
ok(!activeHighlighter, "No selector highlighter is active");
info(`Clicking on "& > h1" selector icon`);
let highlighterData = await clickSelectorIcon(view, "& > h1");
is(
highlighterData.nodeFront.nodeName.toLowerCase(),
"h1",
"
is highlighted"
);
ok(
highlighterData.highlighter,
"The selector highlighter instance was created"
);
ok(highlighterData.isShown, "The selector highlighter was shown");
info(`Clicking on "title" selector icon`);
highlighterData = await clickSelectorIcon(view, "title");
is(
highlighterData.nodeFront.nodeName.toLowerCase(),
"h1",
" is highlighted"
);
ok(
highlighterData.highlighter,
"The selector highlighter instance was created"
);
ok(highlighterData.isShown, "The selector highlighter was shown");
info(`Clicking on "&.title" selector icon`);
highlighterData = await clickSelectorIcon(view, "&.title");
is(
highlighterData.nodeFront.nodeName.toLowerCase(),
"h1",
" is highlighted"
);
ok(
highlighterData.highlighter,
"The selector highlighter instance was created"
);
ok(highlighterData.isShown, "The selector highlighter was shown");
info(`Clicking on "& .title" selector icon`);
highlighterData = await clickSelectorIcon(view, "& .title");
is(
highlighterData.nodeFront.nodeName.toLowerCase(),
"h1",
" is highlighted"
);
ok(
highlighterData.highlighter,
"The selector highlighter instance was created"
);
ok(highlighterData.isShown, "The selector highlighter was shown");
await selectNode("h1 em", inspector);
info(`Clicking on "& em" selector icon`);
highlighterData = await clickSelectorIcon(view, "& em");
is(
highlighterData.nodeFront.nodeName.toLowerCase(),
"em",
" is highlighted"
);
ok(
highlighterData.highlighter,
"The selector highlighter instance was created"
);
ok(highlighterData.isShown, "The selector highlighter was shown");
info(`Clicking on "html &" selector icon`);
highlighterData = await clickSelectorIcon(view, "html &");
is(
highlighterData.nodeFront.nodeName.toLowerCase(),
"em",
" is highlighted"
);
ok(
highlighterData.highlighter,
"The selector highlighter instance was created"
);
ok(highlighterData.isShown, "The selector highlighter was shown");
});