import { describe, it } from '@ephox/bedrock-client'; import { assert } from 'chai'; import Editor from 'tinymce/core/api/Editor'; import EditorManager from 'tinymce/core/api/EditorManager'; import Schema from 'tinymce/core/api/html/Schema'; import { DomSerializerImpl } from 'tinymce/core/dom/DomSerializerImpl'; import * as TrimHtml from 'tinymce/core/dom/TrimHtml'; import * as Zwsp from 'tinymce/core/text/Zwsp'; describe('browser.tinymce.core.dom.TrimHtmlTest', () => { it('trimInternal', () => { const serializer = DomSerializerImpl({}, new Editor('id', {}, EditorManager)); assert.equal(TrimHtml.trimInternal(serializer, '

a

'), '

a

', 'Should be unchanged'); assert.equal(TrimHtml.trimInternal(serializer, '

a

'), '

a

', 'Should not have internal attr'); assert.equal(TrimHtml.trimInternal(serializer, '

a' + Zwsp.ZWSP + 'b

'), '

ab

', 'Should trim zwsp'); }); it('trimExternal', () => { const serializer = DomSerializerImpl({}, new Editor('id', {}, EditorManager)); assert.equal(TrimHtml.trimExternal(serializer, '

a

'), '

a

', 'Should be unchanged'); assert.equal(TrimHtml.trimExternal(serializer, '

a

'), '

a

', 'Should not have internal attr'); assert.equal(TrimHtml.trimExternal(serializer, '

a' + Zwsp.ZWSP + 'b

'), '

ab

', 'Should not have zwsp'); }); it('findMatchingEndTagIndex', () => { const testFindMatchingEndTag = (html: string, startIndex: number, expectedIndex: number) => { assert.equal(TrimHtml.findMatchingEndTagIndex(Schema({}), html, startIndex), expectedIndex); }; testFindMatchingEndTag('', 3, 3); testFindMatchingEndTag('', 3, 3); testFindMatchingEndTag('', 3, 7); testFindMatchingEndTag('', 3, 12); testFindMatchingEndTag('', 3, 20); testFindMatchingEndTag('abc', 9, 35); testFindMatchingEndTag('

Closing "
', 0, 25); testFindMatchingEndTag('

', 0, 21); testFindMatchingEndTag('

', 0, 18); testFindMatchingEndTag('

', 0, 60); }); });