1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
/* 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-settings";
function test() {
DeveloperToolbarTest.test(TEST_URI, [ setup, testSettings, shutdown ]);
}
let tiltEnabled = undefined;
let tabSize = undefined;
let remoteHost = undefined;
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");
tiltEnabled = imports.settings.getSetting("devtools.tilt.enabled");
tabSize = imports.settings.getSetting("devtools.editor.tabsize");
remoteHost = imports.settings.getSetting("devtools.debugger.remote-host");
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);
tiltEnabled = undefined;
tabSize = undefined;
remoteHost = undefined;
tiltEnabledOrig = undefined;
tabSizeOrig = undefined;
remoteHostOrig = undefined;
imports = undefined;
}
function testSettings() {
is(tiltEnabled.value, tiltEnabledOrig, "tiltEnabled default");
is(tabSize.value, tabSizeOrig, "tabSize default");
is(remoteHost.value, remoteHostOrig, "remoteHost default");
tiltEnabled.setDefault();
tabSize.setDefault();
remoteHost.setDefault();
let tiltEnabledDefault = tiltEnabled.value;
let tabSizeDefault = tabSize.value;
let remoteHostDefault = remoteHost.value;
tiltEnabled.value = false;
tabSize.value = 42;
remoteHost.value = "example.com"
is(tiltEnabled.value, false, "tiltEnabled basic");
is(tabSize.value, 42, "tabSize basic");
is(remoteHost.value, "example.com", "remoteHost basic");
function tiltEnabledCheck(ev) {
is(ev.setting, tiltEnabled, "tiltEnabled event setting");
is(ev.value, true, "tiltEnabled event value");
is(ev.setting.value, true, "tiltEnabled event setting value");
}
tiltEnabled.onChange.add(tiltEnabledCheck);
tiltEnabled.value = true;
is(tiltEnabled.value, true, "tiltEnabled change");
function tabSizeCheck(ev) {
is(ev.setting, tabSize, "tabSize event setting");
is(ev.value, 1, "tabSize event value");
is(ev.setting.value, 1, "tabSize event setting value");
}
tabSize.onChange.add(tabSizeCheck);
tabSize.value = 1;
is(tabSize.value, 1, "tabSize change");
function remoteHostCheck(ev) {
is(ev.setting, remoteHost, "remoteHost event setting");
is(ev.value, "y.com", "remoteHost event value");
is(ev.setting.value, "y.com", "remoteHost event setting value");
}
remoteHost.onChange.add(remoteHostCheck);
remoteHost.value = "y.com";
is(remoteHost.value, "y.com", "remoteHost change");
tiltEnabled.onChange.remove(tiltEnabledCheck);
tabSize.onChange.remove(tabSizeCheck);
remoteHost.onChange.remove(remoteHostCheck);
function remoteHostReCheck(ev) {
is(ev.setting, remoteHost, "remoteHost event reset");
is(ev.value, null, "remoteHost event revalue");
is(ev.setting.value, null, "remoteHost event setting revalue");
}
remoteHost.onChange.add(remoteHostReCheck);
tiltEnabled.setDefault();
tabSize.setDefault();
remoteHost.setDefault();
remoteHost.onChange.remove(remoteHostReCheck);
is(tiltEnabled.value, tiltEnabledDefault, "tiltEnabled reset");
is(tabSize.value, tabSizeDefault, "tabSize reset");
is(remoteHost.value, remoteHostDefault, "remoteHost reset");
}
|