diff --git a/src/side-by-side-printer.js b/src/side-by-side-printer.js index 485eafc..ccd9e55 100644 --- a/src/side-by-side-printer.js +++ b/src/side-by-side-printer.js @@ -23,6 +23,42 @@ this.config = config; } + SideBySidePrinter.prototype.makeDiffHtml = function(file, diffs) { + return '
\n' + + '
\n' + + '
\n' + + ' ' + + ' +' + file.addedLines + '\n' + + ' \n' + + ' ' + + ' -' + file.deletedLines + '\n' + + ' \n' + + '
\n' + + '
' + printerUtils.getDiffName(file) + '
\n' + + '
\n' + + '
\n' + + '
\n' + + '
\n' + + ' \n' + + ' \n' + + ' ' + diffs.left + + ' \n' + + '
\n' + + '
\n' + + '
\n' + + '
\n' + + '
\n' + + ' \n' + + ' \n' + + ' ' + diffs.right + + ' \n' + + '
\n' + + '
\n' + + '
\n' + + '
\n' + + '
\n'; + }; + SideBySidePrinter.prototype.generateSideBySideJsonHtml = function(diffFiles) { var that = this; return '
\n' + @@ -35,43 +71,20 @@ diffs = that.generateEmptyDiff(); } - return '
\n' + - '
\n' + - '
\n' + - ' ' + - ' +' + file.addedLines + '\n' + - ' \n' + - ' ' + - ' -' + file.deletedLines + '\n' + - ' \n' + - '
\n' + - '
' + printerUtils.getDiffName(file) + '
\n' + - '
\n' + - '
\n' + - '
\n' + - '
\n' + - ' \n' + - ' \n' + - ' ' + diffs.left + - ' \n' + - '
\n' + - '
\n' + - '
\n' + - '
\n' + - '
\n' + - ' \n' + - ' \n' + - ' ' + diffs.right + - ' \n' + - '
\n' + - '
\n' + - '
\n' + - '
\n' + - '
\n'; + return that.makeDiffHtml(file, diffs); }).join('\n') + '
\n'; }; + SideBySidePrinter.prototype.makeSideHtml = function(blockHeader) { + return '\n' + + ' \n' + + ' \n' + + '
' + blockHeader + '
\n' + + ' \n' + + '\n'; + }; + SideBySidePrinter.prototype.generateSideBySideFileHtml = function(file) { var that = this; var fileHtml = {}; @@ -80,21 +93,8 @@ file.blocks.forEach(function(block) { - fileHtml.left += '\n' + - ' \n' + - ' ' + - '
' + - ' ' + utils.escape(block.header) + - '
' + - ' \n' + - '\n'; - - fileHtml.right += '\n' + - ' \n' + - ' ' + - '
' + - ' \n' + - '\n'; + fileHtml.left += that.makeSideHtml(utils.escape(block.header)); + fileHtml.right += that.makeSideHtml(''); var oldLines = []; var newLines = []; @@ -226,6 +226,15 @@ return fileHtml; }; + SideBySidePrinter.prototype.makeSingleLineHtml = function(type, number, htmlContent, htmlPrefix) { + return '\n' + + ' ' + number + '\n' + + ' ' + + '
' + htmlPrefix + htmlContent + '
' + + ' \n' + + ' \n'; + }; + SideBySidePrinter.prototype.generateSingleLineHtml = function(type, number, content, prefix) { var htmlPrefix = ''; if (prefix) { @@ -237,12 +246,7 @@ htmlContent = '' + content + ''; } - return '\n' + - ' ' + number + '\n' + - ' ' + - '
' + htmlPrefix + htmlContent + '
' + - ' \n' + - ' \n'; + return this.makeSingleLineHtml(type, number, htmlContent, htmlPrefix); }; SideBySidePrinter.prototype.generateEmptyDiff = function() { diff --git a/test/side-by-side-printer-tests.js b/test/side-by-side-printer-tests.js index 87128bd..dbbb000 100644 --- a/test/side-by-side-printer-tests.js +++ b/test/side-by-side-printer-tests.js @@ -120,4 +120,37 @@ describe('SideBySidePrinter', function() { parsedFileLeft.querySelectorAll(prefixTag).length); }); }); + + describe('generateSingleLineHtml', function() { + it('should work for insertions', function() { + + var diffParser = require('../src/diff-parser.js').DiffParser; + var sideBySidePrinter = new SideBySidePrinter({}); + var fileHtml = sideBySidePrinter.generateSingleLineHtml( + diffParser.LINE_TYPE.INSERTS, 30, 'test', '+'); + var expected = '\n' + + ' 30\n' + + ' ' + + '
+test
' + + ' \n' + + ' \n'; + + assert.equal(expected, fileHtml); + }); + it('should work for deletions', function() { + + var diffParser = require('../src/diff-parser.js').DiffParser; + var sideBySidePrinter = new SideBySidePrinter({}); + var fileHtml = sideBySidePrinter.generateSingleLineHtml( + diffParser.LINE_TYPE.DELETES, 30, 'test', '-'); + var expected = '\n' + + ' 30\n' + + ' ' + + '
-test
' + + ' \n' + + ' \n'; + + assert.equal(expected, fileHtml); + }); + }); });