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

Reply via email to