Skip to content

Commit

Permalink
Bug 1824468, basic tests for validating extensions, r=Gijs
Browse files Browse the repository at this point in the history
  • Loading branch information
EnnDeakin2 committed May 16, 2023
1 parent 0c822b7 commit bba74fb
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 9 deletions.
31 changes: 22 additions & 9 deletions uriloader/exthandler/tests/mochitest/browser_save_filenames.js
Original file line number Diff line number Diff line change
Expand Up @@ -472,15 +472,28 @@ add_task(async function saveas_files() {
let download = await downloadFinishedPromise;

let filename = PathUtils.filename(download.target.path);
is(
filename,
expectedItems[idx].filename,
"open link" +
idx +
" " +
expectedItems[idx].filename +
" was downloaded with the correct name when opened as a url"
);

let expectedFilename = expectedItems[idx].filename;
if (expectedFilename.length > 240) {
ok(
checkShortenedFilename(filename, expectedFilename),
"open link" +
idx +
" " +
expectedFilename +
" was downloaded with the correct name when opened as a url (with long name)"
);
} else {
is(
filename,
expectedFilename,
"open link" +
idx +
" " +
expectedFilename +
" was downloaded with the correct name when opened as a url"
);
}

try {
await IOUtils.remove(download.target.path);
Expand Down
11 changes: 11 additions & 0 deletions uriloader/exthandler/tests/mochitest/save_filenames.html
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,17 @@
<!-- unrecognized file type starting with a dot -->
<object id="i80" data="http://localhost:8000/save_filename.sjs?type=otherimage&filename=.alternate" data-filename="alternate"
data-unknown="true"></object>

<!-- filename with lnk extension -->
<img id="i81" src="http://localhost:8000/save_filename.sjs?type=nonsense&filename=shortcut.lnk"
data-nodrag="true" data-unknown="typeonly"
data-filename="shortcut.lnk.download">

<!-- long filename with lnk extension -->
<img id="i82" src="http://localhost:8000/save_filename.sjs?type=nonsense&filename=longshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshort1234567890.lnk"
data-nodrag="true" data-unknown="typeonly"
data-filename="longshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshortcutnamelongshort1234567890.lnk.download">

</span>

<!-- This set is used to test the filename specified by the download attribute is validated correctly. -->
Expand Down
31 changes: 31 additions & 0 deletions uriloader/exthandler/tests/unit/test_filename_sanitize.js
Original file line number Diff line number Diff line change
Expand Up @@ -277,4 +277,35 @@ add_task(async function validate_filename_method() {
"라이브99만 시청컬처렐 다이제스티브 3박스 - 3박스 더 (뚱랑이 굿즈 증정) - 선물용 쇼핑백 2장컬처렐 다이제스티브 3박스 - 3박스 더 (뚱랑이 굿즈 증정) - 선물용 쇼핑백 2장24%102 000원 브랜드데",
"very filename with extension only"
);

Assert.equal(
mimeService.validateFileNameForSaving("filename.LNK", "text/unknown", 0),
"filename.LNK.download",
"filename.LNK"
);
Assert.equal(
mimeService.validateFileNameForSaving("filename.local", "text/unknown", 0),
"filename.local.download",
"filename.local"
);
Assert.equal(
mimeService.validateFileNameForSaving("filename.url", "text/unknown", 0),
"filename.url.download",
"filename.url"
);
Assert.equal(
mimeService.validateFileNameForSaving("filename.URl", "text/unknown", 0),
"filename.URl.download",
"filename.URl"
);
Assert.equal(
mimeService.validateFileNameForSaving("filename.scf", "text/unknown", 0),
"filename.scf.download",
"filename.scf"
);
Assert.equal(
mimeService.validateFileNameForSaving("filename.sCF", "text/unknown", 0),
"filename.sCF.download",
"filename.sCF"
);
});

0 comments on commit bba74fb

Please sign in to comment.