浏览代码

More tests to ModelConversionDispatcher.

Szymon Kupś 8 年之前
父节点
当前提交
c84e6792b3
共有 1 个文件被更改,包括 41 次插入2 次删除
  1. 41 2
      packages/ckeditor5-engine/tests/conversion/modelconversiondispatcher.js

+ 41 - 2
packages/ckeditor5-engine/tests/conversion/modelconversiondispatcher.js

@@ -654,8 +654,47 @@ describe( 'ModelConversionDispatcher', () => {
 			dispatcher.convertMarker( 'removeMarker', 'name', range );
 		} );
 
-		it( 'should fire conversion for each item in the range', () => {
-			expect( true ).to.be.false;
+		it( 'should fire conversion for whole range and each item in the range', () => {
+			const element = new ModelElement( 'paragraph', null, [ new ModelText( 'foo bar baz' ) ] );
+			root.appendChildren( [ element ] );
+			range = ModelRange.createIn( root );
+
+			const addMarkerItems = [];
+			const removeMarkerItems = [];
+
+			dispatcher.on( 'addMarker:name', ( evt, data ) => {
+				// Called for whole marker.
+				if ( !data.item ) {
+					expect( data.range.isEqual( range ) ).to.be.true;
+				} else {
+					addMarkerItems.push( data.item );
+				}
+			} );
+			dispatcher.on( 'removeMarker:name', ( evt, data ) => {
+				// Called for whole marker.
+				if ( !data.item ) {
+					expect( data.range.isEqual( range ) ).to.be.true;
+				} else {
+					removeMarkerItems.push( data.item );
+				}
+			} );
+
+			dispatcher.convertMarker( 'addMarker', 'name', range );
+			dispatcher.convertMarker( 'removeMarker', 'name', range );
+
+			let i = 0;
+			for ( const val of range ) {
+				const item = val.item;
+
+				if ( item.is( 'textProxy' ) ) {
+					expect( item.data ).to.equal( addMarkerItems[ i ].data );
+					expect( item.data ).to.equal( removeMarkerItems[ i ].data );
+				} else {
+					expect( removeMarkerItems[ i ] ).to.equal( item );
+				}
+
+				i++;
+			}
 		} );
 
 		it( 'should not fire conversion for each item in marker\'s range if whole marker conversion was performed', () => {