Catrope has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/191561

Change subject: Add some more tests for newFromDocumentInserton
......................................................................

Add some more tests for newFromDocumentInserton

These don't cover T89943 yet though.

Change-Id: I6cfdae2776074790977bab9e3516eb8f1953e0f0
---
M tests/dm/ve.dm.Transaction.test.js
1 file changed, 57 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/61/191561/1

diff --git a/tests/dm/ve.dm.Transaction.test.js 
b/tests/dm/ve.dm.Transaction.test.js
index ee89d3d..b425308 100644
--- a/tests/dm/ve.dm.Transaction.test.js
+++ b/tests/dm/ve.dm.Transaction.test.js
@@ -808,9 +808,10 @@
 } );
 
 QUnit.test( 'newFromDocumentInsertion', function ( assert ) {
-       var i, j, doc2, tx, actualStoreItems, expectedStoreItems, removalOps,
+       var i, j, doc2, store2, tx, actualStoreItems, expectedStoreItems, 
removalOps,
                doc = ve.dm.example.createExampleDocument( 'internalData' ),
                nextIndex = doc.store.valueStore.length,
+               bold = ve.dm.example.createAnnotation( ve.dm.example.bold ),
                whee = [ { type: 'paragraph' }, 'W', 'h', 'e', 'e', { type: 
'/paragraph' } ],
                wheeItem = [ { type: 'internalItem' } ].concat( whee ).concat( 
[ { type: '/internalItem' } ] ),
                cases = [
@@ -855,7 +856,7 @@
                                modify: function ( newDoc ) {
                                        // Bold the first two characters
                                        newDoc.commit( 
ve.dm.Transaction.newFromAnnotation(
-                                               newDoc, new ve.Range( 1, 3 ), 
'set', ve.dm.example.bold
+                                               newDoc, new ve.Range( 1, 3 ), 
'set', bold
                                        ) );
                                },
                                removalOps: [
@@ -880,9 +881,7 @@
                                        },
                                        { type: 'retain', length: 7 }
                                ],
-                               expectedStoreItems: [
-                                       ve.dm.example.bold
-                               ]
+                               expectedStoreItems: [ bold ]
                        },
                        {
                                msg: 'insertion into internal list',
@@ -979,6 +978,57 @@
                                        },
                                        { type: 'retain', length: 7 }
                                ]
+                       },
+                       {
+                               msg: 'insertion from unrelated document',
+                               doc: 'internalData',
+                               offset: 0,
+                               newDocData: [
+                                       { type: 'paragraph' }, 'F', 'o', 'o', { 
type: '/paragraph' },
+                                       { type: 'internalList' }, { type: 
'/internalList' }
+                               ],
+                               removalOps: [],
+                               expectedOps: [
+                                       {
+                                               type: 'replace',
+                                               remove: [],
+                                               insert: [ { type: 'paragraph' 
}, 'F', 'o', 'o', { type: '/paragraph' } ]
+                                       },
+                                       { type: 'retain', length: 6 },
+                                       {
+                                               type: 'replace',
+                                               remove: doc.getData( new 
ve.Range( 6, 20 ) ),
+                                               insert: doc.getData( new 
ve.Range( 6, 20 ) )
+                                       },
+                                       { type: 'retain', length: 7 }
+                               ]
+                       },
+                       {
+                               msg: 'insertion from unrelated document with 
annotation',
+                               doc: 'internalData',
+                               offset: 0,
+                               newDocData: [
+                                       { type: 'paragraph' }, 'F',
+                                       [ 'o', [ ve.dm.example.bold ] ],
+                                       'o', { type: '/paragraph' },
+                                       { type: 'internalList' }, { type: 
'/internalList' }
+                               ],
+                               removalOps: [],
+                               expectedOps: [
+                                       {
+                                               type: 'replace',
+                                               remove: [],
+                                               insert: [ { type: 'paragraph' 
}, 'F', ['o', [nextIndex]], 'o', { type: '/paragraph' } ]
+                                       },
+                                       { type: 'retain', length: 6 },
+                                       {
+                                               type: 'replace',
+                                               remove: doc.getData( new 
ve.Range( 6, 20 ) ),
+                                               insert: doc.getData( new 
ve.Range( 6, 20 ) )
+                                       },
+                                       { type: 'retain', length: 7 }
+                               ],
+                               expectedStoreItems: [ bold ]
                        }
                ];
 
@@ -987,7 +1037,8 @@
        for ( i = 0; i < cases.length; i++ ) {
                doc = ve.dm.example.createExampleDocument( cases[i].doc );
                if ( cases[i].newDocData ) {
-                       doc2 = new ve.dm.Document( cases[i].newDocData );
+                       store2 = new ve.dm.IndexValueStore();
+                       doc2 = new ve.dm.Document( 
ve.dm.example.preprocessAnnotations( cases[i].newDocData, store2 ) );
                        removalOps = [];
                } else if ( cases[i].range ) {
                        doc2 = doc.cloneFromRange( cases[i].range );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6cfdae2776074790977bab9e3516eb8f1953e0f0
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>

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

Reply via email to