8
0
Szymon Cofalik 8 лет назад
Родитель
Сommit
2afef20ab2
1 измененных файлов с 48 добавлено и 1 удалено
  1. 48 1
      packages/ckeditor5-engine/tests/model/delta/transform/transform.js

+ 48 - 1
packages/ckeditor5-engine/tests/model/delta/transform/transform.js

@@ -17,6 +17,7 @@ import InsertDelta from '../../../../src/model/delta/insertdelta';
 import RemoveDelta from '../../../../src/model/delta/removedelta';
 import MoveDelta from '../../../../src/model/delta/movedelta';
 import SplitDelta from '../../../../src/model/delta/splitdelta';
+import UnwrapDelta from '../../../../src/model/delta/unwrapdelta';
 
 import NoOperation from '../../../../src/model/operation/nooperation';
 import MoveOperation from '../../../../src/model/operation/moveoperation';
@@ -30,7 +31,8 @@ import {
 	getSplitDelta,
 	getRemoveDelta,
 	getMoveDelta,
-	getMergeDelta
+	getMergeDelta,
+	getUnwrapDelta
 } from '../../../../tests/model/delta/transform/_utils/utils';
 
 describe( 'transform', () => {
@@ -341,6 +343,51 @@ describe( 'transform', () => {
 				} );
 			} );
 
+			// #1053.
+			it( 'remove operation importance should be set correctly also for deltas other than remove delta', () => {
+				const unwrapDelta = getUnwrapDelta( new Position( root, [ 0 ] ), 2, baseVersion );
+
+				const nodeCopy = new Element( 'p' );
+				const splitDelta = getSplitDelta( new Position( root, [ 0, 0, 1 ] ), nodeCopy, 1, baseVersion );
+				const mergeDelta = splitDelta.getReversed();
+
+				const { deltasA } = transformDeltaSets( [ unwrapDelta ], [ splitDelta, mergeDelta ], doc );
+
+				expect( deltasA.length ).to.equal( 2 );
+
+				expectDelta( deltasA[ 0 ], {
+					type: MoveDelta,
+					operations: [
+						{
+							type: MoveOperation,
+							sourcePosition: new Position( root, [ 0, 0 ] ),
+							howMany: 1,
+							targetPosition: new Position( root, [ 0 ] ),
+							baseVersion: baseVersion + 4
+						}
+					]
+				} );
+
+				expectDelta( deltasA[ 1 ], {
+					type: UnwrapDelta,
+					operations: [
+						{
+							type: MoveOperation,
+							sourcePosition: new Position( root, [ 1, 0 ] ),
+							howMany: 1,
+							targetPosition: new Position( root, [ 1 ] ),
+							baseVersion: baseVersion + 5
+						},
+						{
+							type: RemoveOperation,
+							sourcePosition: new Position( root, [ 2 ] ),
+							howMany: 1,
+							baseVersion: baseVersion + 6
+						}
+					]
+				} );
+			} );
+
 			it( 'should keep correct order of nodes if additional context is used (insert before)', () => {
 				// Assume document state: 'a^bcd'. User presses 'delete' key twice.
 				const removeDelta1 = getRemoveDelta( new Position( root, [ 1 ] ), 1, baseVersion ); // 'acd'.