Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/platform/extensionManagement/test/common/extensionManagement.test.ts
3296 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
import assert from 'assert';
6
import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js';
7
import { EXTENSION_IDENTIFIER_PATTERN } from '../../common/extensionManagement.js';
8
import { ExtensionKey } from '../../common/extensionManagementUtil.js';
9
import { TargetPlatform } from '../../../extensions/common/extensions.js';
10
11
suite('Extension Identifier Pattern', () => {
12
13
ensureNoDisposablesAreLeakedInTestSuite();
14
15
test('extension identifier pattern', () => {
16
const regEx = new RegExp(EXTENSION_IDENTIFIER_PATTERN);
17
assert.strictEqual(true, regEx.test('publisher.name'));
18
assert.strictEqual(true, regEx.test('publiSher.name'));
19
assert.strictEqual(true, regEx.test('publisher.Name'));
20
assert.strictEqual(true, regEx.test('PUBLISHER.NAME'));
21
assert.strictEqual(true, regEx.test('PUBLISHEr.NAMe'));
22
assert.strictEqual(true, regEx.test('PUBLISHEr.N-AMe'));
23
assert.strictEqual(true, regEx.test('PUB-LISHEr.NAMe'));
24
assert.strictEqual(true, regEx.test('PUB-LISHEr.N-AMe'));
25
assert.strictEqual(true, regEx.test('PUBLISH12Er90.N-A54Me123'));
26
assert.strictEqual(true, regEx.test('111PUBLISH12Er90.N-1111A54Me123'));
27
assert.strictEqual(false, regEx.test('publishername'));
28
assert.strictEqual(false, regEx.test('-publisher.name'));
29
assert.strictEqual(false, regEx.test('publisher.-name'));
30
assert.strictEqual(false, regEx.test('-publisher.-name'));
31
assert.strictEqual(false, regEx.test('publ_isher.name'));
32
assert.strictEqual(false, regEx.test('publisher._name'));
33
});
34
35
test('extension key', () => {
36
assert.strictEqual(new ExtensionKey({ id: 'pub.extension-name' }, '1.0.1').toString(), 'pub.extension-name-1.0.1');
37
assert.strictEqual(new ExtensionKey({ id: 'pub.extension-name' }, '1.0.1', TargetPlatform.UNDEFINED).toString(), 'pub.extension-name-1.0.1');
38
assert.strictEqual(new ExtensionKey({ id: 'pub.extension-name' }, '1.0.1', TargetPlatform.WIN32_X64).toString(), `pub.extension-name-1.0.1-${TargetPlatform.WIN32_X64}`);
39
});
40
41
test('extension key parsing', () => {
42
assert.strictEqual(ExtensionKey.parse('pub.extension-name'), null);
43
assert.strictEqual(ExtensionKey.parse('[email protected]'), null);
44
assert.strictEqual(ExtensionKey.parse('pub.extension-name-1.0.1')?.toString(), 'pub.extension-name-1.0.1');
45
assert.strictEqual(ExtensionKey.parse('pub.extension-name-1.0.1-win32-x64')?.toString(), 'pub.extension-name-1.0.1-win32-x64');
46
});
47
});
48
49