2016-02-06 18:50:47 +00:00
|
|
|
var assert = require('assert');
|
|
|
|
|
|
|
|
|
|
var DiffParser = require('../src/diff-parser.js').DiffParser;
|
|
|
|
|
|
|
|
|
|
describe('DiffParser', function() {
|
|
|
|
|
describe('generateDiffJson', function() {
|
|
|
|
|
|
2016-02-07 12:47:00 +00:00
|
|
|
it('should parse unix with \n diff', function() {
|
2016-02-06 18:50:47 +00:00
|
|
|
var diff =
|
|
|
|
|
'diff --git a/sample b/sample\n' +
|
|
|
|
|
'index 0000001..0ddf2ba\n' +
|
|
|
|
|
'--- a/sample\n' +
|
|
|
|
|
'+++ b/sample\n' +
|
|
|
|
|
'@@ -1 +1 @@\n' +
|
|
|
|
|
'-test\n' +
|
|
|
|
|
'+test1r\n';
|
2016-02-07 12:47:00 +00:00
|
|
|
checkDiffSample(diff)
|
2016-02-06 18:50:47 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should parse windows with \r\n diff', function() {
|
|
|
|
|
var diff =
|
|
|
|
|
'diff --git a/sample b/sample\r\n' +
|
|
|
|
|
'index 0000001..0ddf2ba\r\n' +
|
|
|
|
|
'--- a/sample\r\n' +
|
|
|
|
|
'+++ b/sample\r\n' +
|
|
|
|
|
'@@ -1 +1 @@\r\n' +
|
|
|
|
|
'-test\r\n' +
|
2016-02-07 12:47:00 +00:00
|
|
|
'+test1r\r\n';
|
|
|
|
|
checkDiffSample(diff)
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should parse old os x with \r diff', function() {
|
|
|
|
|
var diff =
|
|
|
|
|
'diff --git a/sample b/sample\r' +
|
|
|
|
|
'index 0000001..0ddf2ba\r' +
|
|
|
|
|
'--- a/sample\r' +
|
|
|
|
|
'+++ b/sample\r' +
|
|
|
|
|
'@@ -1 +1 @@\r' +
|
|
|
|
|
'-test\r' +
|
|
|
|
|
'+test1r\r';
|
|
|
|
|
checkDiffSample(diff)
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should parse mixed eols diff', function() {
|
|
|
|
|
var diff =
|
|
|
|
|
'diff --git a/sample b/sample\n' +
|
|
|
|
|
'index 0000001..0ddf2ba\r\n' +
|
|
|
|
|
'--- a/sample\r' +
|
|
|
|
|
'+++ b/sample\r\n' +
|
|
|
|
|
'@@ -1 +1 @@\n' +
|
|
|
|
|
'-test\r' +
|
2016-02-06 18:50:47 +00:00
|
|
|
'+test1r\n';
|
2016-02-07 12:47:00 +00:00
|
|
|
checkDiffSample(diff)
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function checkDiffSample(diff) {
|
2016-02-06 18:50:47 +00:00
|
|
|
var result = Diff2Html.getJsonFromDiff(diff);
|
|
|
|
|
var file1 = result[0];
|
|
|
|
|
assert.equal(1, result.length);
|
|
|
|
|
assert.equal(1, file1.addedLines);
|
|
|
|
|
assert.equal(1, file1.deletedLines);
|
|
|
|
|
assert.equal('sample', file1.oldName);
|
|
|
|
|
assert.equal('sample', file1.newName);
|
|
|
|
|
assert.equal(1, file1.blocks.length);
|
2016-02-07 12:47:00 +00:00
|
|
|
}
|
2016-02-06 18:50:47 +00:00
|
|
|
|
2016-02-23 18:21:34 +00:00
|
|
|
it('should parse diff with special characters', function() {
|
|
|
|
|
var diff =
|
|
|
|
|
'diff --git "a/bla with \ttab.scala" "b/bla with \ttab.scala"\n' +
|
|
|
|
|
'index 4c679d7..e9bd385 100644\n' +
|
|
|
|
|
'--- "a/bla with \ttab.scala"\n' +
|
|
|
|
|
'+++ "b/bla with \ttab.scala"\n' +
|
|
|
|
|
'@@ -1 +1,2 @@\n' +
|
|
|
|
|
'-cenas\n' +
|
|
|
|
|
'+cenas com ananas\n' +
|
|
|
|
|
'+bananas';
|
|
|
|
|
|
|
|
|
|
var result = Diff2Html.getJsonFromDiff(diff);
|
|
|
|
|
var file1 = result[0];
|
|
|
|
|
assert.equal(1, result.length);
|
|
|
|
|
assert.equal(2, file1.addedLines);
|
|
|
|
|
assert.equal(1, file1.deletedLines);
|
|
|
|
|
assert.equal('bla with \ttab.scala', file1.oldName);
|
|
|
|
|
assert.equal('bla with \ttab.scala', file1.newName);
|
|
|
|
|
assert.equal(1, file1.blocks.length);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should parse diff with prefix', function() {
|
|
|
|
|
var diff =
|
|
|
|
|
'diff --git "\tbla with \ttab.scala" "\tbla with \ttab.scala"\n' +
|
|
|
|
|
'index 4c679d7..e9bd385 100644\n' +
|
|
|
|
|
'--- "\tbla with \ttab.scala"\n' +
|
|
|
|
|
'+++ "\tbla with \ttab.scala"\n' +
|
|
|
|
|
'@@ -1 +1,2 @@\n' +
|
|
|
|
|
'-cenas\n' +
|
|
|
|
|
'+cenas com ananas\n' +
|
|
|
|
|
'+bananas';
|
|
|
|
|
|
|
|
|
|
var result = Diff2Html.getJsonFromDiff(diff, {"srcPrefix": "\t", "dstPrefix": "\t"});
|
|
|
|
|
var file1 = result[0];
|
|
|
|
|
assert.equal(1, result.length);
|
|
|
|
|
assert.equal(2, file1.addedLines);
|
|
|
|
|
assert.equal(1, file1.deletedLines);
|
|
|
|
|
assert.equal('bla with \ttab.scala', file1.oldName);
|
|
|
|
|
assert.equal('bla with \ttab.scala', file1.newName);
|
|
|
|
|
assert.equal(1, file1.blocks.length);
|
|
|
|
|
});
|
|
|
|
|
|
2016-02-06 18:50:47 +00:00
|
|
|
});
|
|
|
|
|
});
|