浏览代码

Simplified the converter. "src" and "alt" attributes for the image will be always visible in the data.

Kamil Piechaczek 5 年之前
父节点
当前提交
2b1edf4688
共有 2 个文件被更改,包括 8 次插入20 次删除
  1. 1 8
      packages/ckeditor5-image/src/image/converters.js
  2. 7 12
      packages/ckeditor5-image/tests/image/converters.js

+ 1 - 8
packages/ckeditor5-image/src/image/converters.js

@@ -125,13 +125,6 @@ export function modelToViewAttributeConverter( attributeKey ) {
 		const figure = conversionApi.mapper.toViewElement( data.item );
 		const img = getViewImgFromWidget( figure );
 
-		if ( data.attributeNewValue !== null ) {
-			viewWriter.setAttribute( data.attributeKey, data.attributeNewValue, img );
-		} else if ( attributeKey === 'alt' && !data.attributeNewValue ) {
-			// The `alt` attribute should always be added. Even empty. See #5033.
-			viewWriter.setAttribute( data.attributeKey, '', img );
-		} else {
-			viewWriter.removeAttribute( data.attributeKey, img );
-		}
+		viewWriter.setAttribute( data.attributeKey, data.attributeNewValue || '', img );
 	}
 }

+ 7 - 12
packages/ckeditor5-image/tests/image/converters.js

@@ -218,34 +218,29 @@ describe( 'Image converters', () => {
 			);
 		} );
 
-		it( 'should convert an empty "alt" attribute from image even if removed', () => {
+		it( 'should convert an empty "src" attribute from image even if removed', () => {
 			setModelData( model, '<image src="" alt="foo bar"></image>' );
 			const image = document.getRoot().getChild( 0 );
 
 			model.change( writer => {
-				writer.removeAttribute( 'alt', image );
+				writer.removeAttribute( 'src', image );
 			} );
 
 			expect( getViewData( viewDocument, { withoutSelection: true } ) ).to.equal(
-				'<figure class="ck-widget image" contenteditable="false"><img alt="" src=""></img></figure>'
+				'<figure class="ck-widget image" contenteditable="false"><img alt="foo bar" src=""></img></figure>'
 			);
 		} );
 
-		it( 'should convert attribute removal', () => {
-			model.schema.extend( 'image', { allowAttributes: 'foo' } );
-
-			editor.conversion.for( 'downcast' )
-				.add( modelToViewAttributeConverter( 'foo' ) );
-
-			setModelData( model, '<image src="" alt="bar" foo="bar"></image>' );
+		it( 'should convert an empty "alt" attribute from image even if removed', () => {
+			setModelData( model, '<image src="" alt="foo bar"></image>' );
 			const image = document.getRoot().getChild( 0 );
 
 			model.change( writer => {
-				writer.removeAttribute( 'foo', image );
+				writer.removeAttribute( 'alt', image );
 			} );
 
 			expect( getViewData( viewDocument, { withoutSelection: true } ) ).to.equal(
-				'<figure class="ck-widget image" contenteditable="false"><img alt="bar" src=""></img></figure>'
+				'<figure class="ck-widget image" contenteditable="false"><img alt="" src=""></img></figure>'
 			);
 		} );