47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
let profileDir;
|
|
add_task(async function setup() {
|
|
profileDir = gProfD.clone();
|
|
profileDir.append("extensions");
|
|
|
|
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
|
|
await promiseStartupManager();
|
|
});
|
|
|
|
// When installing an unpacked addon we derive the ID from the
|
|
// directory name. Make sure that if the directory name is not a valid
|
|
// addon ID that we reject it.
|
|
add_task(async function test_bad_unpacked_path() {
|
|
let MANIFEST_ID = "webext_bad_path@tests.mozilla.org";
|
|
|
|
let manifest = {
|
|
name: "path test",
|
|
description: "test of a bad directory name",
|
|
manifest_version: 2,
|
|
version: "1.0",
|
|
|
|
browser_specific_settings: {
|
|
gecko: {
|
|
id: MANIFEST_ID,
|
|
},
|
|
},
|
|
};
|
|
|
|
const directories = ["not a valid ID", '"quotes"@tests.mozilla.org'];
|
|
|
|
for (let dir of directories) {
|
|
try {
|
|
await promiseWriteWebManifestForExtension(manifest, profileDir, dir);
|
|
} catch (ex) {
|
|
// This can fail if the underlying filesystem (looking at you windows)
|
|
// doesn't handle some of the characters in the ID. In that case,
|
|
// just ignore this test on this platform.
|
|
continue;
|
|
}
|
|
await promiseRestartManager();
|
|
|
|
let addon = await promiseAddonByID(dir);
|
|
Assert.equal(addon, null);
|
|
addon = await promiseAddonByID(MANIFEST_ID);
|
|
Assert.equal(addon, null);
|
|
}
|
|
});
|