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
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.");
await assertRuleCount(editor, expected.rules);
is(
summary.classList.contains("splitview-active"),
expected.active,
"The active status for this sheet is correct."
);
}