mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-22 02:25:05 +00:00
107 lines
3.0 KiB
JavaScript
107 lines
3.0 KiB
JavaScript
/* 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/. */
|
|
var Cr = Components.results;
|
|
|
|
function test_visibility_open()
|
|
{
|
|
var dmui = Cc["@mozilla.org/download-manager-ui;1"].
|
|
getService(Ci.nsIDownloadManagerUI);
|
|
is(dmui.visible, true,
|
|
"nsIDownloadManagerUI indicates that the UI is visible");
|
|
}
|
|
|
|
function test_getAttention_opened()
|
|
{
|
|
var dmui = Cc["@mozilla.org/download-manager-ui;1"].
|
|
getService(Ci.nsIDownloadManagerUI);
|
|
|
|
// switch focus to this window
|
|
window.focus();
|
|
|
|
dmui.getAttention();
|
|
is(dmui.visible, true,
|
|
"nsIDownloadManagerUI indicates that the UI is visible");
|
|
}
|
|
|
|
function test_visibility_closed(aWin)
|
|
{
|
|
var dmui = Cc["@mozilla.org/download-manager-ui;1"].
|
|
getService(Ci.nsIDownloadManagerUI);
|
|
aWin.close();
|
|
is(dmui.visible, false,
|
|
"nsIDownloadManagerUI indicates that the UI is not visible");
|
|
}
|
|
|
|
function test_getAttention_closed()
|
|
{
|
|
var dmui = Cc["@mozilla.org/download-manager-ui;1"].
|
|
getService(Ci.nsIDownloadManagerUI);
|
|
|
|
var exceptionCaught = false;
|
|
try {
|
|
dmui.getAttention();
|
|
} catch (e) {
|
|
is(e.result, Cr.NS_ERROR_UNEXPECTED,
|
|
"Proper exception was caught");
|
|
exceptionCaught = true;
|
|
} finally {
|
|
is(exceptionCaught, true,
|
|
"Exception was caught, as expected");
|
|
}
|
|
}
|
|
|
|
var testFuncs = [
|
|
test_visibility_open
|
|
, test_getAttention_opened
|
|
, test_visibility_closed /* all tests after this *must* expect there to be
|
|
no open window, otherwise they will fail! */
|
|
, test_getAttention_closed
|
|
];
|
|
|
|
function test()
|
|
{
|
|
try {
|
|
if (Services.prefs.getBoolPref("browser.download.useJSTransfer")) {
|
|
return;
|
|
}
|
|
} catch (ex) { }
|
|
|
|
var dm = Cc["@mozilla.org/download-manager;1"].
|
|
getService(Ci.nsIDownloadManager);
|
|
var db = dm.DBConnection;
|
|
|
|
// First, we populate the database with some fake data
|
|
db.executeSimpleSQL("DELETE FROM moz_downloads");
|
|
|
|
// See if the DM is already open, and if it is, close it!
|
|
var win = Services.wm.getMostRecentWindow("Download:Manager");
|
|
if (win)
|
|
win.close();
|
|
|
|
// Ensure that the download manager callbacks and nsIDownloadManagerUI always
|
|
// use the window UI instead of the panel in the browser's window.
|
|
Services.prefs.setBoolPref("browser.download.useToolkitUI", true);
|
|
registerCleanupFunction(function() {
|
|
Services.prefs.clearUserPref("browser.download.useToolkitUI");
|
|
});
|
|
|
|
// OK, now that all the data is in, let's pull up the UI
|
|
Cc["@mozilla.org/download-manager-ui;1"].
|
|
getService(Ci.nsIDownloadManagerUI).show();
|
|
|
|
// The window doesn't open once we call show, so we need to wait a little bit
|
|
function finishUp() {
|
|
var win = Services.wm.getMostRecentWindow("Download:Manager");
|
|
|
|
// Now we can run our tests
|
|
for (var t of testFuncs)
|
|
t(win);
|
|
|
|
finish();
|
|
}
|
|
|
|
waitForExplicitFinish();
|
|
window.setTimeout(finishUp, 1000);
|
|
}
|