Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Test that the stylesheets can be loaded correctly with containers
// (bug 1282660).
const TESTCASE_URI = TEST_BASE_HTTP + "simple.html";
const EXPECTED_SHEETS = [
{
sheetIndex: 0,
name: /^simple.css$/,
rules: 1,
active: true,
},
{
sheetIndex: 1,
name: /^<.*>$/,
rules: 3,
active: false,
},
];
add_task(async function () {
// Using the personal container.
const userContextId = 1;
const { tab } = await openTabInUserContext(TESTCASE_URI, userContextId);
const { ui } = await openStyleEditor(tab);
is(ui.editors.length, 2, "The UI contains two style sheets.");
await checkSheet(ui.editors[0], EXPECTED_SHEETS[0]);
await checkSheet(ui.editors[1], EXPECTED_SHEETS[1]);
});
async function openTabInUserContext(uri, userContextId) {
// Open the tab in the correct userContextId.
const tab = BrowserTestUtils.addTab(gBrowser, uri, { userContextId });
// Select tab and make sure its browser is focused.
gBrowser.selectedTab = tab;
tab.ownerDocument.defaultView.focus();
const browser = gBrowser.getBrowserForTab(tab);
await BrowserTestUtils.browserLoaded(browser);
return { tab, browser };
}
async function checkSheet(editor, expected) {
is(
editor.styleSheet.styleSheetIndex,
expected.sheetIndex,
"Style sheet has correct index."
);
const summary = editor.summary;
const name = summary
.querySelector(".stylesheet-name > label")
.getAttribute("value");
ok(expected.name.test(name), "The name '" + name + "' is correct.");
// The rule count is displayed via l10n.setArgs which only applies the value
// asynchronously, so wait for it to be applied.
await waitFor(() => {
const count = summary.querySelector(".stylesheet-rule-count").textContent;
return parseInt(count, 10) === expected.rules;
});
const ruleCount = summary.querySelector(".stylesheet-rule-count").textContent;
is(parseInt(ruleCount, 10), expected.rules, "the rule count is correct");
is(
summary.classList.contains("splitview-active"),
expected.active,
"The active status for this sheet is correct."
);
}