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

Added treeView.Range.createFromRange method.

Szymon Kupś 9 лет назад
Родитель
Сommit
ab8972bdf7

+ 10 - 0
packages/ckeditor5-engine/src/treeview/range.js

@@ -72,4 +72,14 @@ export default class Range {
 			new Position( endElement, endOffset )
 		);
 	}
+
+	/**
+	 * Creates and returns a new instance of Range which is equal to passed range.
+	 *
+	 * @param {engine.treeView.Range} range Range to clone.
+	 * @returns {engine.treeView.Range}
+	 */
+	static createFromRange( range ) {
+		return new this( range.start, range.end );
+	}
 }

+ 10 - 0
packages/ckeditor5-engine/tests/treeview/range.js

@@ -73,4 +73,14 @@ describe( 'Range', () => {
 			expect( range1.isEqual( range2 ) ).to.be.false;
 		} );
 	} );
+
+	describe( 'createFromRange', () => {
+		it( 'should create a new instance of Range that is equal to passed range', () => {
+			const range = new Range( new Position( {}, 0 ), new Position( {}, 1 ) );
+			const clone = Range.createFromRange( range );
+
+			expect( clone ).not.to.be.equal( range ); // clone is not pointing to the same object as position
+			expect( clone.isEqual( range ) ).to.be.true; // but they are equal in the position-sense
+		} );
+	} );
 } );