import { LegacyUnit } from '@ephox/mcagar'; import { Pipeline } from '@ephox/agar'; import Writer from 'tinymce/core/api/html/Writer'; import { UnitTest } from '@ephox/bedrock'; UnitTest.asynctest('browser.tinymce.core.html.WriterTest', function () { const success = arguments[arguments.length - 2]; const failure = arguments[arguments.length - 1]; const suite = LegacyUnit.createSuite(); suite.test('Comment', function () { let writer; writer = Writer(); writer.comment('text'); LegacyUnit.equal(writer.getContent(), ''); writer = Writer(); writer.comment(''); LegacyUnit.equal(writer.getContent(), ''); }); suite.test('CDATA', function () { let writer; writer = Writer(); writer.cdata('text'); LegacyUnit.equal(writer.getContent(), ''); writer = Writer(); writer.cdata(''); LegacyUnit.equal(writer.getContent(), ''); }); suite.test('PI', function () { let writer; writer = Writer(); writer.pi('xml', 'someval'); LegacyUnit.equal(writer.getContent(), ''); writer = Writer(); writer.pi('xml'); LegacyUnit.equal(writer.getContent(), ''); writer = Writer(); writer.pi('xml', 'encoding="UTF-8" < >'); LegacyUnit.equal(writer.getContent(), ''); }); suite.test('Doctype', function () { let writer; writer = Writer(); writer.doctype(' text'); LegacyUnit.equal(writer.getContent(), ''); writer = Writer(); writer.doctype(''); LegacyUnit.equal(writer.getContent(), ''); }); suite.test('Text', function () { let writer; writer = Writer(); writer.text('te'); writer = Writer(); writer.start('b', [{ name: 'attr1', value: 'value1' }, { name: 'attr2', value: 'value2' }]); LegacyUnit.equal(writer.getContent(), ''); writer = Writer(); writer.start('b', [{ name: 'attr1', value: 'val<"ue1' }]); LegacyUnit.equal(writer.getContent(), ''); writer = Writer(); writer.start('img', [{ name: 'attr1', value: 'value1' }, { name: 'attr2', value: 'value2' }], true); LegacyUnit.equal(writer.getContent(), ''); writer = Writer(); writer.start('br', null, true); LegacyUnit.equal(writer.getContent(), '
'); }); suite.test('End', function () { let writer; writer = Writer(); writer.end('b'); LegacyUnit.equal(writer.getContent(), '
'); }); suite.test('Indentation', function () { let 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'); LegacyUnit.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'); LegacyUnit.equal(writer.getContent(), '

a

'); }); suite.test('Entities', function () { let writer; writer = Writer(); writer.start('p', [{ name: 'title', value: '<>"\'&\u00e5\u00e4\u00f6' }]); writer.text('<>"\'&\u00e5\u00e4\u00f6'); writer.end('p'); LegacyUnit.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'); LegacyUnit.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'); LegacyUnit.equal(writer.getContent(), '

<>"\'&åäö

'); }); Pipeline.async({}, suite.toSteps({}), function () { success(); }, failure); });