72 lines
1.5 KiB
JavaScript
72 lines
1.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
add_task(async function test_getTaskbarTabShortcutPath() {
|
|
// no exception generated for the following
|
|
ShellService.getTaskbarTabShortcutPath("working");
|
|
ShellService.getTaskbarTabShortcutPath("workingPath.ink");
|
|
|
|
// confirm that multiple spaces aren't collapsed
|
|
ShellService.getTaskbarTabShortcutPath("working path.ink");
|
|
|
|
const invalidFilenames = [
|
|
// These are reserved characters that can't be in names
|
|
"?",
|
|
":",
|
|
"<",
|
|
">",
|
|
"|",
|
|
'"',
|
|
"/",
|
|
"*",
|
|
"\t",
|
|
"\r",
|
|
"\n",
|
|
|
|
// No path manipulation allowed
|
|
"..\\something",
|
|
".\\something",
|
|
".something",
|
|
|
|
// Windows doesn't allow filenames ending in period or a space
|
|
"something.",
|
|
"something ",
|
|
|
|
// The following are special reserved names
|
|
"CON",
|
|
"PRN",
|
|
"AUX",
|
|
"NUL",
|
|
"COM1",
|
|
"COM2",
|
|
"COM3",
|
|
"COM4",
|
|
"COM5",
|
|
"COM6",
|
|
"COM7",
|
|
"COM8",
|
|
"COM9",
|
|
"LPT1",
|
|
"LPT2",
|
|
"LPT3",
|
|
"LPT4",
|
|
"LPT5",
|
|
"LPT6",
|
|
"LPT7",
|
|
"LPT8",
|
|
"LPT9",
|
|
];
|
|
|
|
for (const invalidFilename of invalidFilenames) {
|
|
Assert.throws(
|
|
() => {
|
|
ShellService.getTaskbarTabShortcutPath(invalidFilename);
|
|
},
|
|
/NS_ERROR_FILE_INVALID_PATH/,
|
|
invalidFilename +
|
|
" is an invalid filename; getTaskbarTabShortcutPath should have failed with it as a parameter."
|
|
);
|
|
}
|
|
});
|