/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const { Branch, EnvironmentPrefs, MarionettePrefs } =
ChromeUtils.importESModule(
"chrome://remote/content/marionette/prefs.sys.mjs"
);
function reset() {
Services.prefs.setBoolPref(
"test.bool",
false);
Services.prefs.setStringPref(
"test.string",
"foo");
Services.prefs.setIntPref(
"test.int", 777);
}
// Give us something to work with:
reset();
add_task(
function test_Branch_get_root() {
let root =
new Branch(
null);
equal(
false, root.get(
"test.bool"));
equal(
"foo", root.get(
"test.string"));
equal(777, root.get(
"test.int"));
Assert.
throws(() => root.get(
"doesnotexist"), /TypeError/);
});
add_task(
function test_Branch_get_branch() {
let test =
new Branch(
"test.");
equal(
false, test.get(
"bool"));
equal(
"foo", test.get(
"string"));
equal(777, test.get(
"int"));
Assert.
throws(() => test.get(
"doesnotexist"), /TypeError/);
});
add_task(
function test_Branch_set_root() {
let root =
new Branch(
null);
try {
root.set(
"test.string",
"bar");
root.set(
"test.in", 777);
root.set(
"test.bool",
true);
equal(
"bar", Services.prefs.getStringPref(
"test.string"));
equal(777, Services.prefs.getIntPref(
"test.int"));
equal(
true, Services.prefs.getBoolPref(
"test.bool"));
}
finally {
reset();
}
});
add_task(
function test_Branch_set_branch() {
let test =
new Branch(
"test.");
try {
test.set(
"string",
"bar");
test.set(
"int", 888);
test.set(
"bool",
true);
equal(
"bar", Services.prefs.getStringPref(
"test.string"));
equal(888, Services.prefs.getIntPref(
"test.int"));
equal(
true, Services.prefs.getBoolPref(
"test.bool"));
}
finally {
reset();
}
});
add_task(
function test_EnvironmentPrefs_from() {
let prefsTable = {
"test.bool":
true,
"test.int": 888,
"test.string":
"bar",
};
Services.env.set(
"FOO", JSON.stringify(prefsTable));
try {
for (let [key, value] of EnvironmentPrefs.from(
"FOO")) {
equal(prefsTable[key], value);
}
}
finally {
Services.env.set(
"FOO",
null);
}
});
add_task(
function test_MarionettePrefs_getters() {
equal(
false, MarionettePrefs.clickToStart);
equal(2828, MarionettePrefs.port);
});
add_task(
function test_MarionettePrefs_setters() {
try {
MarionettePrefs.port = 777;
equal(777, MarionettePrefs.port);
}
finally {
Services.prefs.clearUserPref(
"marionette.port");
}
});