Преглед изворни кода

Add tests cases for block content in pasted tables.

Maciej Gołaszewski пре 5 година
родитељ
комит
efc0f7f63d
1 измењених фајлова са 43 додато и 0 уклоњено
  1. 43 0
      packages/ckeditor5-table/tests/tableclipboard-paste.js

+ 43 - 0
packages/ckeditor5-table/tests/tableclipboard-paste.js

@@ -17,6 +17,9 @@ import { assertEqualMarkup } from '@ckeditor/ckeditor5-utils/tests/_utils/utils'
 import TableClipboard from '../src/tableclipboard';
 import ImageEditing from '@ckeditor/ckeditor5-image/src/image/imageediting';
 import ImageCaptionEditing from '@ckeditor/ckeditor5-image/src/imagecaption/imagecaptionediting';
+import BlockQuoteEditing from '@ckeditor/ckeditor5-block-quote/src/blockquoteediting';
+import HorizontalLineEditing from '@ckeditor/ckeditor5-horizontal-line/src/horizontallineediting';
+import ListEditing from '@ckeditor/ckeditor5-list/src/listediting';
 
 describe( 'table clipboard', () => {
 	let editor, model, modelRoot, tableSelection, viewDocument, element;
@@ -1277,6 +1280,46 @@ describe( 'table clipboard', () => {
 				[ '02', '21', '22' ]
 			] ) );
 		} );
+
+		it( 'handles mixed nested content in table cell', async () => {
+			await createEditor( [ ImageEditing, ImageCaptionEditing, BlockQuoteEditing, HorizontalLineEditing, ListEditing ] );
+
+			setModelData( model, modelTable( [
+				[ '00', '01', '02' ],
+				[ '01', '11', '12' ],
+				[ '02', '21', '22' ]
+			] ) );
+
+			tableSelection.setCellSelection(
+				modelRoot.getNodeByPath( [ 0, 0, 0 ] ),
+				modelRoot.getNodeByPath( [ 0, 1, 1 ] )
+			);
+
+			const img = '<img src="/assets/sample.jpg">';
+			const list = '<ul><li>foo</li><li>bar</li></ul>';
+			const blockquote = `<blockquote><p>baz</p>${ list }</blockquote>`;
+
+			pasteTable( [
+				[ `${ img }${ list }${ blockquote }`, 'ab' ],
+				[ 'ba', 'bb' ]
+			] );
+
+			assertEqualMarkup( getModelData( model, { withoutSelection: true } ), modelTable( [
+				[
+					'<image src="/assets/sample.jpg"><caption></caption></image>' +
+					'<listItem listIndent="0" listType="bulleted">foo</listItem>' +
+					'<listItem listIndent="0" listType="bulleted">bar</listItem>' +
+					'<blockQuote>' +
+						'<paragraph>baz</paragraph>' +
+						'<listItem listIndent="0" listType="bulleted">foo</listItem>' +
+						'<listItem listIndent="0" listType="bulleted">bar</listItem>' +
+					'</blockQuote>',
+					'ab',
+					'02' ],
+				[ 'ba', 'bb', '12' ],
+				[ '02', '21', '22' ]
+			] ) );
+		} );
 	} );
 
 	async function createEditor( extraPlugins = [] ) {