|
|
@@ -267,6 +267,26 @@ describe( 'table cell properties', () => {
|
|
|
tableCell = model.document.getRoot().getNodeByPath( [ 0, 0, 0 ] );
|
|
|
} );
|
|
|
|
|
|
+ it( 'should consume converted item borderColor attribute', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:borderColor:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ expect( conversionApi.consumable.consume( data.item, evt.name ) ).to.be.false;
|
|
|
+ } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'borderColor', '#f00', tableCell ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should be overridable', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:borderColor:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ conversionApi.consumable.consume( data.item, evt.name );
|
|
|
+ }, { priority: 'high' } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'borderColor', '#f00', tableCell ) );
|
|
|
+
|
|
|
+ assertTableCellStyle( editor, '' );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should downcast borderColor attribute (same top, right, bottom, left)', () => {
|
|
|
model.change( writer => writer.setAttribute( 'borderColor', {
|
|
|
top: '#f00',
|
|
|
@@ -294,6 +314,26 @@ describe( 'table cell properties', () => {
|
|
|
);
|
|
|
} );
|
|
|
|
|
|
+ it( 'should consume converted item borderStyle attribute', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:borderStyle:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ expect( conversionApi.consumable.consume( data.item, evt.name ) ).to.be.false;
|
|
|
+ } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'borderStyle', 'ridge', tableCell ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should be overridable', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:borderStyle:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ conversionApi.consumable.consume( data.item, evt.name );
|
|
|
+ }, { priority: 'high' } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'borderStyle', 'ridge', tableCell ) );
|
|
|
+
|
|
|
+ assertTableCellStyle( editor, '' );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should downcast borderStyle attribute (same top, right, bottom, left)', () => {
|
|
|
model.change( writer => writer.setAttribute( 'borderStyle', {
|
|
|
top: 'solid',
|
|
|
@@ -316,6 +356,26 @@ describe( 'table cell properties', () => {
|
|
|
assertTableCellStyle( editor, 'border-bottom:dotted;border-left:dashed;border-right:ridge;border-top:solid;' );
|
|
|
} );
|
|
|
|
|
|
+ it( 'should consume converted item borderWidth attribute', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:borderWidth:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ expect( conversionApi.consumable.consume( data.item, evt.name ) ).to.be.false;
|
|
|
+ } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'borderWidth', '2px', tableCell ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should be overridable', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:borderWidth:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ conversionApi.consumable.consume( data.item, evt.name );
|
|
|
+ }, { priority: 'high' } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'borderWidth', '2px', tableCell ) );
|
|
|
+
|
|
|
+ assertTableCellStyle( editor, '' );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should downcast borderWidth attribute (same top, right, bottom, left)', () => {
|
|
|
model.change( writer => writer.setAttribute( 'borderWidth', {
|
|
|
top: '42px',
|
|
|
@@ -559,6 +619,26 @@ describe( 'table cell properties', () => {
|
|
|
tableCell = model.document.getRoot().getNodeByPath( [ 0, 0, 0 ] );
|
|
|
} );
|
|
|
|
|
|
+ it( 'should consume converted item backgroundColor attribute', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:backgroundColor:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ expect( conversionApi.consumable.consume( data.item, evt.name ) ).to.be.false;
|
|
|
+ } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'backgroundColor', '#f00', tableCell ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should be overridable', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:backgroundColor:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ conversionApi.consumable.consume( data.item, evt.name );
|
|
|
+ }, { priority: 'high' } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'backgroundColor', '#f00', tableCell ) );
|
|
|
+
|
|
|
+ assertTableCellStyle( editor, '' );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should downcast backgroundColor', () => {
|
|
|
model.change( writer => writer.setAttribute( 'backgroundColor', '#f00', tableCell ) );
|
|
|
|
|
|
@@ -619,6 +699,26 @@ describe( 'table cell properties', () => {
|
|
|
tableCell = model.document.getRoot().getNodeByPath( [ 0, 0, 0 ] );
|
|
|
} );
|
|
|
|
|
|
+ it( 'should consume converted item horizontalAlignment attribute', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:horizontalAlignment:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ expect( conversionApi.consumable.consume( data.item, evt.name ) ).to.be.false;
|
|
|
+ } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'horizontalAlignment', 'right', tableCell ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should be overridable', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:horizontalAlignment:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ conversionApi.consumable.consume( data.item, evt.name );
|
|
|
+ }, { priority: 'high' } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'horizontalAlignment', 'right', tableCell ) );
|
|
|
+
|
|
|
+ assertTableCellStyle( editor, '' );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should downcast horizontalAlignment=left', () => {
|
|
|
model.change( writer => writer.setAttribute( 'horizontalAlignment', 'left', tableCell ) );
|
|
|
|
|
|
@@ -676,6 +776,26 @@ describe( 'table cell properties', () => {
|
|
|
tableCell = model.document.getRoot().getNodeByPath( [ 0, 0, 0 ] );
|
|
|
} );
|
|
|
|
|
|
+ it( 'should consume converted item verticalAlignment attribute', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:verticalAlignment:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ expect( conversionApi.consumable.consume( data.item, evt.name ) ).to.be.false;
|
|
|
+ } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'verticalAlignment', 'top', tableCell ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should be overridable', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:verticalAlignment:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ conversionApi.consumable.consume( data.item, evt.name );
|
|
|
+ }, { priority: 'high' } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'verticalAlignment', 'top', tableCell ) );
|
|
|
+
|
|
|
+ assertTableCellStyle( editor, '' );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should downcast verticalAlignment', () => {
|
|
|
model.change( writer => writer.setAttribute( 'verticalAlignment', 'middle', tableCell ) );
|
|
|
|
|
|
@@ -715,6 +835,26 @@ describe( 'table cell properties', () => {
|
|
|
tableCell = model.document.getRoot().getNodeByPath( [ 0, 0, 0 ] );
|
|
|
} );
|
|
|
|
|
|
+ it( 'should consume converted item borderColor attribute', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:padding:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ expect( conversionApi.consumable.consume( data.item, evt.name ) ).to.be.false;
|
|
|
+ } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'padding', '1px', tableCell ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should be overridable', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:padding:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ conversionApi.consumable.consume( data.item, evt.name );
|
|
|
+ }, { priority: 'high' } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'padding', '1px', tableCell ) );
|
|
|
+
|
|
|
+ assertTableCellStyle( editor, '' );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should downcast padding (same top, right, bottom, left)', () => {
|
|
|
model.change( writer => writer.setAttribute( 'padding', {
|
|
|
top: '2px',
|
|
|
@@ -771,6 +911,26 @@ describe( 'table cell properties', () => {
|
|
|
tableCell = model.document.getRoot().getNodeByPath( [ 0, 0, 0 ] );
|
|
|
} );
|
|
|
|
|
|
+ it( 'should consume converted item width attribute', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:width:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ expect( conversionApi.consumable.consume( data.item, evt.name ) ).to.be.false;
|
|
|
+ } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'width', '40px', tableCell ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should be overridable', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:width:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ conversionApi.consumable.consume( data.item, evt.name );
|
|
|
+ }, { priority: 'high' } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'width', '40px', tableCell ) );
|
|
|
+
|
|
|
+ assertTableCellStyle( editor, '' );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should downcast width attribute', () => {
|
|
|
model.change( writer => writer.setAttribute( 'width', '20px', tableCell ) );
|
|
|
|
|
|
@@ -814,6 +974,26 @@ describe( 'table cell properties', () => {
|
|
|
tableCell = model.document.getRoot().getNodeByPath( [ 0, 0, 0 ] );
|
|
|
} );
|
|
|
|
|
|
+ it( 'should consume converted item height attribute', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:height:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ expect( conversionApi.consumable.consume( data.item, evt.name ) ).to.be.false;
|
|
|
+ } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'height', '40px', tableCell ) );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should be overridable', () => {
|
|
|
+ editor.conversion.for( 'downcast' )
|
|
|
+ .add( dispatcher => dispatcher.on( 'attribute:height:tableCell', ( evt, data, conversionApi ) => {
|
|
|
+ conversionApi.consumable.consume( data.item, evt.name );
|
|
|
+ }, { priority: 'high' } ) );
|
|
|
+
|
|
|
+ model.change( writer => writer.setAttribute( 'height', '40px', tableCell ) );
|
|
|
+
|
|
|
+ assertTableCellStyle( editor, '' );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should downcast height attribute', () => {
|
|
|
model.change( writer => writer.setAttribute( 'height', '20px', tableCell ) );
|
|
|
|