Path: blob/main/src/vs/base/test/browser/iconLabels.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*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { isHTMLElement } from '../../browser/dom.js';7import { renderLabelWithIcons } from '../../browser/ui/iconLabel/iconLabels.js';8import { ensureNoDisposablesAreLeakedInTestSuite } from '../common/utils.js';910suite('renderLabelWithIcons', () => {1112test('no icons', () => {13const result = renderLabelWithIcons(' hello World .');1415assert.strictEqual(elementsToString(result), ' hello World .');16});1718test('icons only', () => {19const result = renderLabelWithIcons('$(alert)');2021assert.strictEqual(elementsToString(result), '<span class="codicon codicon-alert"></span>');22});2324test('icon and non-icon strings', () => {25const result = renderLabelWithIcons(` $(alert) Unresponsive`);2627assert.strictEqual(elementsToString(result), ' <span class="codicon codicon-alert"></span> Unresponsive');28});2930test('multiple icons', () => {31const result = renderLabelWithIcons('$(check)$(error)');3233assert.strictEqual(elementsToString(result), '<span class="codicon codicon-check"></span><span class="codicon codicon-error"></span>');34});3536test('escaped icons', () => {37const result = renderLabelWithIcons('\\$(escaped)');3839assert.strictEqual(elementsToString(result), '$(escaped)');40});4142test('icon with animation', () => {43const result = renderLabelWithIcons('$(zip~anim)');4445assert.strictEqual(elementsToString(result), '<span class="codicon codicon-zip codicon-modifier-anim"></span>');46});4748const elementsToString = (elements: Array<HTMLElement | string>): string => {49return elements50.map(elem => isHTMLElement(elem) ? elem.outerHTML : elem)51.reduce((a, b) => a + b, '');52};5354ensureNoDisposablesAreLeakedInTestSuite();55});565758