c9-core/plugins/c9.ide.preferences/preferences_test.js

198 wiersze
6.9 KiB
JavaScript

/*global describe it before after */
"use client";
require([
"lib/architect/architect",
"lib/chai/chai",
"/vfs-root"
], function (architect, chai, baseProc) {
var expect = chai.expect;
expect.setupArchitectTest([
{
packagePath: "plugins/c9.core/c9",
workspaceId: "ubuntu/ip-10-35-77-180",
startdate: new Date(),
debug: true,
hosted: true,
local: false,
davPrefix: "/"
},
"plugins/c9.core/ext",
"plugins/c9.core/http-xhr",
"plugins/c9.core/util",
"plugins/c9.ide.ui/forms",
"plugins/c9.ide.ui/lib_apf",
"plugins/c9.ide.ui/menus",
"plugins/c9.ide.ui/anims",
"plugins/c9.ide.threewaymerge/threewaymerge",
{
packagePath: "plugins/c9.core/settings",
testing: true
},
"plugins/c9.core/api.js",
"plugins/c9.ide.keys/commands",
"plugins/c9.ide.keys/editor",
{
packagePath: "plugins/c9.ide.ui/ui",
staticPrefix: "plugins/c9.ide.ui"
},
"plugins/c9.ide.editors/document",
"plugins/c9.ide.editors/undomanager",
"plugins/c9.ide.editors/editors",
"plugins/c9.ide.editors/editor",
"plugins/c9.ide.editors/tabmanager",
"plugins/c9.ide.ui/focus",
"plugins/c9.ide.editors/pane",
"plugins/c9.ide.editors/tab",
"plugins/c9.ide.terminal/terminal",
"plugins/c9.ide.ace/ace",
{
packagePath: "plugins/c9.ide.preferences/preferences",
staticPrefix: "plugins/c9.ide.preferences"
},
"plugins/c9.ide.preferences/preferencepanel",
"plugins/c9.ide.preferences/general",
{
packagePath: "plugins/c9.fs/fs",
baseProc: baseProc
},
"plugins/c9.fs/proc",
"plugins/c9.vfs.client/vfs_client",
"plugins/c9.vfs.client/endpoint",
"plugins/c9.ide.auth/auth",
// Mock plugins
{
consumes: ["apf", "ui", "Plugin"],
provides: [
"menus", "layout", "watcher", "save", "clipboard",
"dialog.confirm", "dialog.alert", "auth.bootstrap", "info",
"dialog.error"
],
setup: expect.html.mocked
},
{
consumes: ["Plugin", "tabManager", "preferences", "settings", "ui", "util", "commands", "preferences.general"],
provides: [],
setup: main
}
], architect);
function main(options, imports, register) {
var tabs = imports.tabManager;
var ui = imports.ui;
var prefs = imports.preferences;
var settings = imports.settings;
var commands = imports.commands;
var Plugin = imports.Plugin;
var general = imports["preferences.general"];
expect.html.setConstructor(function(tab) {
if (typeof tab == "object")
return tab.pane.aml.getPage("editor::" + tab.editorType).$ext;
});
describe('preferences', function() {
before(function(done) {
apf.config.setProperty("allow-select", false);
apf.config.setProperty("allow-blur", false);
bar.$ext.style.height = "66%";
document.body.style.marginBottom = "66%";
tabs.once("ready", function(){
prefs.activate(general);
done();
});
});
var plugin = new Plugin();
describe("addSettings", function(){
this.timeout(10000);
it('should open a pane with just an editor', function(done) {
settings.set("user/general/keybindings/@preset", "custom");
prefs.add({
"General" : {
"Application" : {},
"Run / Debug" : {}
},
"Code Tools" : {
"Language Support" : {},
"Code Tools" : {},
"Code Formatter" : {}
}
}, plugin);
[
{
name: "resume",
group: "Run & Debug",
hint: "resume the current paused process",
bindKey: {mac: "F8", win: "F8"}
},
{
name: "stepinto",
group: "Run & Debug",
hint: "step into the function that is next on the execution stack",
bindKey: {mac: "F11", win: "F11"}
},
{
name: "stepover",
group: "Run & Debug",
hint: "step over the current expression on the execution stack",
bindKey: {mac: "F10", win: "F10"}
},
{
name: "stepout",
group: "Run & Debug",
hint: "step out of the current function scope",
bindKey: {mac: "Shift-F11", win: "Shift-F11"}
},
{
name: "testing",
group: "Code Editor",
hint: "step out of the current function scope",
bindKey: {mac: "Shift-F11", win: "Shift-F11"}
}
].forEach(function(cmd) {
commands.addCommand(cmd, prefs);
})
tabs.openEditor("preferences", function(err, tab) {
expect(tabs.getTabs()).length(1);
done();
});
});
});
describe("unload()", function(){
this.timeout(10000)
it('should unload the preferences', function(done) {
general.unload();
prefs.unload();
tabs.getTabs()[0].editor.unload();
tabs.getTabs()[0].unload();
tabs.unload();
done();
});
});
if (!onload.remain) {
after(function(done) {
document.body.style.marginBottom = "";
done();
});
}
});
onload && onload();
}
});