2012-05-21 04:12:37 -07:00
|
|
|
/* 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/. */
|
2008-01-29 15:43:31 -08:00
|
|
|
|
|
|
|
function test()
|
|
|
|
{
|
|
|
|
const PREF_BDM_CLOSEWHENDONE = "browser.download.manager.closeWhenDone";
|
|
|
|
var dm = Cc["@mozilla.org/download-manager;1"].
|
|
|
|
getService(Ci.nsIDownloadManager);
|
|
|
|
var db = dm.DBConnection;
|
|
|
|
|
|
|
|
// First, we clean up the DM
|
|
|
|
db.executeSimpleSQL("DELETE FROM moz_downloads");
|
|
|
|
|
|
|
|
// See if the DM is already open, and if it is, close it!
|
2010-04-02 00:20:42 -07:00
|
|
|
var win = Services.wm.getMostRecentWindow("Download:Manager");
|
2008-01-29 15:43:31 -08:00
|
|
|
if (win)
|
|
|
|
win.close();
|
|
|
|
|
|
|
|
// We need to set browser.download.manager.closeWhenDone to true to test this
|
2010-04-02 00:20:42 -07:00
|
|
|
Services.prefs.setBoolPref(PREF_BDM_CLOSEWHENDONE, true);
|
2008-01-30 10:15:01 -08:00
|
|
|
|
|
|
|
// register a callback to add a load listener to know when the download
|
|
|
|
// manager opens
|
2010-04-02 00:20:42 -07:00
|
|
|
Services.ww.registerNotification(function (aSubject, aTopic, aData) {
|
|
|
|
Services.ww.unregisterNotification(arguments.callee);
|
2008-01-30 10:15:01 -08:00
|
|
|
|
2010-02-06 00:47:42 -08:00
|
|
|
var win = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
|
|
|
|
win.addEventListener("DOMContentLoaded", finishUp, false);
|
|
|
|
});
|
2008-01-29 15:43:31 -08:00
|
|
|
|
|
|
|
// The window doesn't open once we call show, so we need to wait a little bit
|
|
|
|
function finishUp() {
|
|
|
|
var dmui = Cc["@mozilla.org/download-manager-ui;1"].
|
|
|
|
getService(Ci.nsIDownloadManagerUI);
|
|
|
|
ok(dmui.visible, "Download Manager window is open, as expected.");
|
|
|
|
|
2008-10-01 23:49:45 -07:00
|
|
|
// Reset the pref to its default value
|
2009-10-29 06:44:10 -07:00
|
|
|
try {
|
2010-04-02 00:20:42 -07:00
|
|
|
Services.prefs.clearUserPref(PREF_BDM_CLOSEWHENDONE);
|
2009-10-29 06:44:10 -07:00
|
|
|
}
|
|
|
|
catch (err) { }
|
2008-01-29 15:43:31 -08:00
|
|
|
|
|
|
|
finish();
|
|
|
|
}
|
|
|
|
|
2008-01-30 10:15:01 -08:00
|
|
|
// OK, let's pull up the UI
|
|
|
|
// Linux uses y, everything else is j
|
|
|
|
var key = navigator.platform.match("Linux") ? "y" : "j";
|
|
|
|
EventUtils.synthesizeKey(key, {metaKey: true}, window.opener);
|
|
|
|
|
2008-01-29 15:43:31 -08:00
|
|
|
waitForExplicitFinish();
|
|
|
|
}
|