blob: 9c93f6cedb67757af79fa80efb5f02465e9363e2 (
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
62
63
64
65
66
|
"use strict";
var gTestTab;
var gContentAPI;
var gContentWindow;
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 = new Promise(resolve => {
Services.ww.registerNotification(function onOpen(subj, topic, data) {
if (topic == "domwindowopened" && subj instanceof Ci.nsIDOMWindow) {
subj.addEventListener(
"load",
function() {
if (
subj.document.documentURI ==
"chrome://global/content/resetProfile.xhtml"
) {
Services.ww.unregisterNotification(onOpen);
ok(true, "Observed search manager window open");
is(
subj.opener,
window,
"Reset Firefox event opened a reset profile window."
);
subj.close();
resolve();
}
},
{ once: 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."
);
});
|