/** * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ /* globals window */ import XmlDataProcessor from '../../src/dataprocessor/xmldataprocessor'; import xssTemplates from '../../tests/dataprocessor/_utils/xsstemplates'; import ViewDocumentFragment from '../../src/view/documentfragment'; import ViewDocument from '../../src/view/document'; import { stringify, parse } from '../../src/dev-utils/view'; import { StylesProcessor } from '../../src/view/stylesmap'; describe( 'XmlDataProcessor', () => { let dataProcessor, viewDocument; beforeEach( () => { viewDocument = new ViewDocument( new StylesProcessor() ); dataProcessor = new XmlDataProcessor( viewDocument ); } ); describe( 'toView', () => { it( 'should return empty DocumentFragment when empty string is passed', () => { const fragment = dataProcessor.toView( '' ); expect( fragment ).to.be.an.instanceOf( ViewDocumentFragment ); expect( fragment.childCount ).to.equal( 0 ); } ); it( 'should convert XML to DocumentFragment with single text node', () => { const fragment = dataProcessor.toView( 'foo bar' ); expect( stringify( fragment ) ).to.equal( 'foo bar' ); } ); it( 'should convert HTML to DocumentFragment with multiple child nodes', () => { const fragment = dataProcessor.toView( '
foo
bar
' ); expect( stringify( fragment ) ).to.equal( 'foo
bar
' ); } ); it( 'should not add any additional nodes', () => { const fragment = dataProcessor.toView( 'foo bar text' ); expect( stringify( fragment ) ).to.equal( 'foo bar text' ); } ); it( 'should allow to use registered namespaces', () => { dataProcessor = new XmlDataProcessor( viewDocument, { namespaces: [ 'foo', 'bar' ] } ); const fragment = dataProcessor.toView( 'foo
bar
' ); expect( dataProcessor.toData( fragment ) ).to.equal( 'foo
bar
' ); } ); } ); } );