jenkins-bot has submitted this change and it was merged. Change subject: Fix getAnnotationsFromRange when starting with an element ......................................................................
Fix getAnnotationsFromRange when starting with an element Change-Id: I7fde427507e5003f1ed8ab2326dfc12811da10a2 --- M src/dm/lineardata/ve.dm.ElementLinearData.js M tests/dm/lineardata/ve.dm.ElementLinearData.test.js 2 files changed, 21 insertions(+), 8 deletions(-) Approvals: Catrope: Looks good to me, approved jenkins-bot: Verified diff --git a/src/dm/lineardata/ve.dm.ElementLinearData.js b/src/dm/lineardata/ve.dm.ElementLinearData.js index 9d148da..30053b3 100644 --- a/src/dm/lineardata/ve.dm.ElementLinearData.js +++ b/src/dm/lineardata/ve.dm.ElementLinearData.js @@ -431,16 +431,19 @@ */ ve.dm.ElementLinearData.prototype.getAnnotationsFromRange = function ( range, all ) { var i, left, right; - // Look at left side of range for annotations - left = this.getAnnotationsFromOffset( range.start ); - // Shortcut for single character and zero-length ranges - if ( range.getLength() === 0 || range.getLength() === 1 ) { - return left; - } // Iterator over the range, looking for annotations, starting at the 2nd character - for ( i = range.start + 1; i < range.end; i++ ) { + for ( i = range.start; i < range.end; i++ ) { // Skip non-content data if ( this.isElementData( i ) && !ve.dm.nodeFactory.isNodeContent( this.getType( i ) ) ) { + continue; + } + if ( !left ) { + // Look at left side of range for annotations + left = this.getAnnotationsFromOffset( i ); + // Shortcut for single character and zero-length ranges + if ( range.getLength() === 0 || range.getLength() === 1 ) { + return left; + } continue; } // Current character annotations @@ -460,7 +463,7 @@ } } } - return left; + return left || new ve.dm.AnnotationSet( this.getStore() ); }; /** diff --git a/tests/dm/lineardata/ve.dm.ElementLinearData.test.js b/tests/dm/lineardata/ve.dm.ElementLinearData.test.js index 400e3a6..1bf7de7 100644 --- a/tests/dm/lineardata/ve.dm.ElementLinearData.test.js +++ b/tests/dm/lineardata/ve.dm.ElementLinearData.test.js @@ -135,6 +135,16 @@ expected: [ { type: 'textStyle/bold' } ] }, { + msg: 'single annotation with non-content data', + data: [ + { type: 'paragraph' }, + ['a', [ { type: 'textStyle/bold' } ] ], + ['b', [ { type: 'textStyle/bold' } ] ], + { type: '/paragraph' } + ], + expected: [ { type: 'textStyle/bold' } ] + }, + { msg: 'multiple annotations', data: [ [ -- To view, visit https://gerrit.wikimedia.org/r/166773 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I7fde427507e5003f1ed8ab2326dfc12811da10a2 Gerrit-PatchSet: 8 Gerrit-Project: VisualEditor/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> Gerrit-Reviewer: Catrope <roan.katt...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits