jenkins-bot has submitted this change and it was merged.

Change subject: Fix metadata issues in newFromDocumentReplace
......................................................................


Fix metadata issues in newFromDocumentReplace

* Our metadata insertions now need to be the same length as the data
  insertion, not one more, so:
** Remove the +1 in the listMetadata splice
** Shorten the metadata variable by dropping the merging of the
   metadata right before and right after the internal list; it was
   also including the metadata right after the internal list twice
*** We still need to deal with this in some way though, left a TODO
** Fix the metadata insertion test for these changes
* Fix null reference keys in the test data; we made all references
  keyed a while ago, but this test data was never updated for that
** The remapping of reference data doesn't remap auto/N keys yet,
   left a FIXME for that

Change-Id: I8ef4e6ee7c1808574d81d0b83294848afd400cd7
---
M modules/ve-mw/test/dm/ve.dm.Transaction.test.js
M modules/ve-mw/test/dm/ve.dm.mwExample.js
M modules/ve/dm/ve.dm.Transaction.js
3 files changed, 10 insertions(+), 12 deletions(-)

Approvals:
  Esanders: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/ve-mw/test/dm/ve.dm.Transaction.test.js 
b/modules/ve-mw/test/dm/ve.dm.Transaction.test.js
index abfc924..279be32 100644
--- a/modules/ve-mw/test/dm/ve.dm.Transaction.test.js
+++ b/modules/ve-mw/test/dm/ve.dm.Transaction.test.js
@@ -21,7 +21,7 @@
                                'about': '#mwt4',
                                'listIndex': 0,
                                'listGroup': 'mwReference/',
-                               'listKey': null,
+                               'listKey': 'auto/1', // FIXME reference 
insertions should be renumbered correctly
                                'refGroup': '',
                                'contentsUsed': true
                        } },
@@ -55,7 +55,7 @@
                                                'removeMetadata': 
complexDoc.getMetadata( new ve.Range( 0, 7 ) ),
                                                'insertMetadata': 
complexDoc.getMetadata( new ve.Range( 0, 5 ) )
                                                        .concat( [ [ comment ] 
] )
-                                                       .concat( 
complexDoc.getMetadata( new ve.Range( 6, 8 ) ) )
+                                                       .concat( 
complexDoc.getMetadata( new ve.Range( 6, 7 ) ) )
                                        },
                                        { 'type': 'retain', 'length': 1 },
                                        {
diff --git a/modules/ve-mw/test/dm/ve.dm.mwExample.js 
b/modules/ve-mw/test/dm/ve.dm.mwExample.js
index 3030abf..dceb573 100644
--- a/modules/ve-mw/test/dm/ve.dm.mwExample.js
+++ b/modules/ve-mw/test/dm/ve.dm.mwExample.js
@@ -675,7 +675,7 @@
                'about': '#mwt1',
                'listIndex': 0,
                'listGroup': 'mwReference/',
-               'listKey': null,
+               'listKey': 'auto/0',
                'refGroup': '',
                'contentsUsed': true
        } },
diff --git a/modules/ve/dm/ve.dm.Transaction.js 
b/modules/ve/dm/ve.dm.Transaction.js
index 80bef8c..3571dca 100644
--- a/modules/ve/dm/ve.dm.Transaction.js
+++ b/modules/ve/dm/ve.dm.Transaction.js
@@ -190,15 +190,13 @@
        );
        metadata = new ve.dm.MetaLinearData( doc.getStore(),
                newDoc.getMetadata( new ve.Range( 0, 
newListNodeOuterRange.start ), true ).concat(
-                       // Merge the metadata immediately before and 
immediately after the internal list
-                       ve.copy( ve.dm.MetaLinearData.static.merge( [
-                               newDoc.metadata.getData( 
newListNodeOuterRange.start ),
-                               newDoc.metadata.getData( 
newListNodeOuterRange.end )
-                       ] ) )
-               ).concat( newDoc.getMetadata(
-                       new ve.Range( newListNodeOuterRange.end, 
newDoc.data.getLength() ), true
-               ) )
+                       newListNodeOuterRange.end < newDoc.data.getLength() ? 
newDoc.getMetadata(
+                               new ve.Range( newListNodeOuterRange.end + 1, 
newDoc.data.getLength() ), true
+                       ) : []
+               )
        );
+       // TODO deal with metadata right before and right after the internal 
list
+
        // Merge the stores
        merge = doc.getStore().merge( newDoc.getStore() );
        // Remap the store indexes in the data
@@ -261,7 +259,7 @@
                ve.batchSplice( listData, range.start - listNodeRange.start,
                        range.end - range.start, data.data );
                ve.batchSplice( listMetadata, range.start - listNodeRange.start,
-                       range.end - range.start + 1, metadata.data );
+                       range.end - range.start, metadata.data );
                tx.pushRetain( listNodeRange.start );
                tx.pushReplace( doc, listNodeRange.start, listNodeRange.end - 
listNodeRange.start,
                        listData, listMetadata

-- 
To view, visit https://gerrit.wikimedia.org/r/92819
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I8ef4e6ee7c1808574d81d0b83294848afd400cd7
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to