- |
- {{oldNumber}}
- {{newNumber}}
+ |
+ {{{lineNumber}}}
|
-
+
{{#prefix}}
{{{prefix}}}
{{/prefix}}
diff --git a/src/templates/line-by-line-wrapper.mustache b/src/templates/generic-wrapper.mustache
similarity index 100%
rename from src/templates/line-by-line-wrapper.mustache
rename to src/templates/generic-wrapper.mustache
diff --git a/src/templates/icon-file-added.mustache b/src/templates/icon-file-added.mustache
new file mode 100644
index 0000000..cf855b9
--- /dev/null
+++ b/src/templates/icon-file-added.mustache
@@ -0,0 +1,4 @@
+
diff --git a/src/templates/icon-file-changed.mustache b/src/templates/icon-file-changed.mustache
new file mode 100644
index 0000000..19a150e
--- /dev/null
+++ b/src/templates/icon-file-changed.mustache
@@ -0,0 +1,4 @@
+
diff --git a/src/templates/icon-file-deleted.mustache b/src/templates/icon-file-deleted.mustache
new file mode 100644
index 0000000..fc3b8f4
--- /dev/null
+++ b/src/templates/icon-file-deleted.mustache
@@ -0,0 +1,4 @@
+
diff --git a/src/templates/icon-file-renamed.mustache b/src/templates/icon-file-renamed.mustache
new file mode 100644
index 0000000..1bf266d
--- /dev/null
+++ b/src/templates/icon-file-renamed.mustache
@@ -0,0 +1,4 @@
+
diff --git a/src/templates/icon-file.mustache b/src/templates/icon-file.mustache
new file mode 100644
index 0000000..514972c
--- /dev/null
+++ b/src/templates/icon-file.mustache
@@ -0,0 +1,3 @@
+
diff --git a/src/templates/line-by-line-column-line-number.mustache b/src/templates/line-by-line-column-line-number.mustache
deleted file mode 100644
index 72825ed..0000000
--- a/src/templates/line-by-line-column-line-number.mustache
+++ /dev/null
@@ -1,6 +0,0 @@
-
- |
-
- {{{blockHeader}}}
- |
-
diff --git a/src/templates/line-by-line-file-diff.mustache b/src/templates/line-by-line-file-diff.mustache
index 7789fda..8af1ccd 100644
--- a/src/templates/line-by-line-file-diff.mustache
+++ b/src/templates/line-by-line-file-diff.mustache
@@ -1,16 +1,6 @@
diff --git a/src/templates/line-by-line-numbers.mustache b/src/templates/line-by-line-numbers.mustache
new file mode 100644
index 0000000..c0ef8c6
--- /dev/null
+++ b/src/templates/line-by-line-numbers.mustache
@@ -0,0 +1,2 @@
+ {{oldNumber}}
+ {{newNumber}}
diff --git a/src/templates/side-by-side-file-diff.mustache b/src/templates/side-by-side-file-diff.mustache
new file mode 100644
index 0000000..3f3e5d3
--- /dev/null
+++ b/src/templates/side-by-side-file-diff.mustache
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+ {{{diffs.right}}}
+
+
+
+
+
+
diff --git a/src/templates/tag-file-added.mustache b/src/templates/tag-file-added.mustache
new file mode 100644
index 0000000..3c32eb0
--- /dev/null
+++ b/src/templates/tag-file-added.mustache
@@ -0,0 +1 @@
+ ADDED
diff --git a/src/templates/tag-file-changed.mustache b/src/templates/tag-file-changed.mustache
new file mode 100644
index 0000000..5e83001
--- /dev/null
+++ b/src/templates/tag-file-changed.mustache
@@ -0,0 +1 @@
+ CHANGED
diff --git a/src/templates/tag-file-deleted.mustache b/src/templates/tag-file-deleted.mustache
new file mode 100644
index 0000000..f1aed8b
--- /dev/null
+++ b/src/templates/tag-file-deleted.mustache
@@ -0,0 +1 @@
+ DELETED
diff --git a/src/templates/tag-file-renamed.mustache b/src/templates/tag-file-renamed.mustache
new file mode 100644
index 0000000..9a67397
--- /dev/null
+++ b/src/templates/tag-file-renamed.mustache
@@ -0,0 +1 @@
+ RENAMED
diff --git a/src/ui/css/diff2html.css b/src/ui/css/diff2html.css
index a6a6bf4..9d4096d 100644
--- a/src/ui/css/diff2html.css
+++ b/src/ui/css/diff2html.css
@@ -16,39 +16,37 @@
}
.d2h-file-stats {
- display: inline;
- text-align: center;
+ display: flex;
+ margin-left: auto;
+ font-size: 14px;
}
.d2h-lines-added {
text-align: right;
-}
-
-.d2h-lines-added > * {
- background-color: #ceffce;
border: 1px solid #b4e2b4;
- color: #399839;
border-radius: 5px 0 0 5px;
+ color: #399839;
padding: 2px;
+ vertical-align: middle;
}
.d2h-lines-deleted {
text-align: left;
-}
-
-.d2h-lines-deleted > * {
- background-color: #f7c8c8;
border: 1px solid #e9aeae;
- color: #c33;
border-radius: 0 5px 5px 0;
+ color: #c33;
padding: 2px;
+ vertical-align: middle;
+ margin-left: 1px;
}
.d2h-file-name-wrapper {
- display: inline-flex;
- width: 90%;
+ display: flex;
+ align-items: center;
+ width: 100%;
font-family: "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 15px;
+ line-height: 15px;
}
.d2h-file-name {
@@ -102,16 +100,11 @@
.d2h-code-side-line {
display: block;
- white-space: pre;
+ white-space: nowrap;
padding: 0 10px;
height: 18px;
line-height: 18px;
margin-left: 50px;
- /* Override HighlightJS */
- /*color: inherit;*/
- /*overflow-x: inherit;*/
- /*background: none;*/
- /* ******************** */
}
.d2h-code-line del,
@@ -249,6 +242,7 @@
}
.d2h-file-list-line {
+ display: flex;
text-align: left;
}
@@ -258,6 +252,19 @@
.d2h-file-list {
display: block;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.d2h-file-list > li {
+ border-bottom: #ddd solid 1px;
+ padding: 5px 10px;
+ margin: 0;
+}
+
+.d2h-file-list > li:last-child {
+ border-bottom: none;
}
.d2h-file-switch {
@@ -266,6 +273,56 @@
cursor: pointer;
}
+.d2h-icon-wrapper {
+ line-height: 31px;
+}
+
+.d2h-icon {
+ vertical-align: middle;
+ margin-right: 10px;
+ fill: currentColor;
+}
+
+.d2h-deleted {
+ color: #c33;
+}
+
+.d2h-added {
+ color: #399839;
+}
+
+.d2h-changed {
+ color: #d0b44c;
+}
+
+.d2h-moved {
+ color: #3572b0;
+}
+
+.d2h-tag {
+ display: flex;
+ font-size: 10px;
+ margin-left: 5px;
+ padding: 0 2px;
+ background-color: #fff;
+}
+
+.d2h-deleted-tag {
+ border: #c33 1px solid;
+}
+
+.d2h-added-tag {
+ border: #399839 1px solid;
+}
+
+.d2h-changed-tag {
+ border: #d0b44c 1px solid;
+}
+
+.d2h-moved-tag {
+ border: #3572b0 1px solid;
+}
+
/*
* Selection util.
*/
diff --git a/test/diff2html-tests.js b/test/diff2html-tests.js
index ef87ef5..99649d0 100644
--- a/test/diff2html-tests.js
+++ b/test/diff2html-tests.js
@@ -43,40 +43,39 @@ var jsonExample1 =
var filesExample1 =
' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' | \n' +
- ' +1\n' +
- ' | \n' +
- ' \n' +
- ' -1\n' +
- ' | \n' +
- ' \n' +
- ' sample \n' +
- ' | \n' +
- ' \n' +
- ' \n';
+ ' \n' +
+ ' \n' +
+ ' - \n' +
+ ' \n' +
+ ' \n' +
+ ' sample\n' +
+ ' \n' +
+ ' +1\n' +
+ ' -1\n' +
+ ' \n' +
+ ' \n' +
+ '
\n' +
+ ' \n' +
+ ' ';
+
var htmlLineExample1 =
' \n' +
' \n' +
' \n' +
' \n' +
' \n' +
@@ -85,12 +84,12 @@ var htmlLineExample1 =
' \n' +
' | \n' +
' \n' +
- ' \n' +
+ ' @@ -1 +1 @@ \n' +
' | \n' +
' \n' +
' | \n' +
- ' 1 \n' +
- ' \n' +
+ ' 1 \n' +
+ '\n' +
' | \n' +
' \n' +
' \n' +
@@ -100,8 +99,8 @@ var htmlLineExample1 =
' | \n' +
' \n' +
' | \n' +
- ' \n' +
- ' 1 \n' +
+ ' \n' +
+ '1 \n' +
' | \n' +
' \n' +
' \n' +
@@ -121,60 +120,67 @@ var htmlLineExample1WithFilesSummary = filesExample1 + htmlLineExample1;
var htmlSideExample1 =
' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' | \n' +
- ' \n' +
- ' @@ -1 +1 @@ \n' +
- ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' @@ -1 +1 @@ \n' +
+ ' | \n' +
+ ' \n' +
+ ' | \n' +
+ ' 1\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' -\n' +
+ ' test\n' +
+ ' \n' +
+ ' | \n' +
' \n' +
- '\n' +
- ' | 1 | \n' +
- ' -test | \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' | \n' +
- ' \n' +
- ' \n' +
- ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' | \n' +
+ ' 1\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' +\n' +
+ ' test1\n' +
+ ' \n' +
+ ' | \n' +
' \n' +
- '\n' +
- ' | 1 | \n' +
- ' +test1 | \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- '\n';
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' ';
var htmlSideExample1WithFilesSummary = filesExample1 + htmlSideExample1;
diff --git a/test/file-list-printer-tests.js b/test/file-list-printer-tests.js
new file mode 100644
index 0000000..89e9dc1
--- /dev/null
+++ b/test/file-list-printer-tests.js
@@ -0,0 +1,105 @@
+var assert = require('assert');
+
+var fileListPrinter = require('../src/file-list-printer.js').FileListPrinter;
+
+describe('FileListPrinter', function() {
+ describe('generateFileList', function() {
+ it('should work for all kinds of files', function() {
+
+ var files = [{
+ addedLines: 12,
+ deletedLines: 41,
+ language: 'js',
+ oldName: 'my/file/name.js',
+ newName: 'my/file/name.js'
+ }, {
+ addedLines: 12,
+ deletedLines: 41,
+ language: 'js',
+ oldName: 'my/file/name1.js',
+ newName: 'my/file/name2.js'
+ }, {
+ addedLines: 12,
+ deletedLines: 0,
+ language: 'js',
+ oldName: 'dev/null',
+ newName: 'my/file/name.js',
+ isNew: true
+ }, {
+ addedLines: 0,
+ deletedLines: 41,
+ language: 'js',
+ oldName: 'my/file/name.js',
+ newName: 'dev/null',
+ isDeleted: true
+ }];
+
+ var fileHtml = fileListPrinter.generateFileList(files);
+
+ var expected =
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' - \n' +
+ ' \n' +
+ ' \n' +
+ ' my/file/name.js\n' +
+ ' \n' +
+ ' +12\n' +
+ ' -41\n' +
+ ' \n' +
+ ' \n' +
+ '
\n' +
+ '- \n' +
+ ' \n' +
+ ' \n' +
+ ' my/file/{name1.js → name2.js}\n' +
+ ' \n' +
+ ' +12\n' +
+ ' -41\n' +
+ ' \n' +
+ ' \n' +
+ '
\n' +
+ '- \n' +
+ ' \n' +
+ ' \n' +
+ ' my/file/name.js\n' +
+ ' \n' +
+ ' +12\n' +
+ ' -0\n' +
+ ' \n' +
+ ' \n' +
+ '
\n' +
+ '- \n' +
+ ' \n' +
+ ' \n' +
+ ' my/file/name.js\n' +
+ ' \n' +
+ ' +0\n' +
+ ' -41\n' +
+ ' \n' +
+ ' \n' +
+ '
\n' +
+ ' \n' +
+ ' ';
+
+ assert.equal(expected, fileHtml);
+ });
+ });
+});
diff --git a/test/hogan-cache-tests.js b/test/hogan-cache-tests.js
index c5f65ce..190bf6f 100644
--- a/test/hogan-cache-tests.js
+++ b/test/hogan-cache-tests.js
@@ -1,28 +1,35 @@
var assert = require('assert');
var HoganJsUtils = require('../src/hoganjs-utils.js').HoganJsUtils;
+var diffParser = require('../src/diff-parser.js').DiffParser;
describe('HoganJsUtils', function() {
describe('render', function() {
var emptyDiffHtml =
' \n' +
- ' \n' +
- ' \n' +
+ ' \n' +
+ ' \n' +
' File without changes\n' +
' \n' +
' | \n' +
' | ';
it('should render view', function() {
- var result = HoganJsUtils.render('line-by-line', 'empty-diff', {});
+ var result = HoganJsUtils.render('generic', 'empty-diff', {
+ contentClass: 'd2h-code-line',
+ diffParser: diffParser
+ });
assert.equal(emptyDiffHtml, result);
});
it('should render view without cache', function() {
- var result = HoganJsUtils.render('line-by-line', 'empty-diff', {}, {noCache: true});
+ var result = HoganJsUtils.render('generic', 'empty-diff', {
+ contentClass: 'd2h-code-line',
+ diffParser: diffParser
+ }, {noCache: true});
assert.equal(emptyDiffHtml + '\n', result);
});
it('should return null if template is missing', function() {
- var result = HoganJsUtils.render('line-by-line', 'missing-template', {}, {noCache: true});
+ var result = HoganJsUtils.render('generic', 'missing-template', {}, {noCache: true});
assert.equal(null, result);
});
});
diff --git a/test/line-by-line-tests.js b/test/line-by-line-tests.js
index 16dabbf..a0ba661 100644
--- a/test/line-by-line-tests.js
+++ b/test/line-by-line-tests.js
@@ -31,8 +31,8 @@ describe('LineByLinePrinter', function() {
fileHtml = fileHtml.replace(/\n\n+/g, '\n');
var expected = ' \n' +
' | \n' +
- ' \n' +
- ' 30 \n' +
+ ' \n' +
+ '30 \n' +
' | \n' +
' \n' +
' \n' +
@@ -53,8 +53,8 @@ describe('LineByLinePrinter', function() {
fileHtml = fileHtml.replace(/\n\n+/g, '\n');
var expected = ' \n' +
' | \n' +
- ' 30 \n' +
- ' \n' +
+ ' 30 \n' +
+ '\n' +
' | \n' +
' \n' +
' \n' +
@@ -75,8 +75,8 @@ describe('LineByLinePrinter', function() {
fileHtml = fileHtml.replace(/\n\n+/g, '\n');
var expected = ' \n' +
' | \n' +
- ' \n' +
- ' 30 \n' +
+ ' \n' +
+ '30 \n' +
' | \n' +
' \n' +
' \n' +
@@ -97,8 +97,8 @@ describe('LineByLinePrinter', function() {
fileHtml = fileHtml.replace(/\n\n+/g, '\n');
var expected = ' \n' +
' | \n' +
- ' \n' +
- ' 30 \n' +
+ ' \n' +
+ '30 \n' +
' | \n' +
' \n' +
' \n' +
@@ -119,8 +119,9 @@ describe('LineByLinePrinter', function() {
fileHtml = fileHtml.replace(/\n\n+/g, '\n');
var expected = ' \n' +
' | \n' +
- ' \n' +
- ' 30 \n' +
+ ' \n' +
+ '' +
+ '30 \n' +
' | \n' +
' \n' +
' \n' +
@@ -149,19 +150,129 @@ describe('LineByLinePrinter', function() {
var fileHtml = lineByLinePrinter.makeFileDiffHtml(file, diffs);
- var expected = ' \n' +
+ var expected =
+ ' \n' +
' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' Random Html\n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' ';
+
+ assert.equal(expected, fileHtml);
+ });
+ it('should work for simple added file', function() {
+ var lineByLinePrinter = new LineByLinePrinter({});
+
+ var file = {
+ addedLines: 12,
+ deletedLines: 0,
+ language: 'js',
+ oldName: 'dev/null',
+ newName: 'my/file/name.js',
+ isNew: true
+ };
+ var diffs = ' Random Html';
+
+ var fileHtml = lineByLinePrinter.makeFileDiffHtml(file, diffs);
+
+ var expected =
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' Random Html\n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' ';
+
+ assert.equal(expected, fileHtml);
+ });
+ it('should work for simple deleted file', function() {
+ var lineByLinePrinter = new LineByLinePrinter({});
+
+ var file = {
+ addedLines: 0,
+ deletedLines: 41,
+ language: 'js',
+ oldName: 'my/file/name.js',
+ newName: 'dev/null',
+ isDeleted: true
+ };
+ var diffs = ' Random Html';
+
+ var fileHtml = lineByLinePrinter.makeFileDiffHtml(file, diffs);
+
+ var expected =
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' Random Html\n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' ';
+
+ assert.equal(expected, fileHtml);
+ });
+ it('should work for simple renamed file', function() {
+ var lineByLinePrinter = new LineByLinePrinter({});
+
+ var file = {
+ addedLines: 12,
+ deletedLines: 41,
+ language: 'js',
+ oldName: 'my/file/name1.js',
+ newName: 'my/file/name2.js',
+ isRename: true
+ };
+ var diffs = ' Random Html';
+
+ var fileHtml = lineByLinePrinter.makeFileDiffHtml(file, diffs);
+
+ var expected =
+ ' \n' +
+ ' \n' +
' \n' +
' \n' +
@@ -229,17 +340,12 @@ describe('LineByLinePrinter', function() {
' \n' +
' \n' +
' \n' +
' \n' +
' \n' +
@@ -248,12 +354,12 @@ describe('LineByLinePrinter', function() {
' \n' +
' | \n' +
' \n' +
- ' \n' +
+ ' @@ -1 +1 @@ \n' +
' | \n' +
' \n' +
' | \n' +
- ' 1 \n' +
- ' \n' +
+ ' 1 \n' +
+ '\n' +
' | \n' +
' \n' +
' \n' +
@@ -263,8 +369,8 @@ describe('LineByLinePrinter', function() {
' | \n' +
' \n' +
' | \n' +
- ' \n' +
- ' 1 \n' +
+ ' \n' +
+ '1 \n' +
' | \n' +
' \n' +
' \n' +
@@ -300,17 +406,12 @@ describe('LineByLinePrinter', function() {
' \n' +
' \n' +
' \n' +
' \n' +
' \n' +
@@ -356,8 +457,8 @@ describe('LineByLinePrinter', function() {
var expected =
' \n' +
' | \n' +
- ' 1 \n' +
- ' \n' +
+ ' 1 \n' +
+ '\n' +
' | \n' +
' \n' +
' \n' +
@@ -366,8 +467,8 @@ describe('LineByLinePrinter', function() {
' | \n' +
' \n' +
' | \n' +
- ' \n' +
- ' 1 \n' +
+ ' \n' +
+ '1 \n' +
' | \n' +
' \n' +
' \n' +
@@ -430,12 +531,12 @@ describe('LineByLinePrinter', function() {
' \n' +
' | \n' +
' \n' +
- ' \n' +
+ ' @@ -1 +1 @@ \n' +
' | \n' +
' \n' +
' | \n' +
- ' 1 \n' +
- ' 1 \n' +
+ ' 1 \n' +
+ '1 \n' +
' | \n' +
' \n' +
' \n' +
@@ -444,8 +545,8 @@ describe('LineByLinePrinter', function() {
' | \n' +
' \n' +
' | \n' +
- ' 2 \n' +
- ' \n' +
+ ' 2 \n' +
+ '\n' +
' | \n' +
' \n' +
' \n' +
@@ -455,8 +556,8 @@ describe('LineByLinePrinter', function() {
' | \n' +
' \n' +
' | \n' +
- ' \n' +
- ' 2 \n' +
+ ' \n' +
+ '2 \n' +
' | \n' +
' \n' +
' \n' +
@@ -466,8 +567,8 @@ describe('LineByLinePrinter', function() {
' | \n' +
' \n' +
' | \n' +
- ' \n' +
- ' 3 \n' +
+ ' \n' +
+ '3 \n' +
' | \n' +
' \n' +
' \n' +
diff --git a/test/side-by-side-printer-tests.js b/test/side-by-side-printer-tests.js
index e2e2286..b90e2c2 100644
--- a/test/side-by-side-printer-tests.js
+++ b/test/side-by-side-printer-tests.js
@@ -10,11 +10,11 @@ describe('SideBySidePrinter', function() {
var fileHtml = sideBySidePrinter.generateEmptyDiff();
var expectedRight = '';
var expectedLeft = ' \n' +
- ' | ' +
- ' ' +
- 'File without changes' +
- ' ' +
- ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' File without changes\n' +
+ ' \n' +
+ ' | \n' +
' \n';
assert.equal(expectedRight, fileHtml.right);
@@ -73,43 +73,78 @@ describe('SideBySidePrinter', function() {
var expectedLeft =
' \n' +
- ' | \n' +
- ' \n' +
- ' @@ -19,7 +19,7 @@ \n' +
- ' | \n' +
- ' \n' +
- ' \n' +
- ' | 19 | \n' +
- ' context | \n' +
- ' \n' +
- ' \n' +
- ' | 20 | \n' +
- ' -removed | \n' +
- ' \n' +
- ' \n' +
- ' | \n' +
- ' | \n' +
- ' \n';
+ ' | \n' +
+ ' \n' +
+ ' @@ -19,7 +19,7 @@ \n' +
+ ' | \n' +
+ ' | \n' +
+ ' | \n' +
+ ' 19\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' context\n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' | \n' +
+ ' 20\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' -\n' +
+ ' removed\n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' | \n' +
+ ' ' +
+ '\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' | \n' +
+ ' ';
var expectedRight =
' \n' +
- ' | \n' +
- ' \n' +
- ' \n' +
- ' | \n' +
- ' \n' +
- ' \n' +
- ' | 19 | \n' +
- ' context | \n' +
- ' \n' +
- ' \n' +
- ' | 20 | \n' +
- ' +added | \n' +
- ' \n' +
- ' \n' +
- ' | 21 | \n' +
- ' +another added | \n' +
- ' \n';
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' | \n' +
+ ' | \n' +
+ ' | \n' +
+ ' 19\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' context\n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' | \n' +
+ ' 20\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' +\n' +
+ ' added\n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' | \n' +
+ ' 21\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' +\n' +
+ ' another added\n' +
+ ' \n' +
+ ' | \n' +
+ ' ';
assert.equal(expectedLeft, fileHtml.left);
assert.equal(expectedRight, fileHtml.right);
@@ -124,11 +159,16 @@ describe('SideBySidePrinter', function() {
var fileHtml = sideBySidePrinter.generateSingleLineHtml(
diffParser.LINE_TYPE.INSERTS, 30, 'test', '+');
var expected = ' \n' +
- ' | 30 | \n' +
- ' ' +
- ' +test ' +
+ ' | \n' +
+ ' 30\n' +
' | \n' +
- ' \n';
+ ' \n' +
+ ' \n' +
+ ' +\n' +
+ ' test\n' +
+ ' \n' +
+ ' | \n' +
+ ' | ';
assert.equal(expected, fileHtml);
});
@@ -139,11 +179,16 @@ describe('SideBySidePrinter', function() {
var fileHtml = sideBySidePrinter.generateSingleLineHtml(
diffParser.LINE_TYPE.DELETES, 30, 'test', '-');
var expected = ' \n' +
- ' | 30 | \n' +
- ' ' +
- ' -test ' +
+ ' | \n' +
+ ' 30\n' +
' | \n' +
- ' \n';
+ ' \n' +
+ ' \n' +
+ ' -\n' +
+ ' test\n' +
+ ' \n' +
+ ' | \n' +
+ ' | ';
assert.equal(expected, fileHtml);
});
@@ -184,60 +229,67 @@ describe('SideBySidePrinter', function() {
var html = sideBySidePrinter.generateSideBySideJsonHtml(exampleJson);
var expected =
' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' | \n' +
- ' \n' +
- ' @@ -1 +1 @@ \n' +
- ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' @@ -1 +1 @@ \n' +
+ ' | \n' +
+ ' \n' +
+ ' | \n' +
+ ' 1\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' -\n' +
+ ' test\n' +
+ ' \n' +
+ ' | \n' +
' \n' +
- '\n' +
- ' | 1 | \n' +
- ' -test | \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' | \n' +
- ' \n' +
- ' \n' +
- ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' | \n' +
+ ' 1\n' +
+ ' | \n' +
+ ' \n' +
+ ' \n' +
+ ' +\n' +
+ ' test1r\n' +
+ ' \n' +
+ ' | \n' +
' \n' +
- '\n' +
- ' | 1 | \n' +
- ' +test1r | \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- '\n';
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' ';
assert.equal(expected, html);
});
@@ -254,43 +306,44 @@ describe('SideBySidePrinter', function() {
var html = sideBySidePrinter.generateSideBySideJsonHtml(exampleJson);
var expected =
' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' | File without changes | \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' | \n' +
+ ' \n' +
+ ' File without changes\n' +
+ ' \n' +
+ ' | \n' +
' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- ' \n' +
- '\n';
+ '\n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' \n' +
+ ' ';
assert.equal(expected, html);
});
@@ -316,24 +369,29 @@ describe('SideBySidePrinter', function() {
var html = sideBySidePrinter.processLines(oldLines, newLines);
var expectedLeft =
' \n' +
- ' | 1 | \n' +
- ' ' +
- ' ' +
- '-' +
- 'test ' +
+ ' | \n' +
+ ' 1\n' +
' | \n' +
- ' \n';
+ ' \n' +
+ ' \n' +
+ ' -\n' +
+ ' test\n' +
+ ' \n' +
+ ' | \n' +
+ ' | ';
var expectedRight =
' \n' +
- ' | 1 | \n' +
- ' ' +
- ' ' +
- '+' +
- 'test1r' +
- ' ' +
+ ' | \n' +
+ ' 1\n' +
' | \n' +
- ' \n';
+ ' \n' +
+ ' \n' +
+ ' +\n' +
+ ' test1r\n' +
+ ' \n' +
+ ' | \n' +
+ ' | ';
assert.equal(expectedLeft, html.left);
assert.equal(expectedRight, html.right);
| | | |