59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const AUTOCOMPLETION_PREF = "devtools.editor.autocomplete";
|
|
|
|
// Test to make sure that different autocompletion modes can be created,
|
|
// switched, and destroyed. This doesn't test the actual autocompletion
|
|
// popups, only their integration with the editor.
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
setup((ed, win) => {
|
|
let edWin = ed.container.contentWindow.wrappedJSObject;
|
|
testJS(ed, edWin);
|
|
testCSS(ed, edWin);
|
|
testPref(ed, edWin);
|
|
teardown(ed, win);
|
|
});
|
|
}
|
|
|
|
function testJS(ed, win) {
|
|
ok(!ed.getOption("autocomplete"), "Autocompletion is not set");
|
|
ok(!win.tern, "Tern is not defined on the window");
|
|
|
|
ed.setMode(Editor.modes.js);
|
|
ed.setOption("autocomplete", true);
|
|
|
|
ok(ed.getOption("autocomplete"), "Autocompletion is set");
|
|
ok(win.tern, "Tern is defined on the window");
|
|
}
|
|
|
|
function testCSS(ed, win) {
|
|
ok(ed.getOption("autocomplete"), "Autocompletion is set");
|
|
ok(win.tern, "Tern is currently defined on the window");
|
|
|
|
ed.setMode(Editor.modes.css);
|
|
ed.setOption("autocomplete", true);
|
|
|
|
ok(ed.getOption("autocomplete"), "Autocompletion is still set");
|
|
ok(!win.tern, "Tern is no longer defined on the window");
|
|
}
|
|
|
|
function testPref(ed, win) {
|
|
ed.setMode(Editor.modes.js);
|
|
ed.setOption("autocomplete", true);
|
|
|
|
ok(ed.getOption("autocomplete"), "Autocompletion is set");
|
|
ok(win.tern, "Tern is defined on the window");
|
|
|
|
info("Preffing autocompletion off");
|
|
Services.prefs.setBoolPref(AUTOCOMPLETION_PREF, false);
|
|
|
|
ok(ed.getOption("autocomplete"), "Autocompletion is still set");
|
|
ok(!win.tern, "Tern is no longer defined on the window");
|
|
|
|
Services.prefs.clearUserPref(AUTOCOMPLETION_PREF);
|
|
}
|