diff options
Diffstat (limited to 'browser/components/uitour/test/browser_UITour_resetProfile.js')
-rw-r--r-- | browser/components/uitour/test/browser_UITour_resetProfile.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/browser/components/uitour/test/browser_UITour_resetProfile.js b/browser/components/uitour/test/browser_UITour_resetProfile.js new file mode 100644 index 000000000..c91d0a4f2 --- /dev/null +++ b/browser/components/uitour/test/browser_UITour_resetProfile.js @@ -0,0 +1,48 @@ +"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(function* test_resetFirefox() { + let canReset = yield getConfigurationPromise("canReset"); + ok(!canReset, "Shouldn't be able to reset from mochitest's temporary profile."); + let dialogPromise = new Promise((resolve) => { + let winWatcher = Cc["@mozilla.org/embedcomp/window-watcher;1"]. + getService(Ci.nsIWindowWatcher); + winWatcher.registerNotification(function onOpen(subj, topic, data) { + if (topic == "domwindowopened" && subj instanceof Ci.nsIDOMWindow) { + subj.addEventListener("load", function onLoad() { + subj.removeEventListener("load", onLoad); + if (subj.document.documentURI == + "chrome://global/content/resetProfile.xul") { + winWatcher.unregisterNotification(onOpen); + ok(true, "Observed search manager window open"); + is(subj.opener, window, + "Reset Firefox event opened a reset profile window."); + subj.close(); + resolve(); + } + }); + } + }); + }); + + // 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 = yield getConfigurationPromise("canReset"); + ok(canReset, "Should be able to reset from mochitest's temporary profile once it's in the profile manager."); + yield gContentAPI.resetFirefox(); + yield dialogPromise; + tempProfile.remove(false); + canReset = yield getConfigurationPromise("canReset"); + ok(!canReset, "Shouldn't be able to reset from mochitest's temporary profile once removed from the profile manager."); +}); + |