Răsfoiți Sursa

Aligned conversion tests to latest conversion API.

Oskar Wróbel 8 ani în urmă
părinte
comite
290116a163

+ 11 - 9
packages/ckeditor5-engine/src/conversion/view-to-model-converters.js

@@ -28,10 +28,11 @@ import Range from '../model/range';
  * {@link module:engine/model/documentfragment~DocumentFragment model fragment} with children of converted view item.
  */
 export function convertToModelFragment() {
-	return ( evt, data, consumable, conversionApi ) => {
+	return ( evt, data, conversionApi ) => {
 		// Second argument in `consumable.consume` is discarded for ViewDocumentFragment but is needed for ViewElement.
-		if ( !data.output && consumable.consume( data.input, { name: true } ) ) {
-			data.output = conversionApi.convertChildren( data.input, consumable, data.position );
+		if ( !data.modelRange && conversionApi.consumable.consume( data.viewItem, { name: true } ) ) {
+			data = Object.assign( data, conversionApi.convertChildren( data.viewItem, data.cursorPosition ) );
+			data.cursorPosition = data.modelRange.end;
 		}
 	};
 }
@@ -42,14 +43,15 @@ export function convertToModelFragment() {
  * @returns {Function} {@link module:engine/view/text~Text View text} converter.
  */
 export function convertText() {
-	return ( evt, data, consumable, conversionApi ) => {
-		if ( conversionApi.schema.checkChild( data.position, '$text' ) ) {
-			if ( consumable.consume( data.input ) ) {
-				const text = conversionApi.writer.createText( data.input.data );
+	return ( evt, data, conversionApi ) => {
+		if ( conversionApi.schema.checkChild( data.cursorPosition, '$text' ) ) {
+			if ( conversionApi.consumable.consume( data.viewItem ) ) {
+				const text = conversionApi.writer.createText( data.viewItem.data );
 
-				conversionApi.writer.insert( text, data.position );
+				conversionApi.writer.insert( text, data.cursorPosition );
 
-				data.output = Range.createFromPositionAndShift( data.position, text.offsetSize );
+				data.modelRange = Range.createFromPositionAndShift( data.cursorPosition, text.offsetSize );
+				data.cursorPosition = data.modelRange.end;
 			}
 		}
 	};

+ 12 - 10
packages/ckeditor5-engine/tests/conversion/view-to-model-converters.js

@@ -51,11 +51,12 @@ describe( 'view-to-model-converters', () => {
 			// Default converter for elements. Returns just converted children. Added with lowest priority.
 			dispatcher.on( 'text', convertText(), { priority: 'lowest' } );
 			// Added with normal priority. Should make the above converter not fire.
-			dispatcher.on( 'text', ( evt, data, consumable, conversionApi ) => {
-				if ( consumable.consume( data.input ) ) {
-					const text = conversionApi.writer.createText( data.input.data.replace( /fuck/gi, '****' ) );
-					conversionApi.writer.insert( text, data.position );
-					data.output = ModelRange.createFromPositionAndShift( data.position, text.offsetSize );
+			dispatcher.on( 'text', ( evt, data, conversionApi ) => {
+				if ( conversionApi.consumable.consume( data.viewItem ) ) {
+					const text = conversionApi.writer.createText( data.viewItem.data.replace( /fuck/gi, '****' ) );
+					conversionApi.writer.insert( text, data.cursorPosition );
+					data.modelRange = ModelRange.createFromPositionAndShift( data.cursorPosition, text.offsetSize );
+					data.cursorPosition = data.modelRange.end;
 				}
 			} );
 
@@ -130,14 +131,15 @@ describe( 'view-to-model-converters', () => {
 			// Default converter for elements. Returns just converted children. Added with lowest priority.
 			dispatcher.on( 'element', convertToModelFragment(), { priority: 'lowest' } );
 			// Added with normal priority. Should make the above converter not fire.
-			dispatcher.on( 'element:p', ( evt, data, consumable, conversionApi ) => {
-				if ( consumable.consume( data.input, { name: true } ) ) {
+			dispatcher.on( 'element:p', ( evt, data, conversionApi ) => {
+				if ( conversionApi.consumable.consume( data.viewItem, { name: true } ) ) {
 					const paragraph = conversionApi.writer.createElement( 'paragraph' );
 
-					conversionApi.writer.insert( paragraph, data.position );
-					conversionApi.convertChildren( data.input, consumable, ModelPosition.createAt( paragraph ) );
+					conversionApi.writer.insert( paragraph, data.cursorPosition );
+					conversionApi.convertChildren( data.viewItem, ModelPosition.createAt( paragraph ) );
 
-					data.output = ModelRange.createOn( paragraph );
+					data.modelRange = ModelRange.createOn( paragraph );
+					data.cursorPosition = data.modelRange.end;
 				}
 			} );