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

Change subject: Use simplediff to diff rt-server test results
......................................................................


Use simplediff to diff rt-server test results

Change-Id: I4e079cee763429d203c58aca5c8111a0afe5af07
---
M lib/mediawiki.Util.js
M package.json
M tests/roundtrip-test.js
3 files changed, 40 insertions(+), 10 deletions(-)

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



diff --git a/lib/mediawiki.Util.js b/lib/mediawiki.Util.js
index 34cd020..5d5ccd5 100644
--- a/lib/mediawiki.Util.js
+++ b/lib/mediawiki.Util.js
@@ -9,6 +9,7 @@
 var async = require('async'),
        request = require( 'request' ),
        jsDiff = require( 'diff' ),
+       simpleDiff = require( 'simplediff' ),
        entities = require( 'entities' ),
        TemplateRequest = require( './mediawiki.ApiRequest.js' 
).TemplateRequest,
        Consts = require('./mediawiki.wikitext.constants.js').WikitextConstants;
@@ -1249,29 +1250,31 @@
                        currentPair = {};
                };
 
+               var valueLength = change[1].join('').length;
+
                if ( !currentPair ) {
                        currentPair = {};
                }
 
-               if ( change.added ) {
+               if ( change[0] === '+' ) {
                        if ( currentPair.added ) {
                                pushPair( currentPair, outOff );
                        }
 
                        currentPair.added = { start: outOff };
-                       outOff += change.value.length;
+                       outOff += valueLength;
                        currentPair.added.end = outOff;
 
                        if ( currentPair.removed ) {
                                pushPair( currentPair );
                        }
-               } else if ( change.removed ) {
+               } else if ( change[0] === '-' ) {
                        if ( currentPair.removed ) {
                                pushPair( currentPair, srcOff );
                        }
 
                        currentPair.removed = { start: srcOff };
-                       srcOff += change.value.length;
+                       srcOff += valueLength;
                        currentPair.removed.end = srcOff;
 
                        if ( currentPair.added ) {
@@ -1282,14 +1285,41 @@
                                pushPair( currentPair, currentPair.added ? 
srcOff : outOff );
                        }
 
-                       srcOff += change.value.length;
-                       outOff += change.value.length;
+                       srcOff += valueLength;
+                       outOff += valueLength;
                }
        } );
 
        return pairs;
 };
+
+var diffLines = function(oldString, newString) {
+       var lineTokenize = function(value) {
+               var retLines = [],
+               lines = value.split(/^/m);
+               for(var i = 0; i < lines.length; i++) {
+                       var line = lines[i],
+                       lastLine = lines[i - 1];
+                       // Merge lines that may contain windows new lines
+                       if (line === '\n' && lastLine && 
lastLine[lastLine.length - 1] === '\r') {
+                               retLines[retLines.length - 1] += '\n';
+                       } else if (line) {
+                               retLines.push(line);
+                       }
+                       }
+               return retLines;
+       };
+
+       if (oldString === newString) {
+               return [['=', [newString]]];
+       } else {
+               return simpleDiff.diff(lineTokenize(oldString), 
lineTokenize(newString));
+       }
+};
+
+
 Util.convertDiffToOffsetPairs = convertDiffToOffsetPairs;
+Util.diffLines = diffLines;
 
 }( Util ) );
 
diff --git a/package.json b/package.json
index 8c993a1..baaf453 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,8 @@
        },
        "devDependencies": {
                "colors": "~0.6.2",
-               "diff": "~1.0.7"
+               "diff": "~1.0.7",
+               "simplediff": "0.1.1"
        },
        "main": "mediawiki.parser.js",
        "scripts": {
diff --git a/tests/roundtrip-test.js b/tests/roundtrip-test.js
index 544393f..1bf60da 100755
--- a/tests/roundtrip-test.js
+++ b/tests/roundtrip-test.js
@@ -1,8 +1,7 @@
 #!/usr/bin/env node
 "use strict";
 
-var jsDiff = require( 'diff' ),
-       request = require( 'request' ),
+var    request = require( 'request' ),
        optimist = require( 'optimist' ),
        domino = require( 'domino' ),
        url = require( 'url' ),
@@ -461,7 +460,7 @@
        var diff, offsetPairs;
 
        try {
-               diff = jsDiff.diffLines( out, env.page.src );
+               diff = Util.diffLines(out, env.page.src);
                offsetPairs = Util.convertDiffToOffsetPairs( diff );
 
                if ( diff.length > 0 ) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I4e079cee763429d203c58aca5c8111a0afe5af07
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Bebirchall <bebirch...@gmail.com>
Gerrit-Reviewer: Bebirchall <bebirch...@gmail.com>
Gerrit-Reviewer: GWicke <gwi...@wikimedia.org>
Gerrit-Reviewer: Marcoil <marc...@wikimedia.org>
Gerrit-Reviewer: Subramanya Sastry <ssas...@wikimedia.org>
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