summaryrefslogtreecommitdiffstats
path: root/browser/components/downloads/test/browser/browser_library_select_all.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/downloads/test/browser/browser_library_select_all.js')
-rw-r--r--browser/components/downloads/test/browser/browser_library_select_all.js77
1 files changed, 77 insertions, 0 deletions
diff --git a/browser/components/downloads/test/browser/browser_library_select_all.js b/browser/components/downloads/test/browser/browser_library_select_all.js
new file mode 100644
index 0000000000..3d2187b312
--- /dev/null
+++ b/browser/components/downloads/test/browser/browser_library_select_all.js
@@ -0,0 +1,77 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+let gDownloadDir;
+
+add_setup(async function () {
+ await task_resetState();
+
+ if (!gDownloadDir) {
+ gDownloadDir = await setDownloadDir();
+ }
+
+ await task_addDownloads([
+ {
+ state: DownloadsCommon.DOWNLOAD_FINISHED,
+ target: await createDownloadedFile(
+ PathUtils.join(gDownloadDir, "downloaded_one.txt"),
+ "Test file 1"
+ ),
+ },
+ {
+ state: DownloadsCommon.DOWNLOAD_FINISHED,
+ target: await createDownloadedFile(
+ PathUtils.join(gDownloadDir, "downloaded_two.txt"),
+ "Test file 2"
+ ),
+ },
+ ]);
+ registerCleanupFunction(async function () {
+ await task_resetState();
+ await PlacesUtils.history.clear();
+ });
+});
+
+add_task(async function test_select_all() {
+ let win = await openLibrary("Downloads");
+ registerCleanupFunction(() => {
+ win.close();
+ });
+
+ let listbox = win.document.getElementById("downloadsListBox");
+ Assert.ok(listbox, "download list box present");
+ listbox.focus();
+ await TestUtils.waitForCondition(
+ () => listbox.children.length == 2 && listbox.selectedItems.length == 1,
+ "waiting for both items to be present with one selected"
+ );
+ info("Select all the downloads");
+ win.goDoCommand("cmd_selectAll");
+ Assert.equal(
+ listbox.selectedItems.length,
+ listbox.children.length,
+ "All the items should be selected"
+ );
+
+ info("Search for a specific download");
+ let searchBox = win.document.getElementById("searchFilter");
+ searchBox.value = "_one";
+ win.PlacesSearchBox.search(searchBox.value);
+ await TestUtils.waitForCondition(() => {
+ let visibleItems = Array.from(listbox.children).filter(c => !c.hidden);
+ return (
+ visibleItems.length == 1 &&
+ visibleItems[0]._shell.download.target.path.includes("_one")
+ );
+ }, "Waiting for the search to complete");
+ Assert.equal(
+ listbox.selectedItems.length,
+ 0,
+ "Check previous selection has been cleared by the search"
+ );
+ info("Select all the downloads");
+ win.goDoCommand("cmd_selectAll");
+ Assert.equal(listbox.children.length, 2, "Both items are present");
+ Assert.equal(listbox.selectedItems.length, 1, "Only one item is selected");
+ Assert.ok(!listbox.selectedItem.hidden, "The selected item is not hidden");
+});