Source code

Revision control

Copy as Markdown

Other Tools

<meta charset="utf-8">
<title>Downloads Test</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="/tests/SimpleTest/ExtensionTestUtils.js"></script>
<script type="text/javascript" src="head.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
<script type="text/javascript">
"use strict";
async function background() {
() =>,
/Incorrect argument types for,
"Should fail without options"
() =>{url: "invalid url"}),
/invalid url is not a valid URL/,
"Should fail on invalid URL"
() =>{}),
/Property "url" is required/,
"Should fail with no URL"
() =>{url, method: "DELETE"}),
/Invalid enumeration value "DELETE"/,
"Should fail with invalid method"
await browser.test.assertRejects({url, headers: [{name: "Host", value: "Banana"}]}),
/Forbidden request header name/,
"Should fail with a forbidden header"
const absoluteFilename = SpecialPowers.Services.appinfo.OS === "WINNT"
? "C:\\tmp\\file.gif"
: "/tmp/file.gif";
await browser.test.assertRejects({url, filename: absoluteFilename}),
/filename must not be an absolute path/,
"Should fail with an absolute file path"
await browser.test.assertRejects({url, filename: ""}),
/filename must not be empty/,
"Should fail with an empty file path"
await browser.test.assertRejects({url, filename: "file."}),
/filename must not contain illegal characters/,
"Should fail with a dot in the filename"
await browser.test.assertRejects({url, filename: "../file.gif"}),
/filename must not contain back-references/,
"Should fail with a file path that contains back-references"
add_task(async function test_invalid_download_parameters() {
const extension = ExtensionTestUtils.loadExtension({
manifest: {permissions: ["downloads"]},
await extension.startup();
await extension.awaitFinish("download.done");
await extension.unload();