summaryrefslogtreecommitdiffstats
path: root/browser/components/downloads/test/browser/browser_downloads_panel_height.js
blob: b154d20f845b289d795acd2deab0ff564be9af2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

/**
 * This test exists because we use a <panelmultiview> element and it handles
 * some of the height changes for us. We need to verify that the height is
 * updated correctly if downloads are removed while the panel is hidden.
 */
add_task(async function test_height_reduced_after_removal() {
  await SpecialPowers.pushPrefEnv({
    set: [["browser.download.autohideButton", false]],
  });
  await promiseButtonShown("downloads-button");
  // downloading two items since the download panel only shows up when at least one item is in it
  await task_addDownloads([{ state: DownloadsCommon.DOWNLOAD_FINISHED }]);
  await task_addDownloads([{ state: DownloadsCommon.DOWNLOAD_FINISHED }]);

  await task_openPanel();
  let panel = document.getElementById("downloadsPanel");
  let heightBeforeRemoval = panel.getBoundingClientRect().height;

  // We want to close the panel before we remove the download from the list.
  DownloadsPanel.hidePanel();
  await task_resetState();
  // keep at least one item in the download list since the panel disabled when it is empty
  await task_addDownloads([{ state: DownloadsCommon.DOWNLOAD_FINISHED }]);

  await task_openPanel();
  let heightAfterRemoval = panel.getBoundingClientRect().height;
  Assert.greater(heightBeforeRemoval, heightAfterRemoval);

  await task_resetState();
});