|
|
@@ -72,7 +72,7 @@ describe( 'View converter builder', () => {
|
|
|
batch = modelDocument.batch();
|
|
|
|
|
|
// `additionalData` parameter for `.convert` calls.
|
|
|
- additionalData = { context: [ '$root' ], batch };
|
|
|
+ additionalData = { context: [ '$root' ] };
|
|
|
|
|
|
schema = new ModelSchema();
|
|
|
|
|
|
@@ -100,7 +100,7 @@ describe( 'View converter builder', () => {
|
|
|
it( 'should convert from view element to model element', () => {
|
|
|
buildViewConverter().for( dispatcher ).fromElement( 'p' ).toElement( 'paragraph' );
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( new ViewContainerElement( 'p', null, new ViewText( 'foo' ) ), additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( new ViewContainerElement( 'p', null, new ViewText( 'foo' ) ), batch, additionalData );
|
|
|
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<paragraph>foo</paragraph>' );
|
|
|
} );
|
|
|
@@ -110,7 +110,7 @@ describe( 'View converter builder', () => {
|
|
|
.fromElement( 'img' )
|
|
|
.toElement( viewElement => new ModelElement( 'image', { src: viewElement.getAttribute( 'src' ) } ) );
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( new ViewContainerElement( 'img', { src: 'foo.jpg' } ), additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( new ViewContainerElement( 'img', { src: 'foo.jpg' } ), batch, additionalData );
|
|
|
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<image src="foo.jpg"></image>' );
|
|
|
} );
|
|
|
@@ -119,7 +119,7 @@ describe( 'View converter builder', () => {
|
|
|
buildViewConverter().for( dispatcher ).fromElement( 'strong' ).toAttribute( 'bold', true );
|
|
|
|
|
|
const conversionResult = dispatcher.convert(
|
|
|
- new ViewAttributeElement( 'strong', null, new ViewText( 'foo' ) ), additionalData
|
|
|
+ new ViewAttributeElement( 'strong', null, new ViewText( 'foo' ) ), batch, additionalData
|
|
|
);
|
|
|
|
|
|
// Have to check root because result is a ModelText.
|
|
|
@@ -132,7 +132,7 @@ describe( 'View converter builder', () => {
|
|
|
.toAttribute( viewElement => ( { key: 'linkHref', value: viewElement.getAttribute( 'href' ) } ) );
|
|
|
|
|
|
const conversionResult = dispatcher.convert(
|
|
|
- new ViewAttributeElement( 'a', { href: 'foo.html' }, new ViewText( 'foo' ) ), additionalData
|
|
|
+ new ViewAttributeElement( 'a', { href: 'foo.html' }, new ViewText( 'foo' ) ), batch, additionalData
|
|
|
);
|
|
|
|
|
|
// Have to check root because result is a ModelText.
|
|
|
@@ -147,7 +147,7 @@ describe( 'View converter builder', () => {
|
|
|
.toAttribute( viewElement => ( { key: 'class', value: viewElement.getAttribute( 'class' ) } ) );
|
|
|
|
|
|
const conversionResult = dispatcher.convert(
|
|
|
- new ViewContainerElement( 'p', { class: 'myClass' }, new ViewText( 'foo' ) ), additionalData
|
|
|
+ new ViewContainerElement( 'p', { class: 'myClass' }, new ViewText( 'foo' ) ), batch, additionalData
|
|
|
);
|
|
|
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<paragraph class="myClass">foo</paragraph>' );
|
|
|
@@ -169,7 +169,7 @@ describe( 'View converter builder', () => {
|
|
|
new ViewContainerElement( 'p', { 'data-type': 'foo' }, new ViewText( 'xyz' ) )
|
|
|
] );
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewStructure, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewStructure, batch, additionalData );
|
|
|
|
|
|
expect( modelToString( conversionResult ) ).to.equal(
|
|
|
'<paragraph important="true">foo</paragraph>' +
|
|
|
@@ -195,7 +195,7 @@ describe( 'View converter builder', () => {
|
|
|
new ViewContainerElement( 'span', { style: 'font-weight:bold; font-size:20px' }, new ViewText( 'ddd' ) )
|
|
|
] );
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<paragraph><$text bold="true">aaabbbcccddd</$text></paragraph>' );
|
|
|
} );
|
|
|
@@ -212,7 +212,7 @@ describe( 'View converter builder', () => {
|
|
|
new ViewText( 'r' )
|
|
|
] );
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
const markerSearch = conversionResult.markers.get( 'search' );
|
|
|
|
|
|
@@ -234,7 +234,7 @@ describe( 'View converter builder', () => {
|
|
|
new ViewText( 'r' )
|
|
|
] );
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
const markerSearch = conversionResult.markers.get( 'search' );
|
|
|
|
|
|
@@ -260,7 +260,7 @@ describe( 'View converter builder', () => {
|
|
|
new ViewText( 'r' )
|
|
|
] );
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
const marker1 = conversionResult.markers.get( 'marker1' );
|
|
|
const marker2 = conversionResult.markers.get( 'marker2' );
|
|
|
@@ -277,7 +277,7 @@ describe( 'View converter builder', () => {
|
|
|
|
|
|
const element = new ViewAttributeElement( 'span' );
|
|
|
|
|
|
- const result = dispatcher.convert( element, additionalData );
|
|
|
+ const result = dispatcher.convert( element, batch, additionalData );
|
|
|
|
|
|
expect( result ).to.be.instanceof( ModelDocumentFragment );
|
|
|
expect( result.childCount ).to.equal( 0 );
|
|
|
@@ -289,7 +289,7 @@ describe( 'View converter builder', () => {
|
|
|
const element = new ViewAttributeElement( 'marker', { class: 'search' } );
|
|
|
|
|
|
expect( () => {
|
|
|
- dispatcher.convert( element, additionalData );
|
|
|
+ dispatcher.convert( element, batch, additionalData );
|
|
|
} ).to.throw( CKEditorError, /^build-view-converter-invalid-marker/ );
|
|
|
} );
|
|
|
|
|
|
@@ -301,7 +301,7 @@ describe( 'View converter builder', () => {
|
|
|
const element = new ViewAttributeElement( 'marker', { 'data-name': 'search' } );
|
|
|
|
|
|
expect( () => {
|
|
|
- dispatcher.convert( element, additionalData );
|
|
|
+ dispatcher.convert( element, batch, additionalData );
|
|
|
} ).to.throw( CKEditorError, /^build-view-converter-invalid-marker/ );
|
|
|
} );
|
|
|
|
|
|
@@ -313,7 +313,7 @@ describe( 'View converter builder', () => {
|
|
|
const element = new ViewAttributeElement( 'marker', { 'data-name': 'search' } );
|
|
|
|
|
|
expect( () => {
|
|
|
- dispatcher.convert( element, additionalData );
|
|
|
+ dispatcher.convert( element, batch, additionalData );
|
|
|
} ).to.throw( CKEditorError, /^build-view-converter-invalid-marker/ );
|
|
|
} );
|
|
|
|
|
|
@@ -330,7 +330,7 @@ describe( 'View converter builder', () => {
|
|
|
|
|
|
// Not quite megatron.
|
|
|
result = dispatcher.convert(
|
|
|
- new ViewContainerElement( 'span', { class: 'megatron' }, new ViewText( 'foo' ) ), additionalData
|
|
|
+ new ViewContainerElement( 'span', { class: 'megatron' }, new ViewText( 'foo' ) ), batch, additionalData
|
|
|
);
|
|
|
|
|
|
expect( modelToString( result ) ).to.equal( '<span>foo</span>' );
|
|
|
@@ -338,6 +338,7 @@ describe( 'View converter builder', () => {
|
|
|
// Almost a megatron. Missing a head.
|
|
|
result = dispatcher.convert(
|
|
|
new ViewContainerElement( 'span', { class: 'megatron', body: 'megatron', legs: 'megatron' }, new ViewText( 'foo' ) ),
|
|
|
+ batch,
|
|
|
additionalData
|
|
|
);
|
|
|
|
|
|
@@ -350,6 +351,7 @@ describe( 'View converter builder', () => {
|
|
|
{ class: 'megatron', body: 'megatron', legs: 'megatron', head: 'megatron' },
|
|
|
new ViewText( 'foo' )
|
|
|
),
|
|
|
+ batch,
|
|
|
additionalData
|
|
|
);
|
|
|
|
|
|
@@ -362,6 +364,7 @@ describe( 'View converter builder', () => {
|
|
|
{ class: 'megatron', body: 'megatron', legs: 'megatron', head: 'megatron' },
|
|
|
new ViewText( 'foo' )
|
|
|
),
|
|
|
+ batch,
|
|
|
additionalData
|
|
|
);
|
|
|
|
|
|
@@ -382,7 +385,7 @@ describe( 'View converter builder', () => {
|
|
|
new ViewText( 'foo' )
|
|
|
);
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<span transformer="megatron">foo</span>' );
|
|
|
} );
|
|
|
@@ -392,7 +395,7 @@ describe( 'View converter builder', () => {
|
|
|
|
|
|
const viewElement = new ViewAttributeElement( 'strong', null, new ViewText( 'foo' ) );
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
expect( conversionResult.is( 'documentFragment' ) ).to.be.true;
|
|
|
} );
|
|
|
@@ -404,7 +407,7 @@ describe( 'View converter builder', () => {
|
|
|
buildViewConverter().for( dispatcher ).fromElement( 'p' ).toElement( 'paragraph' );
|
|
|
|
|
|
const conversionResult = dispatcher.convert(
|
|
|
- new ViewContainerElement( 'p', { class: 'myClass' }, new ViewText( 'foo' ) ), additionalData
|
|
|
+ new ViewContainerElement( 'p', { class: 'myClass' }, new ViewText( 'foo' ) ), batch, additionalData
|
|
|
);
|
|
|
|
|
|
// Element converter was fired first even though attribute converter was added first.
|
|
|
@@ -420,7 +423,7 @@ describe( 'View converter builder', () => {
|
|
|
let result;
|
|
|
|
|
|
result = dispatcher.convert(
|
|
|
- new ViewContainerElement( 'p', { class: 'myClass' }, new ViewText( 'foo' ) ), additionalData
|
|
|
+ new ViewContainerElement( 'p', { class: 'myClass' }, new ViewText( 'foo' ) ), batch, additionalData
|
|
|
);
|
|
|
|
|
|
expect( modelToString( result ) ).to.equal( '<paragraph class="myClass">foo</paragraph>' );
|
|
|
@@ -430,7 +433,7 @@ describe( 'View converter builder', () => {
|
|
|
.toElement( 'customP' );
|
|
|
|
|
|
result = dispatcher.convert(
|
|
|
- new ViewContainerElement( 'p', { class: 'myClass' }, new ViewText( 'foo' ) ), additionalData
|
|
|
+ new ViewContainerElement( 'p', { class: 'myClass' }, new ViewText( 'foo' ) ), batch, additionalData
|
|
|
);
|
|
|
|
|
|
expect( modelToString( result ) ).to.equal( '<customP>foo</customP>' );
|
|
|
@@ -451,7 +454,7 @@ describe( 'View converter builder', () => {
|
|
|
.toAttribute( 'size', 'small' );
|
|
|
|
|
|
const viewElement = new ViewContainerElement( 'p', { class: 'decorated small' }, new ViewText( 'foo' ) );
|
|
|
- const conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
// P element and it's children got converted by the converter (1) and the converter (1) got fired
|
|
|
// because P name was not consumed in converter (2). Converter (3) could consume class="small" because
|
|
|
@@ -474,7 +477,7 @@ describe( 'View converter builder', () => {
|
|
|
new ViewContainerElement( 'abcd', null, new ViewText( 'foo' ) )
|
|
|
] );
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewStructure, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewStructure, batch, additionalData );
|
|
|
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<div class="myClass"><abcd>foo</abcd></div>' );
|
|
|
} );
|
|
|
@@ -493,7 +496,7 @@ describe( 'View converter builder', () => {
|
|
|
)
|
|
|
);
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<paragraph>foo</paragraph>' );
|
|
|
} );
|
|
|
@@ -512,7 +515,7 @@ describe( 'View converter builder', () => {
|
|
|
)
|
|
|
);
|
|
|
|
|
|
- const conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ const conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<paragraph>foo</paragraph>' );
|
|
|
} );
|
|
|
@@ -526,11 +529,11 @@ describe( 'View converter builder', () => {
|
|
|
} );
|
|
|
|
|
|
const viewElement = new ViewContainerElement( 'p' );
|
|
|
- let conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ let conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<paragraph></paragraph>' );
|
|
|
|
|
|
viewElement.setAttribute( 'stop', true );
|
|
|
- conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
|
|
|
expect( conversionResult ).to.be.instanceof( ModelDocumentFragment );
|
|
|
expect( conversionResult.childCount ).to.equal( 0 );
|
|
|
@@ -548,11 +551,11 @@ describe( 'View converter builder', () => {
|
|
|
} );
|
|
|
|
|
|
const viewElement = new ViewContainerElement( 'p', { 'data-type': 'foo' } );
|
|
|
- let conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ let conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<paragraph type="foo"></paragraph>' );
|
|
|
|
|
|
viewElement.setAttribute( 'data-type', 'stop' );
|
|
|
- conversionResult = dispatcher.convert( viewElement, additionalData );
|
|
|
+ conversionResult = dispatcher.convert( viewElement, batch, additionalData );
|
|
|
expect( modelToString( conversionResult ) ).to.equal( '<paragraph></paragraph>' );
|
|
|
} );
|
|
|
} );
|