summaryrefslogtreecommitdiffstats
path: root/toolkit/profile/xpcshell/test_select_environment_named.js
blob: 348ce0ff0a71fb8c4eed5e453c87f09941f72d08 (plain)
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
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

/*
 * Tests that the environment variables are used to select a profile.
 */

add_task(async () => {
  let root = makeRandomProfileDir("foo");
  let local = gDataHomeLocal.clone();
  local.append("foo");

  let profileData = {
    options: {
      startWithLastProfile: true,
    },
    profiles: [
      {
        name: "Profile1",
        path: root.leafName,
      },
      {
        name: "Profile2",
        path: "Path2",
        default: true,
      },
      {
        name: "Profile3",
        path: "Path3",
      },
    ],
  };

  writeProfilesIni(profileData);
  checkProfileService(profileData);

  Services.env.set("XRE_PROFILE_PATH", root.path);
  Services.env.set("XRE_PROFILE_LOCAL_PATH", local.path);

  let { rootDir, localDir, profile, didCreate } = selectStartupProfile([
    "-P",
    "Profile3",
  ]);
  checkStartupReason("restart");

  Assert.ok(!didCreate, "Should not have created a new profile.");
  Assert.ok(rootDir.equals(root), "Should have selected the right root dir.");
  Assert.ok(
    localDir.equals(local),
    "Should have selected the right local dir."
  );
  Assert.ok(profile, "A named profile matches this.");
  Assert.equal(profile.name, "Profile1", "The right profile was matched.");

  let service = getProfileService();
  Assert.notEqual(
    service.defaultProfile,
    profile,
    "Should not be the default profile."
  );
});