summaryrefslogtreecommitdiffstats
path: root/browser/components/uitour/test/browser_UITour_resetProfile.js
blob: 921b4bcefe3b88f6422a55410cb1599995471b55 (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
"use strict";

var gTestTab;
var gContentAPI;

add_task(setup_UITourTest);

// Test that a reset profile dialog appears when "resetFirefox" event is triggered
add_UITour_task(async function test_resetFirefox() {
  let canReset = await getConfigurationPromise("canReset");
  ok(
    !canReset,
    "Shouldn't be able to reset from mochitest's temporary profile."
  );
  let dialogPromise = BrowserTestUtils.promiseAlertDialog(
    "cancel",
    "chrome://global/content/resetProfile.xhtml",
    {
      isSubDialog: true,
    }
  );

  // make reset possible.
  let profileService = Cc["@mozilla.org/toolkit/profile-service;1"].getService(
    Ci.nsIToolkitProfileService
  );
  let currentProfileDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
  let profileName = "mochitest-test-profile-temp-" + Date.now();
  let tempProfile = profileService.createProfile(
    currentProfileDir,
    profileName
  );
  canReset = await getConfigurationPromise("canReset");
  ok(
    canReset,
    "Should be able to reset from mochitest's temporary profile once it's in the profile manager."
  );
  await gContentAPI.resetFirefox();
  await dialogPromise;
  tempProfile.remove(false);
  canReset = await getConfigurationPromise("canReset");
  ok(
    !canReset,
    "Shouldn't be able to reset from mochitest's temporary profile once removed from the profile manager."
  );
});