import { describe, it } from '@ephox/bedrock-client'; import { assert } from 'chai'; import Writer from 'tinymce/core/api/html/Writer'; describe('browser.tinymce.core.html.WriterTest', () => { it('Comment', () => { let writer: Writer; writer = Writer(); writer.comment('text'); assert.equal(writer.getContent(), ''); writer = Writer(); writer.comment(''); assert.equal(writer.getContent(), ''); }); it('CDATA', () => { let writer: Writer; writer = Writer(); writer.cdata('text'); assert.equal(writer.getContent(), ''); writer = Writer(); writer.cdata(''); assert.equal(writer.getContent(), ''); }); it('PI', () => { let writer: Writer; writer = Writer(); writer.pi('xml', 'someval'); assert.equal(writer.getContent(), ''); writer = Writer(); writer.pi('xml'); assert.equal(writer.getContent(), ''); writer = Writer(); writer.pi('xml', 'encoding="UTF-8" < >'); assert.equal(writer.getContent(), ''); }); it('Doctype', () => { let writer: Writer; writer = Writer(); writer.doctype(' text'); assert.equal(writer.getContent(), ''); writer = Writer(); writer.doctype(''); assert.equal(writer.getContent(), ''); }); it('Text', () => { let writer: Writer; writer = Writer(); writer.text('te { let writer: Writer; writer = Writer(); writer.text('te { let writer: Writer; writer = Writer(); writer.start('b'); assert.equal(writer.getContent(), ''); writer = Writer(); writer.start('b', [{ name: 'attr1', value: 'value1' }, { name: 'attr2', value: 'value2' }]); assert.equal(writer.getContent(), ''); writer = Writer(); writer.start('b', [{ name: 'attr1', value: 'val<"ue1' }]); assert.equal(writer.getContent(), ''); writer = Writer(); writer.start('img', [{ name: 'attr1', value: 'value1' }, { name: 'attr2', value: 'value2' }], true); assert.equal(writer.getContent(), ''); writer = Writer(); writer.start('br', null, true); assert.equal(writer.getContent(), '
'); }); it('End', () => { const writer = Writer(); writer.end('b'); assert.equal(writer.getContent(), '
'); }); it('Indentation', () => { let writer: Writer; writer = Writer({ indent: true, indent_before: 'p', indent_after: 'p' }); writer.start('p'); writer.start('span'); writer.text('a'); writer.end('span'); writer.end('p'); writer.start('p'); writer.text('a'); writer.end('p'); assert.equal(writer.getContent(), '

a

\n

a

'); writer = Writer({ indent: true, indent_before: 'p', indent_after: 'p' }); writer.start('p'); writer.text('a'); writer.end('p'); assert.equal(writer.getContent(), '

a

'); }); it('Entities', () => { let writer: Writer; writer = Writer(); writer.start('p', [{ name: 'title', value: `<>"'&\u00e5\u00e4\u00f6` }]); writer.text(`<>"'&\u00e5\u00e4\u00f6`); writer.end('p'); assert.equal(writer.getContent(), `

<>"'&\u00e5\u00e4\u00f6

`); writer = Writer({ entity_encoding: 'numeric' }); writer.start('p', [{ name: 'title', value: `<>"'&\u00e5\u00e4\u00f6` }]); writer.text(`<>"'&\u00e5\u00e4\u00f6`); writer.end('p'); assert.equal(writer.getContent(), `

<>"'&åäö

`); writer = Writer({ entity_encoding: 'named' }); writer.start('p', [{ name: 'title', value: `<>"'&\u00e5\u00e4\u00f6` }]); writer.text(`<>"'&\u00e5\u00e4\u00f6`); writer.end('p'); assert.equal(writer.getContent(), `

<>"'&åäö

`); }); });