浏览代码

Added Range.isCollapsed.

Szymon Cofalik 10 年之前
父节点
当前提交
dbb5ede3be
共有 2 个文件被更改,包括 20 次插入0 次删除
  1. 9 0
      packages/ckeditor5-engine/src/treemodel/range.js
  2. 11 0
      packages/ckeditor5-engine/tests/treemodel/range.js

+ 9 - 0
packages/ckeditor5-engine/src/treemodel/range.js

@@ -35,6 +35,15 @@ CKEDITOR.define( [ 'treemodel/position', 'treemodel/positioniterator', 'utils' ]
 			this.end = Position.createFromPosition( end );
 		}
 
+		/**
+		 * Returns whether the range is collapsed, that is it start and end positions are equal.
+		 *
+		 * @property {Boolean}
+		 */
+		get isCollapsed() {
+			return this.start.isEqual( this.end );
+		}
+
 		/**
 		 * Range root element. Equals to the root of start position (which should be same as root of end position).
 		 *

+ 11 - 0
packages/ckeditor5-engine/tests/treemodel/range.js

@@ -51,6 +51,17 @@ describe( 'Range', () => {
 		} );
 	} );
 
+	describe( 'isCollapsed', () => {
+		it( 'should be true if range start and end positions are equal', () => {
+			let collapsedRange = new Range( start, start );
+			expect( collapsedRange.isCollapsed ).to.be.true;
+		} );
+
+		it( 'should be false if range start and end positions are not equal', () => {
+			expect( range.isCollapsed ).to.be.false;
+		} );
+	} );
+
 	describe( 'isEqual', () => {
 		it( 'should return true if the ranges are the same', () => {
 			let sameStart = new Position( root, [ 0 ] );