64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
/* vim: set ts=2 et sw=2 tw=80: */
|
|
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"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(function* () {
|
|
// Using the personal container.
|
|
let userContextId = 1;
|
|
let { tab } = yield* openTabInUserContext(TESTCASE_URI, userContextId);
|
|
let { ui } = yield openStyleEditor(tab);
|
|
|
|
is(ui.editors.length, 2, "The UI contains two style sheets.");
|
|
checkSheet(ui.editors[0], EXPECTED_SHEETS[0]);
|
|
checkSheet(ui.editors[1], EXPECTED_SHEETS[1]);
|
|
});
|
|
|
|
function* openTabInUserContext(uri, userContextId) {
|
|
// Open the tab in the correct userContextId.
|
|
let tab = gBrowser.addTab(uri, {userContextId});
|
|
|
|
// Select tab and make sure its browser is focused.
|
|
gBrowser.selectedTab = tab;
|
|
tab.ownerDocument.defaultView.focus();
|
|
|
|
let browser = gBrowser.getBrowserForTab(tab);
|
|
yield BrowserTestUtils.browserLoaded(browser);
|
|
return {tab, browser};
|
|
}
|
|
|
|
function checkSheet(editor, expected) {
|
|
is(editor.styleSheet.styleSheetIndex, expected.sheetIndex,
|
|
"Style sheet has correct index.");
|
|
|
|
let summary = editor.summary;
|
|
let name = summary.querySelector(".stylesheet-name > label")
|
|
.getAttribute("value");
|
|
ok(expected.name.test(name), "The name '" + name + "' is correct.");
|
|
|
|
let 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.");
|
|
}
|