/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; import { HighlightedLabel } from 'vs/base/browser/ui/highlightedlabel/highlightedLabel'; suite('HighlightedLabel', () => { let label: HighlightedLabel; setup(() => { label = new HighlightedLabel(document.createElement('div'), true); }); test('empty label', function () { assert.equal(label.element.innerHTML, ''); }); test('no decorations', function () { label.set('hello'); assert.equal(label.element.innerHTML, 'hello'); }); test('escape html', function () { label.set('helhel<lo'); }); test('everything highlighted', function () { label.set('hello', [{ start: 0, end: 5 }]); assert.equal(label.element.innerHTML, 'hello'); }); test('beginning highlighted', function () { label.set('hellothere', [{ start: 0, end: 5 }]); assert.equal(label.element.innerHTML, 'hellothere'); }); test('ending highlighted', function () { label.set('goodbye', [{ start: 4, end: 7 }]); assert.equal(label.element.innerHTML, 'goodbye'); }); test('middle highlighted', function () { label.set('foobarfoo', [{ start: 3, end: 6 }]); assert.equal(label.element.innerHTML, 'foobarfoo'); }); test('escapeNewLines', () => { let highlights = [{ start: 0, end: 5 }, { start: 7, end: 9 }, { start: 11, end: 12 }];// before,after,after let escaped = HighlightedLabel.escapeNewLines('ACTION\r\n_TYPE2', highlights); assert.equal(escaped, 'ACTION\u23CE_TYPE2'); assert.deepEqual(highlights, [{ start: 0, end: 5 }, { start: 6, end: 8 }, { start: 10, end: 11 }]); highlights = [{ start: 5, end: 9 }, { start: 11, end: 12 }];//overlap,after escaped = HighlightedLabel.escapeNewLines('ACTION\r\n_TYPE2', highlights); assert.equal(escaped, 'ACTION\u23CE_TYPE2'); assert.deepEqual(highlights, [{ start: 5, end: 8 }, { start: 10, end: 11 }]); }); });