Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
* vim: sw=4 ts=4 sts=4 et
* 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/. */
setupProfileService();
async function doOne(extraArgs = [], extraEnv = {}) {
let sentinel = Services.uuid.generateUUID().toString();
sentinel = sentinel.substring(1, sentinel.length - 1);
let stdoutLines = [];
let exitCode = await do_backgroundtask("unique_profile", {
extraArgs: [sentinel, ...extraArgs],
extraEnv,
onStdoutLine: line => stdoutLines.push(line),
});
Assert.equal(0, exitCode);
let infos = [];
let profiles = [];
for (let line of stdoutLines) {
if (line.includes(sentinel)) {
let info = JSON.parse(line.split(sentinel)[1]);
infos.push(info);
profiles.push(info[1]);
}
}
Assert.equal(
1,
profiles.length,
`Found 1 profile: ${JSON.stringify(profiles)}`
);
return profiles[0];
}
// Run a background task which displays its profile directory, and verify that
// the "normal profile configuration" mechanisms override the background
// task-specific default.
add_task(async function test_backgroundtask_profile_service_configuration() {
let profileService = Cc["@mozilla.org/toolkit/profile-service;1"].getService(
Ci.nsIToolkitProfileService
);
let profile = profileService.createUniqueProfile(
do_get_profile(),
"test_locked_profile"
);
let path = profile.rootDir.path;
Assert.ok(
profile.rootDir.exists(),
`Temporary profile directory does exists: ${profile.rootDir}`
);
let profileDir = await doOne(["--profile", path]);
Assert.equal(profileDir, path);
profileDir = await doOne([], { XRE_PROFILE_PATH: path });
Assert.equal(profileDir, path);
});