mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 14:45:29 +00:00
423 lines
12 KiB
JavaScript
423 lines
12 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
// Tests that the pref commands work
|
|
|
|
let imports = {};
|
|
|
|
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm", imports);
|
|
|
|
imports.XPCOMUtils.defineLazyGetter(imports, "prefBranch", function() {
|
|
let prefService = Components.classes["@mozilla.org/preferences-service;1"]
|
|
.getService(Components.interfaces.nsIPrefService);
|
|
return prefService.getBranch(null)
|
|
.QueryInterface(Components.interfaces.nsIPrefBranch2);
|
|
});
|
|
|
|
imports.XPCOMUtils.defineLazyGetter(imports, "supportsString", function() {
|
|
return Components.classes["@mozilla.org/supports-string;1"]
|
|
.createInstance(Components.interfaces.nsISupportsString);
|
|
});
|
|
|
|
const TEST_URI = "data:text/html;charset=utf-8,gcli-pref";
|
|
|
|
function test() {
|
|
DeveloperToolbarTest.test(TEST_URI, [
|
|
setup,
|
|
testPrefSetEnable,
|
|
testPrefStatus,
|
|
testPrefBoolExec,
|
|
testPrefNumberExec,
|
|
testPrefStringExec,
|
|
testPrefSetDisable,
|
|
shutdown
|
|
]);
|
|
}
|
|
|
|
let tiltEnabledOrig = undefined;
|
|
let tabSizeOrig = undefined;
|
|
let remoteHostOrig = undefined;
|
|
|
|
function setup() {
|
|
Components.utils.import("resource://gre/modules/devtools/Require.jsm", imports);
|
|
imports.settings = imports.require("gcli/settings");
|
|
|
|
tiltEnabledOrig = imports.prefBranch.getBoolPref("devtools.tilt.enabled");
|
|
tabSizeOrig = imports.prefBranch.getIntPref("devtools.editor.tabsize");
|
|
remoteHostOrig = imports.prefBranch.getComplexValue(
|
|
"devtools.debugger.remote-host",
|
|
Components.interfaces.nsISupportsString).data;
|
|
|
|
info("originally: devtools.tilt.enabled = " + tiltEnabledOrig);
|
|
info("originally: devtools.editor.tabsize = " + tabSizeOrig);
|
|
info("originally: devtools.debugger.remote-host = " + remoteHostOrig);
|
|
}
|
|
|
|
function shutdown() {
|
|
imports.prefBranch.setBoolPref("devtools.tilt.enabled", tiltEnabledOrig);
|
|
imports.prefBranch.setIntPref("devtools.editor.tabsize", tabSizeOrig);
|
|
imports.supportsString.data = remoteHostOrig;
|
|
imports.prefBranch.setComplexValue("devtools.debugger.remote-host",
|
|
Components.interfaces.nsISupportsString,
|
|
imports.supportsString);
|
|
|
|
tiltEnabledOrig = undefined;
|
|
tabSizeOrig = undefined;
|
|
remoteHostOrig = undefined;
|
|
|
|
imports = undefined;
|
|
}
|
|
|
|
function testPrefStatus() {
|
|
helpers.setInput('pref');
|
|
helpers.check({
|
|
input: 'pref',
|
|
hints: '',
|
|
markup: 'IIII',
|
|
status: 'ERROR'
|
|
});
|
|
|
|
helpers.setInput('pref s');
|
|
helpers.check({
|
|
input: 'pref s',
|
|
hints: 'et',
|
|
markup: 'IIIIVI',
|
|
status: 'ERROR'
|
|
});
|
|
|
|
helpers.setInput('pref sh');
|
|
helpers.check({
|
|
input: 'pref sh',
|
|
hints: 'ow',
|
|
markup: 'IIIIVII',
|
|
status: 'ERROR'
|
|
});
|
|
|
|
helpers.setInput('pref show ');
|
|
helpers.check({
|
|
input: 'pref show ',
|
|
markup: 'VVVVVVVVVV',
|
|
status: 'ERROR'
|
|
});
|
|
|
|
helpers.setInput('pref show usetexttospeech');
|
|
helpers.check({
|
|
input: 'pref show usetexttospeech',
|
|
hints: ' -> accessibility.usetexttospeech',
|
|
markup: 'VVVVVVVVVVIIIIIIIIIIIIIII',
|
|
status: 'ERROR'
|
|
});
|
|
|
|
helpers.setInput('pref show devtools.til');
|
|
helpers.check({
|
|
input: 'pref show devtools.til',
|
|
hints: 't.enabled',
|
|
markup: 'VVVVVVVVVVIIIIIIIIIIII',
|
|
status: 'ERROR',
|
|
tooltipState: 'true:importantFieldFlag',
|
|
args: {
|
|
setting: { value: undefined, status: 'INCOMPLETE' },
|
|
}
|
|
});
|
|
|
|
helpers.setInput('pref reset devtools.tilt.enabled');
|
|
helpers.check({
|
|
input: 'pref reset devtools.tilt.enabled',
|
|
hints: '',
|
|
markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV',
|
|
status: 'VALID'
|
|
});
|
|
|
|
helpers.setInput('pref show devtools.tilt.enabled 4');
|
|
helpers.check({
|
|
input: 'pref show devtools.tilt.enabled 4',
|
|
hints: '',
|
|
markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVE',
|
|
status: 'ERROR'
|
|
});
|
|
|
|
helpers.setInput('pref set devtools.tilt.enabled 4');
|
|
helpers.check({
|
|
input: 'pref set devtools.tilt.enabled 4',
|
|
hints: '',
|
|
markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVE',
|
|
status: 'ERROR',
|
|
args: {
|
|
setting: { arg: ' devtools.tilt.enabled' },
|
|
value: { status: 'ERROR', message: 'Can\'t use \'4\'.' },
|
|
}
|
|
});
|
|
|
|
helpers.setInput('pref set devtools.editor.tabsize 4');
|
|
helpers.check({
|
|
input: 'pref set devtools.editor.tabsize 4',
|
|
hints: '',
|
|
markup: 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV',
|
|
status: 'VALID',
|
|
args: {
|
|
setting: { arg: ' devtools.editor.tabsize' },
|
|
value: { value: 4 },
|
|
}
|
|
});
|
|
|
|
helpers.setInput('pref list');
|
|
helpers.check({
|
|
input: 'pref list',
|
|
hints: ' -> pref set',
|
|
markup: 'IIIIVIIII',
|
|
status: 'ERROR'
|
|
});
|
|
}
|
|
|
|
function testPrefSetEnable() {
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.editor.tabsize 9",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.editor.tabsize"),
|
|
value: 9
|
|
},
|
|
completed: true,
|
|
outputMatch: [ /void your warranty/, /I promise/ ],
|
|
});
|
|
|
|
is(imports.prefBranch.getIntPref("devtools.editor.tabsize"),
|
|
tabSizeOrig,
|
|
"devtools.editor.tabsize is unchanged");
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.gcli.allowSet true",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.gcli.allowSet"),
|
|
value: true
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
is(imports.prefBranch.getBoolPref("devtools.gcli.allowSet"), true,
|
|
"devtools.gcli.allowSet is true");
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.editor.tabsize 10",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.editor.tabsize"),
|
|
value: 10
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
is(imports.prefBranch.getIntPref("devtools.editor.tabsize"),
|
|
10,
|
|
"devtools.editor.tabsize is 10");
|
|
}
|
|
|
|
function testPrefBoolExec() {
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref show devtools.tilt.enabled",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.tilt.enabled")
|
|
},
|
|
completed: true,
|
|
outputMatch: new RegExp("^" + tiltEnabledOrig + "$"),
|
|
});
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.tilt.enabled true",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.tilt.enabled"),
|
|
value: true
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
is(imports.prefBranch.getBoolPref("devtools.tilt.enabled"), true,
|
|
"devtools.tilt.enabled is true");
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref show devtools.tilt.enabled",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.tilt.enabled")
|
|
},
|
|
completed: true,
|
|
outputMatch: new RegExp("^true$"),
|
|
});
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.tilt.enabled false",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.tilt.enabled"),
|
|
value: false
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref show devtools.tilt.enabled",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.tilt.enabled")
|
|
},
|
|
completed: true,
|
|
outputMatch: new RegExp("^false$"),
|
|
});
|
|
|
|
is(imports.prefBranch.getBoolPref("devtools.tilt.enabled"), false,
|
|
"devtools.tilt.enabled is false");
|
|
}
|
|
|
|
function testPrefNumberExec() {
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref show devtools.editor.tabsize",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.editor.tabsize")
|
|
},
|
|
completed: true,
|
|
outputMatch: new RegExp("^10$"),
|
|
});
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.editor.tabsize 20",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.editor.tabsize"),
|
|
value: 20
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref show devtools.editor.tabsize",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.editor.tabsize")
|
|
},
|
|
completed: true,
|
|
outputMatch: new RegExp("^20$"),
|
|
});
|
|
|
|
is(imports.prefBranch.getIntPref("devtools.editor.tabsize"), 20,
|
|
"devtools.editor.tabsize is 20");
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.editor.tabsize 1",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.editor.tabsize"),
|
|
value: true
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref show devtools.editor.tabsize",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.editor.tabsize")
|
|
},
|
|
completed: true,
|
|
outputMatch: new RegExp("^1$"),
|
|
});
|
|
|
|
is(imports.prefBranch.getIntPref("devtools.editor.tabsize"), 1,
|
|
"devtools.editor.tabsize is 1");
|
|
}
|
|
|
|
function testPrefStringExec() {
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref show devtools.debugger.remote-host",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.debugger.remote-host")
|
|
},
|
|
completed: true,
|
|
outputMatch: new RegExp("^" + remoteHostOrig + "$"),
|
|
});
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.debugger.remote-host e.com",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.debugger.remote-host"),
|
|
value: "e.com"
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref show devtools.debugger.remote-host",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.debugger.remote-host")
|
|
},
|
|
completed: true,
|
|
outputMatch: new RegExp("^e.com$"),
|
|
});
|
|
|
|
var ecom = imports.prefBranch.getComplexValue(
|
|
"devtools.debugger.remote-host",
|
|
Components.interfaces.nsISupportsString).data;
|
|
is(ecom, "e.com", "devtools.debugger.remote-host is e.com");
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.debugger.remote-host moz.foo",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.debugger.remote-host"),
|
|
value: "moz.foo"
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref show devtools.debugger.remote-host",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.debugger.remote-host")
|
|
},
|
|
completed: true,
|
|
outputMatch: new RegExp("^moz.foo$"),
|
|
});
|
|
|
|
var mozfoo = imports.prefBranch.getComplexValue(
|
|
"devtools.debugger.remote-host",
|
|
Components.interfaces.nsISupportsString).data;
|
|
is(mozfoo, "moz.foo", "devtools.debugger.remote-host is moz.foo");
|
|
}
|
|
|
|
function testPrefSetDisable() {
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.editor.tabsize 32",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.editor.tabsize"),
|
|
value: 32
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
is(imports.prefBranch.getIntPref("devtools.editor.tabsize"), 32,
|
|
"devtools.editor.tabsize is 32");
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref reset devtools.gcli.allowSet",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.gcli.allowSet")
|
|
},
|
|
completed: true,
|
|
blankOutput: true,
|
|
});
|
|
|
|
is(imports.prefBranch.getBoolPref("devtools.gcli.allowSet"), false,
|
|
"devtools.gcli.allowSet is false");
|
|
|
|
DeveloperToolbarTest.exec({
|
|
typed: "pref set devtools.editor.tabsize 33",
|
|
args: {
|
|
setting: imports.settings.getSetting("devtools.editor.tabsize"),
|
|
value: 33
|
|
},
|
|
completed: true,
|
|
outputMatch: [ /void your warranty/, /I promise/ ],
|
|
});
|
|
|
|
is(imports.prefBranch.getIntPref("devtools.editor.tabsize"), 32,
|
|
"devtools.editor.tabsize is still 32");
|
|
}
|