2013-12-06 23:52:32 -08:00
|
|
|
/* vim: set ts=2 et sw=2 tw=80: */
|
|
|
|
/* Any copyright is dedicated to the Public Domain.
|
|
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
|
|
|
|
// https rather than chrome to improve coverage
|
|
|
|
const TESTCASE_URI = TEST_BASE_HTTPS + "sourcemaps.html";
|
|
|
|
const PREF = "devtools.styleeditor.source-maps-enabled";
|
|
|
|
|
|
|
|
function test()
|
|
|
|
{
|
|
|
|
waitForExplicitFinish();
|
|
|
|
|
|
|
|
Services.prefs.setBoolPref(PREF, true);
|
|
|
|
|
|
|
|
let count = 0;
|
|
|
|
addTabAndOpenStyleEditor(function(panel) {
|
|
|
|
let UI = panel.UI;
|
|
|
|
UI.on("editor-added", (event, editor) => {
|
2014-01-14 07:13:47 -08:00
|
|
|
if (++count == 3) {
|
2013-12-06 23:52:32 -08:00
|
|
|
// wait for 3 editors - 1 for first style sheet, 1 for the
|
|
|
|
// generated style sheet, and 1 for original source after it
|
|
|
|
// loads and replaces the generated style sheet.
|
|
|
|
runTests(UI);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
});
|
|
|
|
|
|
|
|
content.location = TESTCASE_URI;
|
|
|
|
}
|
|
|
|
|
|
|
|
function runTests(UI)
|
|
|
|
{
|
|
|
|
is(UI.editors.length, 2);
|
|
|
|
|
|
|
|
let firstEditor = UI.editors[0];
|
|
|
|
testFirstEditor(firstEditor);
|
|
|
|
|
|
|
|
let ScssEditor = UI.editors[1];
|
|
|
|
|
|
|
|
let link = getStylesheetNameLinkFor(ScssEditor);
|
|
|
|
link.click();
|
|
|
|
|
|
|
|
ScssEditor.getSourceEditor().then(() => {
|
|
|
|
testScssEditor(ScssEditor);
|
|
|
|
|
2014-01-14 07:13:47 -08:00
|
|
|
togglePref(UI);
|
2013-12-06 23:52:32 -08:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2014-01-14 07:13:47 -08:00
|
|
|
function togglePref(UI) {
|
|
|
|
let count = 0;
|
|
|
|
|
|
|
|
UI.on("editor-added", (event, editor) => {
|
|
|
|
if (++count == 2) {
|
|
|
|
testTogglingPref(UI);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
Services.prefs.setBoolPref(PREF, false);
|
|
|
|
}
|
|
|
|
|
|
|
|
function testTogglingPref(UI) {
|
|
|
|
is(UI.editors.length, 2, "correct number of editors after pref toggled");
|
|
|
|
|
|
|
|
let CSSEditor = UI.editors[1];
|
|
|
|
|
|
|
|
let link = getStylesheetNameLinkFor(CSSEditor);
|
|
|
|
link.click();
|
|
|
|
|
|
|
|
CSSEditor.getSourceEditor().then(() => {
|
|
|
|
testCSSEditor(CSSEditor);
|
|
|
|
|
|
|
|
finishUp();
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
2013-12-06 23:52:32 -08:00
|
|
|
function testFirstEditor(editor) {
|
|
|
|
let name = getStylesheetNameFor(editor);
|
|
|
|
is(name, "simple.css", "First style sheet display name is correct");
|
|
|
|
}
|
|
|
|
|
|
|
|
function testScssEditor(editor) {
|
|
|
|
let name = getStylesheetNameFor(editor);
|
|
|
|
is(name, "sourcemaps.scss", "Original source display name is correct");
|
|
|
|
|
|
|
|
let text = editor.sourceEditor.getText();
|
|
|
|
|
|
|
|
is(text, "\n\
|
|
|
|
$paulrougetpink: #f06;\n\
|
|
|
|
\n\
|
|
|
|
div {\n\
|
|
|
|
color: $paulrougetpink;\n\
|
|
|
|
}\n\
|
|
|
|
\n\
|
|
|
|
span {\n\
|
|
|
|
background-color: #EEE;\n\
|
|
|
|
}", "Original source text is correct");
|
|
|
|
}
|
|
|
|
|
2014-01-14 07:13:47 -08:00
|
|
|
function testCSSEditor(editor) {
|
|
|
|
let name = getStylesheetNameFor(editor);
|
|
|
|
is(name, "sourcemaps.css", "CSS source display name is correct");
|
|
|
|
|
|
|
|
let text = editor.sourceEditor.getText();
|
|
|
|
|
|
|
|
is(text, "div {\n\
|
|
|
|
color: #ff0066; }\n\
|
|
|
|
\n\
|
|
|
|
span {\n\
|
|
|
|
background-color: #EEE; }\n\
|
|
|
|
\n\
|
|
|
|
/*# sourceMappingURL=sourcemaps.css.map */", "CSS text is correct");
|
|
|
|
}
|
|
|
|
|
2013-12-06 23:52:32 -08:00
|
|
|
/* Helpers */
|
|
|
|
function getStylesheetNameLinkFor(editor) {
|
|
|
|
return editor.summary.querySelector(".stylesheet-name");
|
|
|
|
}
|
|
|
|
|
|
|
|
function getStylesheetNameFor(editor) {
|
|
|
|
return editor.summary.querySelector(".stylesheet-name > label")
|
|
|
|
.getAttribute("value")
|
|
|
|
}
|
|
|
|
|
|
|
|
function finishUp() {
|
|
|
|
Services.prefs.clearUserPref(PREF);
|
|
|
|
finish();
|
|
|
|
}
|