diff options
Diffstat (limited to 'devtools/client/styleeditor/test/browser_styleeditor_loading_with_containers.js')
-rw-r--r-- | devtools/client/styleeditor/test/browser_styleeditor_loading_with_containers.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/devtools/client/styleeditor/test/browser_styleeditor_loading_with_containers.js b/devtools/client/styleeditor/test/browser_styleeditor_loading_with_containers.js new file mode 100644 index 000000000..a00628c8b --- /dev/null +++ b/devtools/client/styleeditor/test/browser_styleeditor_loading_with_containers.js @@ -0,0 +1,63 @@ +/* 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."); +} |