Esanders has uploaded a new change for review.

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

Change subject: Fix internal paste sanitization to not remove empty branch nodes
......................................................................

Fix internal paste sanitization to not remove empty branch nodes

Change-Id: I77a626bc72528991afcfb8e1a65815d00c0778fe
---
M src/ce/ve.ce.Surface.js
M tests/ce/ve.ce.Surface.test.js
2 files changed, 52 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/52/300852/1

diff --git a/src/ce/ve.ce.Surface.js b/src/ce/ve.ce.Surface.js
index eef4942..b546893 100644
--- a/src/ce/ve.ce.Surface.js
+++ b/src/ce/ve.ce.Surface.js
@@ -2016,7 +2016,7 @@
                        );
 
                        if ( importRules.all ) {
-                               pasteData.sanitize( importRules.all );
+                               sanitize( pasteData, true );
                        }
 
                        // Annotate
@@ -2037,7 +2037,7 @@
                        );
 
                        if ( importRules.all ) {
-                               pasteData.sanitize( importRules.all );
+                               sanitize( pasteData, true );
                        }
 
                        // Annotate
diff --git a/tests/ce/ve.ce.Surface.test.js b/tests/ce/ve.ce.Surface.test.js
index 7c35cef..27fa071 100644
--- a/tests/ce/ve.ce.Surface.test.js
+++ b/tests/ce/ve.ce.Surface.test.js
@@ -2498,6 +2498,56 @@
                                        ]
                                ],
                                msg: 'Double indented lists (Google Docs style)'
+                       },
+                       {
+                               rangeOrSelection: new ve.Range( 0 ),
+                               pasteTargetHtml: '<p>A</p><p></p><p>B</p>',
+                               expectedOps: [
+                                       [
+                                               {
+                                                       type: 'replace',
+                                                       insert: [
+                                                               { type: 
'paragraph' },
+                                                               'A',
+                                                               { type: 
'/paragraph' },
+                                                               { type: 
'paragraph' },
+                                                               'B',
+                                                               { type: 
'/paragraph' }
+                                                       ],
+                                                       remove: []
+                                               },
+                                               { type: 'retain', length: 
docLen }
+                                       ]
+                               ],
+                               msg: 'Empty paragraph stripped from external 
paste'
+                       },
+                       {
+                               rangeOrSelection: new ve.Range( 8 ),
+                               documentHtml: '<p>A</p><p></p><p>B</p>',
+                               internalSourceRangeOrSelection: new ve.Range( 
0, 8 ),
+                               expectedOps: [
+                                       [
+                                               { type: 'retain', length: 8 },
+                                               {
+                                                       type: 'replace',
+                                                       insert: [
+                                                               { type: 
'paragraph' },
+                                                               'A',
+                                                               { type: 
'/paragraph' },
+                                                               { type: 
'paragraph' },
+                                                               { type: 
'/paragraph' },
+                                                               { type: 
'paragraph' },
+                                                               'B',
+                                                               { type: 
'/paragraph' }
+                                                       ],
+                                                       insertedDataLength: 8,
+                                                       insertedDataOffset: 0,
+                                                       remove: []
+                                               },
+                                               { type: 'retain', length: 2 }
+                                       ]
+                               ],
+                               msg: 'Empty paragraph kept in internal paste'
                        }
                ];
 

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

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

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

Reply via email to