[MediaWiki-commits] [Gerrit] VisualEditor/VisualEditor[master]: DiffElement: Fix insert/delete-to-end loops

2017-08-25 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/373706 )

Change subject: DiffElement: Fix insert/delete-to-end loops
..


DiffElement: Fix insert/delete-to-end loops

Bug: T173860
Change-Id: Ic1c2d997e3295d0cc4d5445c2ef10daa0e9abd54
---
M src/ui/elements/ve.ui.DiffElement.js
M tests/ui/ve.ui.DiffElement.test.js
2 files changed, 37 insertions(+), 7 deletions(-)

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



diff --git a/src/ui/elements/ve.ui.DiffElement.js 
b/src/ui/elements/ve.ui.DiffElement.js
index 3a877e7..ea6a12e 100644
--- a/src/ui/elements/ve.ui.DiffElement.js
+++ b/src/ui/elements/ve.ui.DiffElement.js
@@ -194,7 +194,7 @@
  * Render the diff
  */
 ve.ui.DiffElement.prototype.renderDiff = function () {
-   var i, j, k, ilen, jlen, klen, nodes, move, documentSpacerNode, 
internalListSpacerNode, li, groupName,
+   var i, j, ilen, jlen, move, documentSpacerNode, internalListSpacerNode, 
li, groupName,
noChanges, group, headingNode, names, category, 
internalListGroup,
internalListDiffDiv, anyInternalListChanges, internalListItem,
documentNode = this.$document[ 0 ],
@@ -306,17 +306,17 @@
if ( this.oldDocChildren[ i ] === undefined ) {
 
// Everything else in the new doc is an insert
-   nodes = this.newDocChildren.slice( j );
-   for ( k = 0, klen = nodes.length; k < klen; k++ ) {
-   diffQueue.push( [ 'getNodeElements', nodes[ k 
], 'insert' ] );
+   while ( j < this.newDocChildren.length ) {
+   diffQueue.push( [ 'getNodeElements', 
this.newDocChildren[ j ], 'insert' ] );
+   j++;
}
 
} else if ( this.newDocChildren[ j ] === undefined ) {
 
// Everything else in the old doc is a remove
-   nodes = this.oldDocChildren.slice( i );
-   for ( k = 0, klen = nodes.length; k < klen; k++ ) {
-   diffQueue.push( [ 'getNodeElements', nodes[ k 
], 'remove' ] );
+   while ( i < this.oldDocChildren.length ) {
+   diffQueue.push( [ 'getNodeElements', 
this.oldDocChildren[ i ], 'remove' ] );
+   i++;
}
 
} else if ( this.remove.indexOf( i ) !== -1 ) {
diff --git a/tests/ui/ve.ui.DiffElement.test.js 
b/tests/ui/ve.ui.DiffElement.test.js
index befa3d3..d3e66dc 100644
--- a/tests/ui/ve.ui.DiffElement.test.js
+++ b/tests/ui/ve.ui.DiffElement.test.js
@@ -191,6 +191,36 @@
''
},
{
+   msg: 'Multi-node insert',
+   oldDoc: '',
+   newDoc: 'foobar',
+   expected:
+   '' +
+   '' +
+   '' +
+   '' +
+   'foo' +
+   '' +
+   '' +
+   'bar' +
+   ''
+   },
+   {
+   msg: 'Multi-node remove',
+   oldDoc: 'foobar',
+   newDoc: '',
+   expected:
+   '' +
+   'foo' +
+   '' +
+   '' +
+   'bar' +
+   '' +
+   '' +
+   '' +
+   ''
+   },
+   {
msg: 'Inline node inserted',
oldDoc: 'foo bar baz quux',
newDoc: 'foo bar  baz quux',

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic1c2d997e3295d0cc4d5445c2ef10daa0e9abd54
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders 
Gerrit-Reviewer: Tchanders 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list

[MediaWiki-commits] [Gerrit] VisualEditor/VisualEditor[master]: DiffElement: Fix insert/delete-to-end loops

2017-08-24 Thread Esanders (Code Review)
Esanders has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/373706 )

Change subject: DiffElement: Fix insert/delete-to-end loops
..

DiffElement: Fix insert/delete-to-end loops

Bug: T173860
Change-Id: Ic1c2d997e3295d0cc4d5445c2ef10daa0e9abd54
---
M src/ui/elements/ve.ui.DiffElement.js
M tests/ui/ve.ui.DiffElement.test.js
2 files changed, 37 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/06/373706/1

diff --git a/src/ui/elements/ve.ui.DiffElement.js 
b/src/ui/elements/ve.ui.DiffElement.js
index 3a877e7..ea6a12e 100644
--- a/src/ui/elements/ve.ui.DiffElement.js
+++ b/src/ui/elements/ve.ui.DiffElement.js
@@ -194,7 +194,7 @@
  * Render the diff
  */
 ve.ui.DiffElement.prototype.renderDiff = function () {
-   var i, j, k, ilen, jlen, klen, nodes, move, documentSpacerNode, 
internalListSpacerNode, li, groupName,
+   var i, j, ilen, jlen, move, documentSpacerNode, internalListSpacerNode, 
li, groupName,
noChanges, group, headingNode, names, category, 
internalListGroup,
internalListDiffDiv, anyInternalListChanges, internalListItem,
documentNode = this.$document[ 0 ],
@@ -306,17 +306,17 @@
if ( this.oldDocChildren[ i ] === undefined ) {
 
// Everything else in the new doc is an insert
-   nodes = this.newDocChildren.slice( j );
-   for ( k = 0, klen = nodes.length; k < klen; k++ ) {
-   diffQueue.push( [ 'getNodeElements', nodes[ k 
], 'insert' ] );
+   while ( j < this.newDocChildren.length ) {
+   diffQueue.push( [ 'getNodeElements', 
this.newDocChildren[ j ], 'insert' ] );
+   j++;
}
 
} else if ( this.newDocChildren[ j ] === undefined ) {
 
// Everything else in the old doc is a remove
-   nodes = this.oldDocChildren.slice( i );
-   for ( k = 0, klen = nodes.length; k < klen; k++ ) {
-   diffQueue.push( [ 'getNodeElements', nodes[ k 
], 'remove' ] );
+   while ( i < this.oldDocChildren.length ) {
+   diffQueue.push( [ 'getNodeElements', 
this.oldDocChildren[ i ], 'remove' ] );
+   i++;
}
 
} else if ( this.remove.indexOf( i ) !== -1 ) {
diff --git a/tests/ui/ve.ui.DiffElement.test.js 
b/tests/ui/ve.ui.DiffElement.test.js
index befa3d3..d3e66dc 100644
--- a/tests/ui/ve.ui.DiffElement.test.js
+++ b/tests/ui/ve.ui.DiffElement.test.js
@@ -191,6 +191,36 @@
''
},
{
+   msg: 'Multi-node insert',
+   oldDoc: '',
+   newDoc: 'foobar',
+   expected:
+   '' +
+   '' +
+   '' +
+   '' +
+   'foo' +
+   '' +
+   '' +
+   'bar' +
+   ''
+   },
+   {
+   msg: 'Multi-node remove',
+   oldDoc: 'foobar',
+   newDoc: '',
+   expected:
+   '' +
+   'foo' +
+   '' +
+   '' +
+   'bar' +
+   '' +
+   '' +
+   '' +
+   ''
+   },
+   {
msg: 'Inline node inserted',
oldDoc: 'foo bar baz quux',
newDoc: 'foo bar  baz quux',

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic1c2d997e3295d0cc4d5445c2ef10daa0e9abd54
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits