Path: blob/main/src/vs/platform/extensionManagement/test/common/extensionManagement.test.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/4import assert from 'assert';5import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js';6import { EXTENSION_IDENTIFIER_PATTERN } from '../../common/extensionManagement.js';7import { ExtensionKey } from '../../common/extensionManagementUtil.js';8import { TargetPlatform } from '../../../extensions/common/extensions.js';910suite('Extension Identifier Pattern', () => {1112ensureNoDisposablesAreLeakedInTestSuite();1314test('extension identifier pattern', () => {15const regEx = new RegExp(EXTENSION_IDENTIFIER_PATTERN);16assert.strictEqual(true, regEx.test('publisher.name'));17assert.strictEqual(true, regEx.test('publiSher.name'));18assert.strictEqual(true, regEx.test('publisher.Name'));19assert.strictEqual(true, regEx.test('PUBLISHER.NAME'));20assert.strictEqual(true, regEx.test('PUBLISHEr.NAMe'));21assert.strictEqual(true, regEx.test('PUBLISHEr.N-AMe'));22assert.strictEqual(true, regEx.test('PUB-LISHEr.NAMe'));23assert.strictEqual(true, regEx.test('PUB-LISHEr.N-AMe'));24assert.strictEqual(true, regEx.test('PUBLISH12Er90.N-A54Me123'));25assert.strictEqual(true, regEx.test('111PUBLISH12Er90.N-1111A54Me123'));26assert.strictEqual(false, regEx.test('publishername'));27assert.strictEqual(false, regEx.test('-publisher.name'));28assert.strictEqual(false, regEx.test('publisher.-name'));29assert.strictEqual(false, regEx.test('-publisher.-name'));30assert.strictEqual(false, regEx.test('publ_isher.name'));31assert.strictEqual(false, regEx.test('publisher._name'));32});3334test('extension key', () => {35assert.strictEqual(new ExtensionKey({ id: 'pub.extension-name' }, '1.0.1').toString(), 'pub.extension-name-1.0.1');36assert.strictEqual(new ExtensionKey({ id: 'pub.extension-name' }, '1.0.1', TargetPlatform.UNDEFINED).toString(), 'pub.extension-name-1.0.1');37assert.strictEqual(new ExtensionKey({ id: 'pub.extension-name' }, '1.0.1', TargetPlatform.WIN32_X64).toString(), `pub.extension-name-1.0.1-${TargetPlatform.WIN32_X64}`);38});3940test('extension key parsing', () => {41assert.strictEqual(ExtensionKey.parse('pub.extension-name'), null);42assert.strictEqual(ExtensionKey.parse('[email protected]'), null);43assert.strictEqual(ExtensionKey.parse('pub.extension-name-1.0.1')?.toString(), 'pub.extension-name-1.0.1');44assert.strictEqual(ExtensionKey.parse('pub.extension-name-1.0.1-win32-x64')?.toString(), 'pub.extension-name-1.0.1-win32-x64');45});46});474849