Skip to content

Commit

Permalink
Merge pull request #11424 from ckeditor/ck/11408-list-properties-post…
Browse files Browse the repository at this point in the history
…fixer-fix

Fix (list): List properties should remain the same after a paragraph following a list is toggled into a list item. Closes #11408.
  • Loading branch information
oleq committed Mar 8, 2022
2 parents 1824dce + 49e175d commit b8da51d
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -626,7 +626,7 @@ function fixListAttributesOnListItemElements( editor, attributeStrategies ) {
// ■ List item 1.
// ■ Paragraph[] // <-- The inserted item.
if ( !existingListItem || !existingListItem.is( 'element', 'listItem' ) ) {
existingListItem = insertedListItems[ insertedListItems.length - 1 ].previousSibling;
existingListItem = insertedListItems[ 0 ].previousSibling;

if ( existingListItem ) {
const indent = insertedListItems[ 0 ].getAttribute( 'listIndent' );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1721,6 +1721,29 @@ describe( 'ListPropertiesEditing', () => {
}
} );

describe( 'toggling list', () => {
// #11408
it( 'should copy the `listStyle` attribute from the previous list', () => {
setModelData( model,
'<listItem listIndent="0" listStyle="decimal" listType="numbered">Mercury</listItem>' +
'<listItem listIndent="0" listStyle="decimal" listType="numbered">Gemini</listItem>' +
'<listItem listIndent="0" listStyle="decimal" listType="numbered">Apollo</listItem>' +
'<paragraph>[Space shuttle</paragraph>' +
'<paragraph>Dragon]</paragraph>'
);

editor.execute( 'numberedList' );

expect( getModelData( model ) ).to.equal(
'<listItem listIndent="0" listStyle="decimal" listType="numbered">Mercury</listItem>' +
'<listItem listIndent="0" listStyle="decimal" listType="numbered">Gemini</listItem>' +
'<listItem listIndent="0" listStyle="decimal" listType="numbered">Apollo</listItem>' +
'<listItem listIndent="0" listStyle="decimal" listType="numbered">[Space shuttle</listItem>' +
'<listItem listIndent="0" listStyle="decimal" listType="numbered">Dragon]</listItem>'
);
} );
} );

describe( 'the FontColor feature', () => {
let editor, view, container;

Expand Down Expand Up @@ -3431,6 +3454,29 @@ describe( 'ListPropertiesEditing', () => {
};
}
} );

describe( 'toggling list', () => {
// #11408
it( 'should copy the `listReversed` attribute from the previous list', () => {
setModelData( model,
'<listItem listIndent="0" listReversed="true" listType="numbered">Mercury</listItem>' +
'<listItem listIndent="0" listReversed="true" listType="numbered">Gemini</listItem>' +
'<listItem listIndent="0" listReversed="true" listType="numbered">Apollo</listItem>' +
'<paragraph>[Space shuttle</paragraph>' +
'<paragraph>Dragon]</paragraph>'
);

editor.execute( 'numberedList' );

expect( getModelData( model ) ).to.equal(
'<listItem listIndent="0" listReversed="true" listType="numbered">Mercury</listItem>' +
'<listItem listIndent="0" listReversed="true" listType="numbered">Gemini</listItem>' +
'<listItem listIndent="0" listReversed="true" listType="numbered">Apollo</listItem>' +
'<listItem listIndent="0" listReversed="true" listType="numbered">[Space shuttle</listItem>' +
'<listItem listIndent="0" listReversed="true" listType="numbered">Dragon]</listItem>'
);
} );
} );
} );
} );

Expand Down Expand Up @@ -5080,6 +5126,29 @@ describe( 'ListPropertiesEditing', () => {
};
}
} );

describe( 'toggling list', () => {
// #11408
it( 'should copy the `listStart` attribute from the previous list', () => {
setModelData( model,
'<listItem listIndent="0" listStart="5" listType="numbered">Mercury</listItem>' +
'<listItem listIndent="0" listStart="5" listType="numbered">Gemini</listItem>' +
'<listItem listIndent="0" listStart="5" listType="numbered">Apollo</listItem>' +
'<paragraph>[Space shuttle</paragraph>' +
'<paragraph>Dragon]</paragraph>'
);

editor.execute( 'numberedList' );

expect( getModelData( model ) ).to.equal(
'<listItem listIndent="0" listStart="5" listType="numbered">Mercury</listItem>' +
'<listItem listIndent="0" listStart="5" listType="numbered">Gemini</listItem>' +
'<listItem listIndent="0" listStart="5" listType="numbered">Apollo</listItem>' +
'<listItem listIndent="0" listStart="5" listType="numbered">[Space shuttle</listItem>' +
'<listItem listIndent="0" listStart="5" listType="numbered">Dragon]</listItem>'
);
} );
} );
} );
} );

Expand Down
26 changes: 25 additions & 1 deletion packages/ckeditor5-list/tests/manual/list-properties.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/

/* globals console, document */
/* globals CKEditorInspector, console, document */

import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials';
Expand Down Expand Up @@ -84,6 +84,9 @@ ClassicEditor
}
}
} )
.then( editor => {
CKEditorInspector.attach( { 'Styles + Start index + Reversed': editor } );
} )
.catch( err => {
console.error( err.stack );
} );
Expand All @@ -99,6 +102,9 @@ ClassicEditor
}
}
} )
.then( editor => {
CKEditorInspector.attach( { 'Styles + Start index': editor } );
} )
.catch( err => {
console.error( err.stack );
} );
Expand All @@ -114,6 +120,9 @@ ClassicEditor
}
}
} )
.then( editor => {
CKEditorInspector.attach( { 'Styles + Reversed': editor } );
} )
.catch( err => {
console.error( err.stack );
} );
Expand All @@ -131,6 +140,9 @@ ClassicEditor
}
}
} )
.then( editor => {
CKEditorInspector.attach( { 'Start index + Reversed': editor } );
} )
.catch( err => {
console.error( err.stack );
} );
Expand All @@ -146,6 +158,9 @@ ClassicEditor
}
}
} )
.then( editor => {
CKEditorInspector.attach( { 'Start index': editor } );
} )
.catch( err => {
console.error( err.stack );
} );
Expand All @@ -161,6 +176,9 @@ ClassicEditor
}
}
} )
.then( editor => {
CKEditorInspector.attach( { 'Reversed': editor } );
} )
.catch( err => {
console.error( err.stack );
} );
Expand All @@ -178,6 +196,9 @@ ClassicEditor
}
}
} )
.then( editor => {
CKEditorInspector.attach( { 'Just styles': editor } );
} )
.catch( err => {
console.error( err.stack );
} );
Expand All @@ -195,6 +216,9 @@ ClassicEditor
}
}
} )
.then( editor => {
CKEditorInspector.attach( { 'No properties enabled': editor } );
} )
.catch( err => {
console.error( err.stack );
} );

0 comments on commit b8da51d

Please sign in to comment.