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

Fixed: MoveOperation#isSticky was not recovered from JSON object in #fromJSON.

Szymon Cofalik 9 лет назад
Родитель
Сommit
0345630071

+ 7 - 1
packages/ckeditor5-engine/src/model/operation/moveoperation.js

@@ -191,6 +191,12 @@ export default class MoveOperation extends Operation {
 		let sourcePosition = Position.fromJSON( json.sourcePosition, document );
 		let targetPosition = Position.fromJSON( json.targetPosition, document );
 
-		return new MoveOperation( sourcePosition, json.howMany, targetPosition, json.baseVersion );
+		const move = new this( sourcePosition, json.howMany, targetPosition, json.baseVersion );
+
+		if ( json.isSticky ) {
+			move.isSticky = true;
+		}
+
+		return move;
 	}
 }

+ 12 - 0
packages/ckeditor5-engine/tests/model/operation/moveoperation.js

@@ -312,5 +312,17 @@ describe( 'MoveOperation', () => {
 
 			expect( deserialized ).to.deep.equal( op );
 		} );
+
+		it( 'should create proper MoveOperation from json object - sticky', () => {
+			const sourcePosition = new Position( root, [ 0, 0 ] );
+			const targetPosition = new Position( root, [ 1, 0 ] );
+			const op = new MoveOperation( sourcePosition, 1, targetPosition, doc.version );
+			op.isSticky = true;
+
+			const serialized = jsonParseStringify( op );
+			const deserialized = MoveOperation.fromJSON( serialized, doc );
+
+			expect( deserialized ).to.deep.equal( op );
+		} );
 	} );
 } );