diff options
| author | tamaina <tamaina@hotmail.co.jp> | 2023-03-04 16:51:07 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-04 16:51:07 +0900 |
| commit | 2d551a8598de12210ddb7f708561e51867ce3f10 (patch) | |
| tree | 59fea9e7a025693814b8e5e596dc2c43e6464034 /packages/backend/test/unit/misc | |
| parent | fix(server): DriveFile related N+1 query when call note packMany (again) (#10... (diff) | |
| download | misskey-2d551a8598de12210ddb7f708561e51867ce3f10.tar.gz misskey-2d551a8598de12210ddb7f708561e51867ce3f10.tar.bz2 misskey-2d551a8598de12210ddb7f708561e51867ce3f10.zip | |
enhance(server): downloadUrlでContent-Dispositionからファイル名を取得 (#10150)
* enhance(server): downloadUrlでContent-Dispositionからファイル名を取得
Resolve #10036
Resolve #4750
* untitled
* オブジェクトストレージのContent-Dispositionのファイル名の拡張子をContent-Typeに添ったものにする
* :v:
* tiff
* fix filename
* add test
* /files/でもContent-Disposition
* comment
* fix test
Diffstat (limited to 'packages/backend/test/unit/misc')
| -rw-r--r-- | packages/backend/test/unit/misc/others.ts | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/backend/test/unit/misc/others.ts b/packages/backend/test/unit/misc/others.ts new file mode 100644 index 0000000000..8241d3078d --- /dev/null +++ b/packages/backend/test/unit/misc/others.ts @@ -0,0 +1,39 @@ +import { describe, test, expect } from '@jest/globals'; +import { contentDisposition } from '@/misc/content-disposition.js'; +import { correctFilename } from '@/misc/correct-filename.js'; + +describe('misc:content-disposition', () => { + test('inline', () => { + expect(contentDisposition('inline', 'foo bar')).toBe('inline; filename=\"foo_bar\"; filename*=UTF-8\'\'foo%20bar'); + }); + test('attachment', () => { + expect(contentDisposition('attachment', 'foo bar')).toBe('attachment; filename=\"foo_bar\"; filename*=UTF-8\'\'foo%20bar'); + }); + test('non ascii', () => { + expect(contentDisposition('attachment', 'ファイル名')).toBe('attachment; filename=\"_____\"; filename*=UTF-8\'\'%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D'); + }); +}); + +describe('misc:correct-filename', () => { + test('simple', () => { + expect(correctFilename('filename', 'jpg')).toBe('filename.jpg'); + }); + test('with same ext', () => { + expect(correctFilename('filename.jpg', 'jpg')).toBe('filename.jpg'); + }); + test('with different ext', () => { + expect(correctFilename('filename.webp', 'jpg')).toBe('filename.webp.jpg'); + }); + test('non ascii with space', () => { + expect(correctFilename('ファイル 名前', 'jpg')).toBe('ファイル 名前.jpg'); + }); + test('jpeg', () => { + expect(correctFilename('filename.jpeg', 'jpg')).toBe('filename.jpeg'); + }); + test('tiff', () => { + expect(correctFilename('filename.tiff', 'tif')).toBe('filename.tiff'); + }); + test('null ext', () => { + expect(correctFilename('filename', null)).toBe('filename.unknown'); + }); +}); |