8
0
Quellcode durchsuchen

Changed return value of treeView.Writer.remove() method to treeView.DocumentFragment.

Szymon Kupś vor 9 Jahren
Ursprung
Commit
20a8be3837

+ 4 - 3
packages/ckeditor5-engine/src/treeview/writer.js

@@ -10,6 +10,7 @@ import Element from './element.js';
 import Text from './text.js';
 import Range from './range.js';
 import CKEditorError from '../../utils/ckeditorerror.js';
+import DocumentFragment from './documentfragment.js';
 
 /**
  * Tree View Writer class.
@@ -352,7 +353,7 @@ import CKEditorError from '../../utils/ckeditorerror.js';
 	 *
 	 * @param {engine.treeView.Range} range Range to remove from container. After removing, it will be updated
 	 * to a collapsed range showing the new position.
-	 * @returns {Array.<engine.treeView.Node>} The array of removed nodes.
+	 * @returns {engine.treeView.DocumentFragment} Document fragment containing removed nodes.
 	 */
 	remove( range ) {
 		// Range should be placed inside one container.
@@ -367,7 +368,7 @@ import CKEditorError from '../../utils/ckeditorerror.js';
 
 		// If range is collapsed - nothing to remove.
 		if ( range.isCollapsed ) {
-			return [];
+			return new DocumentFragment();
 		}
 
 		// Break attributes at range start and end.
@@ -385,7 +386,7 @@ import CKEditorError from '../../utils/ckeditorerror.js';
 		range.end = Position.createFromPosition( mergePosition );
 
 		// Return removed nodes.
-		return removed;
+		return new DocumentFragment( removed );
 	}
 
 	/**

+ 6 - 5
packages/ckeditor5-engine/tests/treeview/writer/remove.js

@@ -11,6 +11,7 @@ import Writer from '/ckeditor5/engine/treeview/writer.js';
 import Element from '/ckeditor5/engine/treeview/element.js';
 import Range from '/ckeditor5/engine/treeview/range.js';
 import Text from '/ckeditor5/engine/treeview/text.js';
+import DocumentFragment from '/ckeditor5/engine/treeview/documentfragment.js';
 import utils from '/tests/engine/treeview/writer/_utils/utils.js';
 
 describe( 'Writer', () => {
@@ -32,13 +33,13 @@ describe( 'Writer', () => {
 			} ).to.throw( 'treeview-writer-invalid-range-container' );
 		} );
 
-		it( 'should return empty array when range is collapsed', () => {
+		it( 'should return empty DocumentFragment when range is collapsed', () => {
 			const p = new Element( 'p' );
 			const range = Range.createFromParentsAndOffsets( p, 0, p, 0 );
-			const nodes = writer.remove( range );
+			const fragment = writer.remove( range );
 
-			expect( nodes ).to.be.array;
-			expect( nodes.length ).to.equal( 0 );
+			expect( fragment ).to.be.instanceof( DocumentFragment );
+			expect( fragment.getChildCount() ).to.equal( 0 );
 			expect( range.isCollapsed ).to.be.true;
 		} );
 
@@ -63,7 +64,7 @@ describe( 'Writer', () => {
 			} );
 
 			// Test removed nodes.
-			test( writer, null, removed, [
+			test( writer, null, Array.from( removed.getChildren() ), [
 				{ instanceOf: Text, data: 'foobar' }
 			] );
 		} );