Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Errors

/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
registerCleanupFunction(async function () {
await task_resetState();
});
/**
* Make sure the downloads panel can display items in the right order and
* contains the expected data.
*/
add_task(async function test_basic_functionality() {
// Display one of each download state.
const DownloadData = [
{ state: DownloadsCommon.DOWNLOAD_NOTSTARTED },
{ state: DownloadsCommon.DOWNLOAD_PAUSED },
{ state: DownloadsCommon.DOWNLOAD_FINISHED },
{ state: DownloadsCommon.DOWNLOAD_FAILED },
{ state: DownloadsCommon.DOWNLOAD_CANCELED },
];
// Wait for focus first
await promiseFocus();
// Ensure that state is reset in case previous tests didn't finish.
await task_resetState();
// For testing purposes, show all the download items at once.
var originalCountLimit = DownloadsView.kItemCountLimit;
DownloadsView.kItemCountLimit = DownloadData.length;
registerCleanupFunction(function () {
DownloadsView.kItemCountLimit = originalCountLimit;
});
// Populate the downloads database with the data required by this test.
await task_addDownloads(DownloadData);
// Open the user interface and wait for data to be fully loaded.
await task_openPanel();
// Test item data and count. This also tests the ordering of the display.
let richlistbox = document.getElementById("downloadsListBox");
/* disabled for failing intermittently (bug 767828)
is(richlistbox.itemChildren.length, DownloadData.length,
"There is the correct number of richlistitems");
*/
let itemCount = richlistbox.itemChildren.length;
for (let i = 0; i < itemCount; i++) {
let element = richlistbox.itemChildren[itemCount - i - 1];
let download = DownloadsView.itemForElement(element).download;
is(
DownloadsCommon.stateOfDownload(download),
DownloadData[i].state,
"Download states match up"
);
}
});