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('