Mypal/devtools/client/sourceeditor/test/browser_editor_autocomplete_basic.js
2021-02-04 16:48:36 +02:00

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);
}