8
0
Просмотр исходного кода

Tests: Aligned code to changes in ckeditor5-engine.

Szymon Cofalik 8 лет назад
Родитель
Сommit
c22c2f11dc
2 измененных файлов с 23 добавлено и 15 удалено
  1. 0 1
      packages/ckeditor5-list/tests/indentcommand.js
  2. 23 14
      packages/ckeditor5-list/tests/listengine.js

+ 0 - 1
packages/ckeditor5-list/tests/indentcommand.js

@@ -313,7 +313,6 @@ describe( 'IndentCommand', () => {
 					'<listItem indent="0" type="bulleted">g</listItem>'
 					'<listItem indent="0" type="bulleted">g</listItem>'
 				);
 				);
 			} );
 			} );
-
 		} );
 		} );
 	} );
 	} );
 } );
 } );

+ 23 - 14
packages/ckeditor5-list/tests/listengine.js

@@ -3311,19 +3311,24 @@ describe( 'ListEngine', () => {
 
 
 	describe( 'other', () => {
 	describe( 'other', () => {
 		it( 'model insert converter should not fire if change was already consumed', () => {
 		it( 'model insert converter should not fire if change was already consumed', () => {
-			editor.editing.modelToView.on( 'insert:listItem', ( evt, data, consumable ) => {
-				consumable.consume( data.item, 'insert' );
+			editor.editing.modelToView.on( 'insert:listItem', ( evt, data, consumable, conversionApi ) => {
+				consumable.consume( data.item, 'attribute:type' );
+				consumable.consume( data.item, 'attribute:indent' );
+
+				const converter = insertElement( new ViewContainerElement( 'p' ) );
+
+				return converter( evt, data, consumable, conversionApi );
 			}, { priority: 'highest' } );
 			}, { priority: 'highest' } );
 
 
 			// Paragraph is needed, otherwise selection throws.
 			// Paragraph is needed, otherwise selection throws.
-			setModelData( model, '<paragraph>x</paragraph><listItem indent="0" type="bulleted"></listItem>' );
+			setModelData( model, '<paragraph>x</paragraph><listItem indent="0" type="bulleted">y</listItem>' );
 
 
-			expect( getViewData( editor.editing.view, { withoutSelection: true } ) ).to.equal( '<p>x</p>' );
+			expect( getViewData( editor.editing.view, { withoutSelection: true } ) ).to.equal( '<p>x</p><p>y</p>' );
 		} );
 		} );
 
 
-		it( 'model remove converter should not fire if change was already consumed', () => {
-			editor.editing.modelToView.on( 'remove:listItem', ( evt, data, consumable ) => {
-				consumable.consume( data.item, 'remove' );
+		it( 'model remove converter should be possible to overwrite', () => {
+			editor.editing.modelToView.on( 'remove:listItem', evt => {
+				evt.stop();
 			}, { priority: 'highest' } );
 			}, { priority: 'highest' } );
 
 
 			// Paragraph is needed to prevent autoparagraphing of empty editor.
 			// Paragraph is needed to prevent autoparagraphing of empty editor.
@@ -3337,8 +3342,8 @@ describe( 'ListEngine', () => {
 		} );
 		} );
 
 
 		it( 'model change type converter should not fire if change was already consumed', () => {
 		it( 'model change type converter should not fire if change was already consumed', () => {
-			editor.editing.modelToView.on( 'changeAttribute:type', ( evt, data, consumable ) => {
-				consumable.consume( data.item, 'changeAttribute:type' );
+			editor.editing.modelToView.on( 'attribute:type', ( evt, data, consumable ) => {
+				consumable.consume( data.item, 'attribute:type' );
 			}, { priority: 'highest' } );
 			}, { priority: 'highest' } );
 
 
 			setModelData( model, '<listItem indent="0" type="bulleted"></listItem>' );
 			setModelData( model, '<listItem indent="0" type="bulleted"></listItem>' );
@@ -3351,8 +3356,8 @@ describe( 'ListEngine', () => {
 		} );
 		} );
 
 
 		it( 'model change indent converter should not fire if change was already consumed', () => {
 		it( 'model change indent converter should not fire if change was already consumed', () => {
-			editor.editing.modelToView.on( 'changeAttribute:indent', ( evt, data, consumable ) => {
-				consumable.consume( data.item, 'changeAttribute:indent' );
+			editor.editing.modelToView.on( 'attribute:indent', ( evt, data, consumable ) => {
+				consumable.consume( data.item, 'attribute:indent' );
 			}, { priority: 'highest' } );
 			}, { priority: 'highest' } );
 
 
 			setModelData( model, '<listItem indent="0" type="bulleted">a</listItem><listItem indent="0" type="bulleted">b</listItem>' );
 			setModelData( model, '<listItem indent="0" type="bulleted">a</listItem><listItem indent="0" type="bulleted">b</listItem>' );
@@ -3404,8 +3409,8 @@ describe( 'ListEngine', () => {
 			expect( getViewData( editor.editing.view, { withoutSelection: true } ) )
 			expect( getViewData( editor.editing.view, { withoutSelection: true } ) )
 				.to.equal( '<ul><li>Foo<span></span></li><li>Bar</li></ul>' );
 				.to.equal( '<ul><li>Foo<span></span></li><li>Bar</li></ul>' );
 
 
-			// Change indent of the second list item.
 			model.change( writer => {
 			model.change( writer => {
+				// Change indent of the second list item.
 				writer.setAttribute( 'indent', 1, modelRoot.getChild( 1 ) );
 				writer.setAttribute( 'indent', 1, modelRoot.getChild( 1 ) );
 			} );
 			} );
 
 
@@ -3426,8 +3431,8 @@ describe( 'ListEngine', () => {
 			expect( getViewData( editor.editing.view, { withoutSelection: true } ) )
 			expect( getViewData( editor.editing.view, { withoutSelection: true } ) )
 				.to.equal( '<ul><li>Foo<span></span></li><li>Bar<ul><li>Xxx</li><li>Yyy</li></ul></li></ul>' );
 				.to.equal( '<ul><li>Foo<span></span></li><li>Bar<ul><li>Xxx</li><li>Yyy</li></ul></li></ul>' );
 
 
-			// Remove second list item. Expect that its sub-list will be moved to first list item.
 			model.change( writer => {
 			model.change( writer => {
+				// Remove second list item. Expect that its sub-list will be moved to first list item.
 				writer.remove( modelRoot.getChild( 1 ) );
 				writer.remove( modelRoot.getChild( 1 ) );
 			} );
 			} );
 
 
@@ -3540,7 +3545,11 @@ describe( 'ListEngine', () => {
 			const newType = element.getAttribute( 'type' ) == 'numbered' ? 'bulleted' : 'numbered';
 			const newType = element.getAttribute( 'type' ) == 'numbered' ? 'bulleted' : 'numbered';
 
 
 			model.change( writer => {
 			model.change( writer => {
-				writer.setAttribute( 'type', newType, modelDoc.selection.getFirstRange() );
+				const itemsToChange = Array.from( modelDoc.selection.getSelectedBlocks() );
+
+				for ( const item of itemsToChange ) {
+					writer.setAttribute( 'type', newType, item );
+				}
 			} );
 			} );
 		};
 		};