gecko/toolkit/components/downloads/test/browser/browser_bug414214.js

54 lines
1.8 KiB
JavaScript
Raw Normal View History

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/. */
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");
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);
// 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);
var win = aSubject.QueryInterface(Ci.nsIDOMEventTarget);
win.addEventListener("DOMContentLoaded", finishUp, false);
});
// 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.");
// Reset the pref to its default value
try {
2010-04-02 00:20:42 -07:00
Services.prefs.clearUserPref(PREF_BDM_CLOSEWHENDONE);
}
catch (err) { }
finish();
}
// 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);
waitForExplicitFinish();
}