summaryrefslogtreecommitdiffstats
path: root/dom/media/test/browser/browser_partial.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/test/browser/browser_partial.js')
-rw-r--r--dom/media/test/browser/browser_partial.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/dom/media/test/browser/browser_partial.js b/dom/media/test/browser/browser_partial.js
new file mode 100644
index 0000000000..572287b392
--- /dev/null
+++ b/dom/media/test/browser/browser_partial.js
@@ -0,0 +1,56 @@
+async function test() {
+ waitForExplicitFinish();
+ const target =
+ "https://example.com/browser/dom/media/test/browser/file_empty_page.html";
+
+ info("Loading download page...");
+
+ let tab = BrowserTestUtils.addTab(gBrowser, target);
+
+ registerCleanupFunction(function () {
+ gBrowser.removeTab(tab);
+ window.restore();
+ });
+
+ gBrowser.selectedTab = tab;
+ BrowserTestUtils.browserLoaded(tab.linkedBrowser, false, target).then(
+ async () => {
+ info("Page loaded.");
+ let allDownloads = await Downloads.getList(Downloads.ALL);
+ let started = new Promise(resolve => {
+ // With no download modal, the download will begin on its own, so we need
+ // to wait to be notified by the downloads list when that happens.
+ let downloadView = {
+ onDownloadAdded(download) {
+ ok(true, "Download was started.");
+ download.cancel();
+ allDownloads.removeView(this);
+ allDownloads.removeFinished();
+ resolve();
+ },
+ };
+ allDownloads.addView(downloadView);
+ });
+
+ let revoked = SpecialPowers.spawn(
+ tab.linkedBrowser,
+ [],
+ () =>
+ new Promise(resolve => {
+ let link = content.document.createElement("a");
+ link.href = "force_octet_stream.mp4";
+ content.document.body.appendChild(link);
+ info("Clicking HTMLAnchorElement...");
+ link.click();
+ info("Clicked HTMLAnchorElement.");
+ resolve();
+ })
+ );
+
+ info("Waiting for async activities...");
+ await Promise.all([revoked, started]);
+ ok(true, "Exiting test.");
+ finish();
+ }
+ );
+}