瀏覽代碼

Added missing Position tests.

Oskar Wrobel 9 年之前
父節點
當前提交
9a12f060e8
共有 1 個文件被更改,包括 31 次插入10 次删除
  1. 31 10
      packages/ckeditor5-engine/tests/view/position.js

+ 31 - 10
packages/ckeditor5-engine/tests/view/position.js

@@ -11,6 +11,7 @@ import Position from '/ckeditor5/engine/view/position.js';
 import Node from '/ckeditor5/engine/view/node.js';
 import Node from '/ckeditor5/engine/view/node.js';
 import Element from '/ckeditor5/engine/view/element.js';
 import Element from '/ckeditor5/engine/view/element.js';
 import Text from '/ckeditor5/engine/view/text.js';
 import Text from '/ckeditor5/engine/view/text.js';
+import TextProxy from '/ckeditor5/engine/view/textproxy.js';
 
 
 import CKEditorError from '/ckeditor5/utils/ckeditorerror.js';
 import CKEditorError from '/ckeditor5/utils/ckeditorerror.js';
 
 
@@ -289,7 +290,13 @@ describe( 'Position', () => {
 	} );
 	} );
 
 
 	describe( 'createBefore', () => {
 	describe( 'createBefore', () => {
-		it( 'should create positions before nodes', () => {
+		it( 'should throw error if one try to create positions before root', () => {
+			expect( () => {
+				Position.createBefore( parse( '<p></p>' ) );
+			} ).to.throw( CKEditorError, /position-before-root/ );
+		} );
+
+		it( 'should create positions before `Node`', () => {
 			const { selection } = parse( '<p>[]<b></b></p>' );
 			const { selection } = parse( '<p>[]<b></b></p>' );
 			const position = selection.getFirstPosition();
 			const position = selection.getFirstPosition();
 			const nodeAfter = position.nodeAfter;
 			const nodeAfter = position.nodeAfter;
@@ -297,15 +304,25 @@ describe( 'Position', () => {
 			expect( Position.createBefore( nodeAfter ).isEqual( position ) ).to.be.true;
 			expect( Position.createBefore( nodeAfter ).isEqual( position ) ).to.be.true;
 		} );
 		} );
 
 
-		it( 'should throw error if one try to create positions before root', () => {
-			expect( () => {
-				Position.createBefore( parse( '<p></p>' ) );
-			} ).to.throw( CKEditorError, /position-before-root/ );
+		it( 'should create positions before `TextProxy`', () => {
+			const text = new Text( 'abc' );
+			const paragraph = new Element( 'p', [], [ text ] );
+
+			const textProxy = new TextProxy( 'b', paragraph, text, 1 );
+			const position = new Position( text, 1 );
+
+			expect( Position.createBefore( textProxy ).isEqual( position ) ).to.be.true;
 		} );
 		} );
 	} );
 	} );
 
 
 	describe( 'createAfter', () => {
 	describe( 'createAfter', () => {
-		it( 'should create positions after nodes', () => {
+		it( 'should throw error if one try to create positions after root', () => {
+			expect( () => {
+				Position.createAfter( parse( '<p></p>' ) );
+			} ).to.throw( CKEditorError, /position-after-root/ );
+		} );
+
+		it( 'should create positions after `Node`', () => {
 			const { selection } = parse( '<p><b></b>[]</p>' );
 			const { selection } = parse( '<p><b></b>[]</p>' );
 			const position = selection.getFirstPosition();
 			const position = selection.getFirstPosition();
 			const nodeBefore = position.nodeBefore;
 			const nodeBefore = position.nodeBefore;
@@ -313,10 +330,14 @@ describe( 'Position', () => {
 			expect( Position.createAfter( nodeBefore ).isEqual( position ) ).to.be.true;
 			expect( Position.createAfter( nodeBefore ).isEqual( position ) ).to.be.true;
 		} );
 		} );
 
 
-		it( 'should throw error if one try to create positions after root', () => {
-			expect( () => {
-				Position.createAfter( parse( '<p></p>' ) );
-			} ).to.throw( CKEditorError, /position-after-root/ );
+		it( 'should create positions after `TextProxy`', () => {
+			const text = new Text( 'abc' );
+			const paragraph = new Element( 'p', [], [ text ] );
+
+			const textProxy = new TextProxy( 'b', paragraph, text, 1 );
+			const position = new Position( text, 2 );
+
+			expect( Position.createAfter( textProxy ).isEqual( position ) ).to.be.true;
 		} );
 		} );
 	} );
 	} );
 } );
 } );