Przeglądaj źródła

Tests: Update table/converters tests.

Maciej Gołaszewski 7 lat temu
rodzic
commit
88ee296f58

+ 3 - 8
packages/ckeditor5-table/src/converters.js

@@ -86,15 +86,10 @@ function _createTableSection( elementName, tableElement, rows, conversionApi ) {
 }
 
 function _downcastTableRow( tableRow, conversionApi, parent ) {
-	const tableRowElement = conversionApi.writer.createContainerElement( 'tr' );
-
-	if ( !tableRowElement ) {
-		return;
-	}
+	// Will always consume since we're converting <tableRow> element from a parent <table>.
+	conversionApi.consumable.consume( tableRow, 'insert' );
 
-	if ( !conversionApi.consumable.consume( tableRow, 'insert' ) ) {
-		return;
-	}
+	const tableRowElement = conversionApi.writer.createContainerElement( 'tr' );
 
 	conversionApi.mapper.bindElements( tableRow, tableRowElement );
 	conversionApi.writer.insert( Position.createAt( parent, 'end' ), tableRowElement );

+ 49 - 2
packages/ckeditor5-table/tests/converters.js

@@ -59,7 +59,7 @@ describe( 'Table converters', () => {
 			} );
 	} );
 
-	describe( 'createTable', () => {
+	describe( 'createTable()', () => {
 		function expectModel( data ) {
 			expect( getModelData( model, { withoutSelection: true } ) ).to.equal( data );
 		}
@@ -151,7 +151,7 @@ describe( 'Table converters', () => {
 		} );
 	} );
 
-	describe( 'downcastTable', () => {
+	describe( 'downcastTable()', () => {
 		it( 'should create table with tbody', () => {
 			setModelData( model,
 				'<table>' +
@@ -205,5 +205,52 @@ describe( 'Table converters', () => {
 				'</table>'
 			);
 		} );
+
+		it( 'should be possible to overwrite', () => {
+			editor.conversion.elementToElement( { model: 'tableRow', view: 'tr' } );
+			editor.conversion.for( 'downcast' ).add( dispatcher => {
+				dispatcher.on( 'insert:table', ( evt, data, conversionApi ) => {
+					conversionApi.consumable.consume( data.item, 'insert' );
+
+					const tableElement = conversionApi.writer.createContainerElement( 'table', { foo: 'bar' } );
+					const viewPosition = conversionApi.mapper.toViewPosition( data.range.start );
+
+					conversionApi.mapper.bindElements( data.item, tableElement );
+					conversionApi.writer.insert( viewPosition, tableElement );
+				}, { priority: 'high' } );
+			} );
+
+			setModelData( model,
+				'<table>' +
+				'<tableRow><tableCell></tableCell></tableRow>' +
+				'</table>'
+			);
+
+			expect( getViewData( viewDocument, { withoutSelection: true } ) ).to.equal(
+				'<table foo="bar">' +
+				'<tr><td></td></tr>' +
+				'</table>'
+			);
+		} );
+	} );
+
+	describe( 'downcastTableCell()', () => {
+		it( 'should be possible to overwrite row conversion', () => {
+			editor.conversion.elementToElement( { model: 'tableCell', view: { name: 'td', class: 'foo' }, priority: 'high' } );
+
+			setModelData( model,
+				'<table>' +
+				'<tableRow><tableCell></tableCell></tableRow>' +
+				'</table>'
+			);
+
+			expect( getViewData( viewDocument, { withoutSelection: true } ) ).to.equal(
+				'<table>' +
+				'<tbody>' +
+				'<tr><td class="foo"></td></tr>' +
+				'</tbody>' +
+				'</table>'
+			);
+		} );
 	} );
 } );

+ 1 - 1
packages/ckeditor5-table/tests/tableediting.js

@@ -79,7 +79,7 @@ describe( 'TableEditing', () => {
 				editor.setData( '<table><tbody><tr><td>foo</td></tr></tbody></table>' );
 
 				expect( getModelData( model, { withoutSelection: true } ) )
-					.to.equal( '<table headingColumns="0" headingRows="0"><tableRow><tableCell>foo</tableCell></tableRow></table>' );
+					.to.equal( '<table><tableRow><tableCell>foo</tableCell></tableRow></table>' );
 			} );
 		} );
 	} );