Browse Source

Added fixes to t/1209 after rebasing master.

Maciej Bukowski 8 years ago
parent
commit
ac71377d1a

+ 0 - 5
packages/ckeditor5-engine/src/conversion/model-selection-to-view-converters.js

@@ -3,11 +3,6 @@
  * For licensing, see LICENSE.md.
  */
 
-<<<<<<< HEAD
-import ViewRange from '../view/range';
-=======
-import ViewElement from '../view/element';
->>>>>>> Simplified setTo calls and used Writer API instead of DocumentSelection.
 import viewWriter from '../view/writer';
 
 /**

+ 4 - 3
packages/ckeditor5-engine/src/conversion/model-to-view-converters.js

@@ -12,6 +12,7 @@ import ViewAttributeElement from '../view/attributeelement';
 import ViewText from '../view/text';
 import ViewRange from '../view/range';
 import viewWriter from '../view/writer';
+import DocumentSelection from '../model/documentselection';
 
 /**
  * Contains model to view converters for
@@ -329,7 +330,7 @@ export function wrap( elementCreator ) {
 			return;
 		}
 
-		if ( data.item instanceof ModelSelection ) {
+		if ( data.item instanceof ModelSelection || data.item instanceof DocumentSelection ) {
 			// Selection attribute conversion.
 			viewWriter.wrap( conversionApi.viewSelection.getFirstRange(), newViewElement, conversionApi.viewSelection );
 		} else {
@@ -369,7 +370,7 @@ export function highlightText( highlightDescriptor ) {
 			return;
 		}
 
-		if ( !( data.item instanceof ModelSelection ) && !data.item.is( 'textProxy' ) ) {
+		if ( !( data.item instanceof ModelSelection || data.item instanceof DocumentSelection ) && !data.item.is( 'textProxy' ) ) {
 			return;
 		}
 
@@ -385,7 +386,7 @@ export function highlightText( highlightDescriptor ) {
 
 		const viewElement = createViewElementFromHighlightDescriptor( descriptor );
 
-		if ( data.item instanceof ModelSelection ) {
+		if ( data.item instanceof ModelSelection || data.item instanceof DocumentSelection ) {
 			viewWriter.wrap( conversionApi.viewSelection.getFirstRange(), viewElement, conversionApi.viewSelection );
 		} else {
 			const viewRange = conversionApi.mapper.toViewRange( data.range );

+ 1 - 1
packages/ckeditor5-engine/src/dev-utils/model.js

@@ -203,7 +203,7 @@ export function stringify( node, selectionOrPositionOrRange = null ) {
 
 	modelToView.on( 'insert:$text', insertText() );
 	modelToView.on( 'attribute', wrap( ( value, data ) => {
-		if ( data.item instanceof ModelSelection || data.item.is( 'textProxy' ) ) {
+		if ( data.item instanceof ModelSelection || data.item instanceof DocumentSelection || data.item.is( 'textProxy' ) ) {
 			return new ViewAttributeElement( 'model-text-with-attributes', { [ data.attributeKey ]: stringifyAttributeValue( value ) } );
 		}
 	} ) );

+ 1 - 1
packages/ckeditor5-engine/src/view/writer.js

@@ -496,7 +496,7 @@ export function wrap( range, attribute, viewSelection = null ) {
 
 		// If wrapping position is equal to view selection, move view selection inside wrapping attribute element.
 		if ( viewSelection && viewSelection.isCollapsed && viewSelection.getFirstPosition().isEqual( range.start ) ) {
-			viewSelection.setRanges( [ new Range( position ) ] );
+			viewSelection.setTo( new Range( position ) );
 		}
 
 		return new Range( position );

+ 1 - 1
packages/ckeditor5-engine/tests/controller/editingcontroller.js

@@ -372,7 +372,7 @@ describe( 'EditingController', () => {
 				writer.insert( modelData, modelRoot );
 				p1 = modelRoot.getChild( 0 );
 
-				model.document.selection.addRange( ModelRange.createFromParentsAndOffsets( p1, 0, p1, 0 ) );
+				writer.setSelection( ModelRange.createFromParentsAndOffsets( p1, 0, p1, 0 ) );
 			} );
 
 			mcd = editing.modelToView;

+ 20 - 12
packages/ckeditor5-engine/tests/conversion/modelconversiondispatcher.js

@@ -288,9 +288,11 @@ describe( 'ModelConversionDispatcher', () => {
 		} );
 
 		it( 'should fire attributes events for collapsed selection', () => {
-			doc.selection.setRanges( [
-				new ModelRange( new ModelPosition( root, [ 2 ] ), new ModelPosition( root, [ 2 ] ) )
-			] );
+			model.change( writer => {
+				writer.setSelection(
+					new ModelRange( new ModelPosition( root, [ 2 ] ), new ModelPosition( root, [ 2 ] ) )
+				);
+			} );
 
 			model.change( writer => {
 				writer.setAttribute( 'bold', true, ModelRange.createIn( root ) );
@@ -304,9 +306,11 @@ describe( 'ModelConversionDispatcher', () => {
 		} );
 
 		it( 'should not fire attributes events if attribute has been consumed', () => {
-			doc.selection.setRanges( [
-				new ModelRange( new ModelPosition( root, [ 2 ] ), new ModelPosition( root, [ 2 ] ) )
-			] );
+			model.change( writer => {
+				writer.setSelection(
+					new ModelRange( new ModelPosition( root, [ 2 ] ), new ModelPosition( root, [ 2 ] ) )
+				);
+			} );
 
 			model.change( writer => {
 				writer.setAttribute( 'bold', true, ModelRange.createIn( root ) );
@@ -325,9 +329,11 @@ describe( 'ModelConversionDispatcher', () => {
 		} );
 
 		it( 'should fire events for markers for collapsed selection', () => {
-			doc.selection.setRanges( [
-				new ModelRange( new ModelPosition( root, [ 1 ] ), new ModelPosition( root, [ 1 ] ) )
-			] );
+			model.change( writer => {
+				writer.setSelection(
+					new ModelRange( new ModelPosition( root, [ 1 ] ), new ModelPosition( root, [ 1 ] ) )
+				);
+			} );
 
 			model.markers.set( 'name', ModelRange.createFromParentsAndOffsets( root, 0, root, 2 ) );
 
@@ -392,9 +398,11 @@ describe( 'ModelConversionDispatcher', () => {
 		} );
 
 		it( 'should not fire events if information about marker has been consumed', () => {
-			doc.selection.setRanges( [
-				new ModelRange( new ModelPosition( root, [ 1 ] ), new ModelPosition( root, [ 1 ] ) )
-			] );
+			model.change( writer => {
+				writer.setSelection(
+					new ModelRange( new ModelPosition( root, [ 1 ] ), new ModelPosition( root, [ 1 ] ) )
+				);
+			} );
 
 			model.markers.set( 'foo', ModelRange.createFromParentsAndOffsets( root, 0, root, 2 ) );
 			model.markers.set( 'bar', ModelRange.createFromParentsAndOffsets( root, 0, root, 2 ) );