Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/base/test/common/mime.test.ts
5243 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import assert from 'assert';
7
import { getExtensionForMimeType, normalizeMimeType } from '../../common/mime.js';
8
import { ensureNoDisposablesAreLeakedInTestSuite } from './utils.js';
9
10
suite('Mime', () => {
11
12
test('normalize', () => {
13
assert.strictEqual(normalizeMimeType('invalid'), 'invalid');
14
assert.strictEqual(normalizeMimeType('invalid', true), undefined);
15
assert.strictEqual(normalizeMimeType('Text/plain'), 'text/plain');
16
assert.strictEqual(normalizeMimeType('Text/pläin'), 'text/pläin');
17
assert.strictEqual(normalizeMimeType('Text/plain;UPPER'), 'text/plain;UPPER');
18
assert.strictEqual(normalizeMimeType('Text/plain;lower'), 'text/plain;lower');
19
});
20
21
test('getExtensionForMimeType', () => {
22
// Note: for MIME types with multiple extensions (e.g., image/jpg -> .jpe, .jpeg, .jpg),
23
// the function returns the first matching extension in iteration order
24
assert.ok(['.jpe', '.jpeg', '.jpg'].includes(getExtensionForMimeType('image/jpg')!));
25
// image/jpeg is an alias for image/jpg and should also return a valid extension
26
assert.ok(['.jpe', '.jpeg', '.jpg'].includes(getExtensionForMimeType('image/jpeg')!));
27
assert.strictEqual(getExtensionForMimeType('image/png'), '.png');
28
assert.strictEqual(getExtensionForMimeType('image/gif'), '.gif');
29
assert.strictEqual(getExtensionForMimeType('image/webp'), '.webp');
30
assert.ok(['.mp2', '.mp2a', '.mp3', '.mpga', '.m2a', '.m3a'].includes(getExtensionForMimeType('audio/mpeg')!));
31
assert.ok(['.mp4', '.mp4v', '.mpg4'].includes(getExtensionForMimeType('video/mp4')!));
32
assert.strictEqual(getExtensionForMimeType('unknown/type'), undefined);
33
});
34
35
ensureNoDisposablesAreLeakedInTestSuite();
36
});
37
38