Current tests for chrome.downloads.* use chrome.downloads.download() to initiate downloads. But when a download is started from clicking a link on a web page, the download backend uses a very different code path (https://dxr.mozilla.org/mozilla-central/source/toolkit/components/jsdownloads/src/DownloadLegacy.js). We should generalize the tests so that we can write the test logic once but execute them with either type of download (and then run both flavors when running all the tests).
More specifically, we should test that downloads started by the user through normal browsing are visible to the chrome.downloads listeners. If it's easier to just run all the tests twice, go for it, but note that the Downloads.jsm tests already exercise both code paths for all the test cases, so the consistency of behavior for consumers of the API should be guaranteed already.