Path: blob/main/src/vs/base/test/browser/highlightedLabel.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 { HighlightedLabel } from '../../browser/ui/highlightedlabel/highlightedLabel.js';7import { ensureNoDisposablesAreLeakedInTestSuite } from '../common/utils.js';89suite('HighlightedLabel', () => {10let label: HighlightedLabel;1112setup(() => {13label = new HighlightedLabel(document.createElement('div'), { supportIcons: true });14});1516test('empty label', function () {17assert.strictEqual(label.element.innerHTML, '');18});1920test('no decorations', function () {21label.set('hello');22assert.strictEqual(label.element.innerHTML, 'hello');23});2425test('escape html', function () {26label.set('hel<lo');27assert.strictEqual(label.element.innerHTML, 'hel<lo');28});2930test('everything highlighted', function () {31label.set('hello', [{ start: 0, end: 5 }]);32assert.strictEqual(label.element.innerHTML, '<span class="highlight">hello</span>');33});3435test('beginning highlighted', function () {36label.set('hellothere', [{ start: 0, end: 5 }]);37assert.strictEqual(label.element.innerHTML, '<span class="highlight">hello</span>there');38});3940test('ending highlighted', function () {41label.set('goodbye', [{ start: 4, end: 7 }]);42assert.strictEqual(label.element.innerHTML, 'good<span class="highlight">bye</span>');43});4445test('middle highlighted', function () {46label.set('foobarfoo', [{ start: 3, end: 6 }]);47assert.strictEqual(label.element.innerHTML, 'foo<span class="highlight">bar</span>foo');48});4950test('escapeNewLines', () => {5152let highlights = [{ start: 0, end: 5 }, { start: 7, end: 9 }, { start: 11, end: 12 }];// before,after,after53let escaped = HighlightedLabel.escapeNewLines('ACTION\r\n_TYPE2', highlights);54assert.strictEqual(escaped, 'ACTION\u23CE_TYPE2');55assert.deepStrictEqual(highlights, [{ start: 0, end: 5 }, { start: 6, end: 8 }, { start: 10, end: 11 }]);5657highlights = [{ start: 5, end: 9 }, { start: 11, end: 12 }];//overlap,after58escaped = HighlightedLabel.escapeNewLines('ACTION\r\n_TYPE2', highlights);59assert.strictEqual(escaped, 'ACTION\u23CE_TYPE2');60assert.deepStrictEqual(highlights, [{ start: 5, end: 8 }, { start: 10, end: 11 }]);61});6263teardown(() => {64label.dispose();65});6667ensureNoDisposablesAreLeakedInTestSuite();68});697071