Path: blob/main/src/vs/workbench/test/browser/viewlet.test.ts
4778 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*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { Registry } from '../../../platform/registry/common/platform.js';7import { PaneCompositeDescriptor, Extensions, PaneCompositeRegistry, PaneComposite } from '../../browser/panecomposite.js';8import { isFunction } from '../../../base/common/types.js';9import { IBoundarySashes } from '../../../base/browser/ui/sash/sash.js';10import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../base/test/common/utils.js';1112suite('Viewlets', () => {1314class TestViewlet extends PaneComposite {1516constructor() {17super('id', null!, null!, null!, null!, null!, null!, null!);18}1920override layout(dimension: any): void {21throw new Error('Method not implemented.');22}2324override setBoundarySashes(sashes: IBoundarySashes): void {25throw new Error('Method not implemented.');26}2728protected override createViewPaneContainer() { return null!; }29}3031test('ViewletDescriptor API', function () {32const d = PaneCompositeDescriptor.create(TestViewlet, 'id', 'name', 'class', 5);33assert.strictEqual(d.id, 'id');34assert.strictEqual(d.name, 'name');35assert.strictEqual(d.cssClass, 'class');36assert.strictEqual(d.order, 5);37});3839test('Editor Aware ViewletDescriptor API', function () {40let d = PaneCompositeDescriptor.create(TestViewlet, 'id', 'name', 'class', 5);41assert.strictEqual(d.id, 'id');42assert.strictEqual(d.name, 'name');4344d = PaneCompositeDescriptor.create(TestViewlet, 'id', 'name', 'class', 5);45assert.strictEqual(d.id, 'id');46assert.strictEqual(d.name, 'name');47});4849test('Viewlet extension point and registration', function () {50assert(isFunction(Registry.as<PaneCompositeRegistry>(Extensions.Viewlets).registerPaneComposite));51assert(isFunction(Registry.as<PaneCompositeRegistry>(Extensions.Viewlets).getPaneComposite));52assert(isFunction(Registry.as<PaneCompositeRegistry>(Extensions.Viewlets).getPaneComposites));5354const oldCount = Registry.as<PaneCompositeRegistry>(Extensions.Viewlets).getPaneComposites().length;55const d = PaneCompositeDescriptor.create(TestViewlet, 'reg-test-id', 'name');56Registry.as<PaneCompositeRegistry>(Extensions.Viewlets).registerPaneComposite(d);5758assert(d === Registry.as<PaneCompositeRegistry>(Extensions.Viewlets).getPaneComposite('reg-test-id'));59assert.strictEqual(oldCount + 1, Registry.as<PaneCompositeRegistry>(Extensions.Viewlets).getPaneComposites().length);60});6162ensureNoDisposablesAreLeakedInTestSuite();63});646566