From b32e3aab486957dbd66dd47c2a61621647372b8c Mon Sep 17 00:00:00 2001 From: Roman Stawski Date: Mon, 29 Jul 2019 10:10:39 +0200 Subject: [PATCH 1/3] Correction of problem It appears that the configuration reportLinesUnchanged has no effect when showInlineDiffs is true. That is '<' and '>' characters are converted to HTML entities regardless. --- .../com/github/difflib/text/DiffRowGenerator.java | 8 +++++--- .../github/difflib/text/DiffRowGeneratorTest.java | 12 ++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/difflib/text/DiffRowGenerator.java b/src/main/java/com/github/difflib/text/DiffRowGenerator.java index 90babc71..4f963cd7 100644 --- a/src/main/java/com/github/difflib/text/DiffRowGenerator.java +++ b/src/main/java/com/github/difflib/text/DiffRowGenerator.java @@ -267,9 +267,11 @@ private DiffRow buildDiffRowWithoutNormalizing(Tag type, String orgline, String } List normalizeLines(List list) { - return list.stream() - .map(lineNormalizer::apply) - .collect(toList()); + return reportLinesUnchanged + ? list + : list.stream() + .map(lineNormalizer::apply) + .collect(toList()); } /** diff --git a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java index 752560b2..c667b251 100644 --- a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java +++ b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java @@ -405,4 +405,16 @@ public void testGeneratorIssue41UserNormalizer() throws DiffException { rows = generator.generateDiffRows(Arrays.asList("\t<"), Arrays.asList("<")); assertEquals("[[CHANGE, <,<]]", rows.toString()); } + + @Test + public void testGenerationIssue44reportLinesUnchangedProblem() throws DiffException { + DiffRowGenerator generator = DiffRowGenerator.create() + .showInlineDiffs(true) + .reportLinesUnchanged(true) + .oldTag(f -> "~~") + .newTag(f -> "**") + .build(); + List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); + assertEquals("[[CHANGE,
~~T~~o~~ do~~
,
**D**o**ne**
]]", rows.toString()); + } } From d9c302cec8836eac38ec65db07ead1c29176dc86 Mon Sep 17 00:00:00 2001 From: Roman Stawski Date: Mon, 29 Jul 2019 11:47:31 +0200 Subject: [PATCH 2/3] Implement rawValues option --- .../java/com/github/difflib/text/DiffRow.java | 27 +++++++++ .../github/difflib/text/DiffRowGenerator.java | 57 ++++++++++++++----- .../difflib/text/DiffRowGeneratorTest.java | 56 ++++++++++++++++++ 3 files changed, 127 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/github/difflib/text/DiffRow.java b/src/main/java/com/github/difflib/text/DiffRow.java index 95908393..cf987561 100644 --- a/src/main/java/com/github/difflib/text/DiffRow.java +++ b/src/main/java/com/github/difflib/text/DiffRow.java @@ -17,6 +17,7 @@ import java.io.Serializable; import java.util.Objects; +import java.util.Optional; /** * Describes the diff row in form [tag, oldLine, newLine) for showing the difference between two texts @@ -28,11 +29,19 @@ public final class DiffRow implements Serializable { private Tag tag; private final String oldLine; private final String newLine; + private final String rawOldLine; + private final String rawNewLine; public DiffRow(Tag tag, String oldLine, String newLine) { + this(tag, oldLine, newLine, null, null); + } + + public DiffRow(Tag tag, String oldLine, String newLine, String rawOldLine, String rawNewLine) { this.tag = tag; this.oldLine = oldLine; this.newLine = newLine; + this.rawOldLine = rawOldLine; + this.rawNewLine = rawNewLine; } public enum Tag { @@ -67,6 +76,24 @@ public String getNewLine() { return newLine; } + /** + * This accessor will only return a non -null value of {@link DiffRowGenerator.Builder.rawValues} + * is true. + * @return the raw value of the old line + */ + public Optional getRawOldLine() { + return Optional.ofNullable(rawOldLine); + } + + /** + * This accessor will only return a non -null value of {@link DiffRowGenerator.Builder.rawValues} + * is true. + * @return the raw value of the old line + */ + public Optional getRawNewLine() { + return Optional.ofNullable(rawNewLine); + } + @Override public int hashCode() { return Objects.hash(newLine, oldLine, tag); diff --git a/src/main/java/com/github/difflib/text/DiffRowGenerator.java b/src/main/java/com/github/difflib/text/DiffRowGenerator.java index 4f963cd7..ecd4d81f 100644 --- a/src/main/java/com/github/difflib/text/DiffRowGenerator.java +++ b/src/main/java/com/github/difflib/text/DiffRowGenerator.java @@ -152,6 +152,7 @@ static void wrapInTag(List sequence, int startPosition, private final Function lineNormalizer; private final boolean showInlineDiffs; + private final boolean rawValues; private DiffRowGenerator(Builder builder) { showInlineDiffs = builder.showInlineDiffs; @@ -164,6 +165,7 @@ private DiffRowGenerator(Builder builder) { equalizer = ignoreWhiteSpaces ? IGNORE_WHITESPACE_EQUALIZER : DEFAULT_EQUALIZER; reportLinesUnchanged = builder.reportLinesUnchanged; lineNormalizer = builder.lineNormalizer; + rawValues = builder.rawValues; Objects.requireNonNull(inlineDiffSplitter); Objects.requireNonNull(lineNormalizer); @@ -198,14 +200,14 @@ public List generateDiffRows(final List original, Patch Chunk rev = delta.getTarget(); for (String line : original.subList(endPos, orig.getPosition())) { - diffRows.add(buildDiffRow(Tag.EQUAL, line, line)); + diffRows.add(buildDiffRow(Tag.EQUAL, line, line, line, line)); } // Inserted DiffRow if (delta instanceof InsertDelta) { endPos = orig.last() + 1; for (String line : rev.getLines()) { - diffRows.add(buildDiffRow(Tag.INSERT, "", line)); + diffRows.add(buildDiffRow(Tag.INSERT, "", line, "", line)); } continue; } @@ -214,7 +216,7 @@ public List generateDiffRows(final List original, Patch if (delta instanceof DeleteDelta) { endPos = orig.last() + 1; for (String line : orig.getLines()) { - diffRows.add(buildDiffRow(Tag.DELETE, line, "")); + diffRows.add(buildDiffRow(Tag.DELETE, line, "", line, "")); } continue; } @@ -225,7 +227,9 @@ public List generateDiffRows(final List original, Patch for (int j = 0; j < Math.max(orig.size(), rev.size()); j++) { diffRows.add(buildDiffRow(Tag.CHANGE, orig.getLines().size() > j ? orig.getLines().get(j) : "", - rev.getLines().size() > j ? rev.getLines().get(j) : "")); + rev.getLines().size() > j ? rev.getLines().get(j) : "", + orig.getLines().size() > j ? delta.getSource().getLines().get(j) : "", + rev.getLines().size() > j ? delta.getTarget().getLines().get(j) : "")); } } endPos = orig.last() + 1; @@ -233,14 +237,16 @@ public List generateDiffRows(final List original, Patch // Copy the final matching chunk if any. for (String line : original.subList(endPos, original.size())) { - diffRows.add(buildDiffRow(Tag.EQUAL, line, line)); + diffRows.add(buildDiffRow(Tag.EQUAL, line, line, line, line)); } return diffRows; } - private DiffRow buildDiffRow(Tag type, String orgline, String newline) { + private DiffRow buildDiffRow(Tag type, String orgline, String newline, String raworgline, String rawnewline) { if (reportLinesUnchanged) { - return new DiffRow(type, orgline, newline); + return rawValues + ? new DiffRow(type, orgline, newline, raworgline, rawnewline) + : new DiffRow(type, orgline, newline); } else { String wrapOrg = preprocessLine(orgline); if (Tag.DELETE == type) { @@ -256,14 +262,22 @@ private DiffRow buildDiffRow(Tag type, String orgline, String newline) { wrapNew = newTag.apply(true) + wrapNew + newTag.apply(false); } } - return new DiffRow(type, wrapOrg, wrapNew); + return rawValues + ? new DiffRow(type, wrapOrg, wrapNew, raworgline, rawnewline) + : new DiffRow(type, wrapOrg, wrapNew); } } - private DiffRow buildDiffRowWithoutNormalizing(Tag type, String orgline, String newline) { - return new DiffRow(type, - StringUtils.wrapText(orgline, columnWidth), - StringUtils.wrapText(newline, columnWidth)); + private DiffRow buildDiffRowWithoutNormalizing(Tag type, String orgline, String newline, String raworgline, String rawnewline) { + return rawValues + ? new DiffRow(type, + StringUtils.wrapText(orgline, columnWidth), + StringUtils.wrapText(newline, columnWidth), + raworgline, + rawnewline) + : new DiffRow(type, + StringUtils.wrapText(orgline, columnWidth), + StringUtils.wrapText(newline, columnWidth)); } List normalizeLines(List list) { @@ -343,7 +357,9 @@ private List generateInlineDiffs(AbstractDelta delta) throws Di diffRows. add(buildDiffRowWithoutNormalizing(Tag.CHANGE, original.size() > j ? original.get(j) : "", - revised.size() > j ? revised.get(j) : "")); + revised.size() > j ? revised.get(j) : "", + original.size() > j ? delta.getSource().getLines().get(j) : "", + revised.size() > j ? delta.getTarget().getLines().get(j) : "")); } return diffRows; } @@ -375,6 +391,8 @@ public static class Builder { private boolean reportLinesUnchanged = false; private Function> inlineDiffSplitter = SPLITTER_BY_CHARACTER; private Function lineNormalizer = LINE_NORMALIZER_FOR_HTML; + + private boolean rawValues = false; private Builder() { } @@ -505,5 +523,18 @@ public Builder lineNormalizer(Function lineNormalizer) { this.lineNormalizer = lineNormalizer; return this; } + + /** + * In some cases the original values of the diffed text are needed as well as the formatted values. + * This option can be set to allow {@link DiffRow.getRawOldLine} and {@link DiffRow.getRawNewLine} + * to access the original text of the old and new lines. + * + * @param rawValues + * @return + */ + public Builder rawValues(boolean rawValues) { + this.rawValues = rawValues; + return this; + } } } diff --git a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java index c667b251..730fb83e 100644 --- a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java +++ b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java @@ -11,6 +11,7 @@ import static java.util.stream.Collectors.toList; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertFalse; import org.junit.Test; public class DiffRowGeneratorTest { @@ -417,4 +418,59 @@ public void testGenerationIssue44reportLinesUnchangedProblem() throws DiffExcept List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); assertEquals("[[CHANGE,
~~T~~o~~ do~~
,
**D**o**ne**
]]", rows.toString()); } + + @Test + public void testGenerationIssue44noRawValues() throws DiffException { + DiffRowGenerator generator = DiffRowGenerator.create() + .showInlineDiffs(true) + .reportLinesUnchanged(false) + .rawValues(false) + .oldTag(f -> "~~") + .newTag(f -> "**") + .build(); + List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); + DiffRow row = rows.get(0); + assertEquals("<dt>~~T~~o~~ do~~</dt>", row.getOldLine()); + assertEquals("<dt>**D**o**ne**</dt>", row.getNewLine()); + assertFalse(row.getRawOldLine().isPresent()); + assertFalse(row.getRawNewLine().isPresent()); + } + + @Test + public void testGenerationIssue44rawValuesInlineDiffs() throws DiffException { + DiffRowGenerator generator = DiffRowGenerator.create() + .showInlineDiffs(true) + .reportLinesUnchanged(false) + .rawValues(true) + .oldTag(f -> "~~") + .newTag(f -> "**") + .build(); + List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); + DiffRow row = rows.get(0); + assertEquals("<dt>~~T~~o~~ do~~</dt>", row.getOldLine()); + assertEquals("<dt>**D**o**ne**</dt>", row.getNewLine()); + assertTrue(row.getRawOldLine().isPresent()); + assertTrue(row.getRawNewLine().isPresent()); + assertEquals("
To do
", row.getRawOldLine().get()); + assertEquals("
Done
", row.getRawNewLine().get()); + } + + @Test + public void testGenerationIssue44rawValuesNoInlineDiffs() throws DiffException { + DiffRowGenerator generator = DiffRowGenerator.create() + .showInlineDiffs(false) + .reportLinesUnchanged(false) + .rawValues(true) + .oldTag(f -> "~~") + .newTag(f -> "**") + .build(); + List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); + DiffRow row = rows.get(0); + assertEquals("<dt>To do</dt>", row.getOldLine()); + assertEquals("<dt>Done</dt>", row.getNewLine()); + assertTrue(row.getRawOldLine().isPresent()); + assertTrue(row.getRawNewLine().isPresent()); + assertEquals("
To do
", row.getRawOldLine().get()); + assertEquals("
Done
", row.getRawNewLine().get()); + } } From b7fd0b0f9572eb3b590036072e86431b078d8b85 Mon Sep 17 00:00:00 2001 From: Roman Stawski Date: Thu, 1 Aug 2019 10:26:30 +0200 Subject: [PATCH 3/3] Revert "Implement rawValues option" This reverts commit d9c302cec8836eac38ec65db07ead1c29176dc86. --- .../java/com/github/difflib/text/DiffRow.java | 27 --------- .../github/difflib/text/DiffRowGenerator.java | 57 +++++-------------- .../difflib/text/DiffRowGeneratorTest.java | 56 ------------------ 3 files changed, 13 insertions(+), 127 deletions(-) diff --git a/src/main/java/com/github/difflib/text/DiffRow.java b/src/main/java/com/github/difflib/text/DiffRow.java index cf987561..95908393 100644 --- a/src/main/java/com/github/difflib/text/DiffRow.java +++ b/src/main/java/com/github/difflib/text/DiffRow.java @@ -17,7 +17,6 @@ import java.io.Serializable; import java.util.Objects; -import java.util.Optional; /** * Describes the diff row in form [tag, oldLine, newLine) for showing the difference between two texts @@ -29,19 +28,11 @@ public final class DiffRow implements Serializable { private Tag tag; private final String oldLine; private final String newLine; - private final String rawOldLine; - private final String rawNewLine; public DiffRow(Tag tag, String oldLine, String newLine) { - this(tag, oldLine, newLine, null, null); - } - - public DiffRow(Tag tag, String oldLine, String newLine, String rawOldLine, String rawNewLine) { this.tag = tag; this.oldLine = oldLine; this.newLine = newLine; - this.rawOldLine = rawOldLine; - this.rawNewLine = rawNewLine; } public enum Tag { @@ -76,24 +67,6 @@ public String getNewLine() { return newLine; } - /** - * This accessor will only return a non -null value of {@link DiffRowGenerator.Builder.rawValues} - * is true. - * @return the raw value of the old line - */ - public Optional getRawOldLine() { - return Optional.ofNullable(rawOldLine); - } - - /** - * This accessor will only return a non -null value of {@link DiffRowGenerator.Builder.rawValues} - * is true. - * @return the raw value of the old line - */ - public Optional getRawNewLine() { - return Optional.ofNullable(rawNewLine); - } - @Override public int hashCode() { return Objects.hash(newLine, oldLine, tag); diff --git a/src/main/java/com/github/difflib/text/DiffRowGenerator.java b/src/main/java/com/github/difflib/text/DiffRowGenerator.java index ecd4d81f..4f963cd7 100644 --- a/src/main/java/com/github/difflib/text/DiffRowGenerator.java +++ b/src/main/java/com/github/difflib/text/DiffRowGenerator.java @@ -152,7 +152,6 @@ static void wrapInTag(List sequence, int startPosition, private final Function lineNormalizer; private final boolean showInlineDiffs; - private final boolean rawValues; private DiffRowGenerator(Builder builder) { showInlineDiffs = builder.showInlineDiffs; @@ -165,7 +164,6 @@ private DiffRowGenerator(Builder builder) { equalizer = ignoreWhiteSpaces ? IGNORE_WHITESPACE_EQUALIZER : DEFAULT_EQUALIZER; reportLinesUnchanged = builder.reportLinesUnchanged; lineNormalizer = builder.lineNormalizer; - rawValues = builder.rawValues; Objects.requireNonNull(inlineDiffSplitter); Objects.requireNonNull(lineNormalizer); @@ -200,14 +198,14 @@ public List generateDiffRows(final List original, Patch Chunk rev = delta.getTarget(); for (String line : original.subList(endPos, orig.getPosition())) { - diffRows.add(buildDiffRow(Tag.EQUAL, line, line, line, line)); + diffRows.add(buildDiffRow(Tag.EQUAL, line, line)); } // Inserted DiffRow if (delta instanceof InsertDelta) { endPos = orig.last() + 1; for (String line : rev.getLines()) { - diffRows.add(buildDiffRow(Tag.INSERT, "", line, "", line)); + diffRows.add(buildDiffRow(Tag.INSERT, "", line)); } continue; } @@ -216,7 +214,7 @@ public List generateDiffRows(final List original, Patch if (delta instanceof DeleteDelta) { endPos = orig.last() + 1; for (String line : orig.getLines()) { - diffRows.add(buildDiffRow(Tag.DELETE, line, "", line, "")); + diffRows.add(buildDiffRow(Tag.DELETE, line, "")); } continue; } @@ -227,9 +225,7 @@ public List generateDiffRows(final List original, Patch for (int j = 0; j < Math.max(orig.size(), rev.size()); j++) { diffRows.add(buildDiffRow(Tag.CHANGE, orig.getLines().size() > j ? orig.getLines().get(j) : "", - rev.getLines().size() > j ? rev.getLines().get(j) : "", - orig.getLines().size() > j ? delta.getSource().getLines().get(j) : "", - rev.getLines().size() > j ? delta.getTarget().getLines().get(j) : "")); + rev.getLines().size() > j ? rev.getLines().get(j) : "")); } } endPos = orig.last() + 1; @@ -237,16 +233,14 @@ public List generateDiffRows(final List original, Patch // Copy the final matching chunk if any. for (String line : original.subList(endPos, original.size())) { - diffRows.add(buildDiffRow(Tag.EQUAL, line, line, line, line)); + diffRows.add(buildDiffRow(Tag.EQUAL, line, line)); } return diffRows; } - private DiffRow buildDiffRow(Tag type, String orgline, String newline, String raworgline, String rawnewline) { + private DiffRow buildDiffRow(Tag type, String orgline, String newline) { if (reportLinesUnchanged) { - return rawValues - ? new DiffRow(type, orgline, newline, raworgline, rawnewline) - : new DiffRow(type, orgline, newline); + return new DiffRow(type, orgline, newline); } else { String wrapOrg = preprocessLine(orgline); if (Tag.DELETE == type) { @@ -262,22 +256,14 @@ private DiffRow buildDiffRow(Tag type, String orgline, String newline, String ra wrapNew = newTag.apply(true) + wrapNew + newTag.apply(false); } } - return rawValues - ? new DiffRow(type, wrapOrg, wrapNew, raworgline, rawnewline) - : new DiffRow(type, wrapOrg, wrapNew); + return new DiffRow(type, wrapOrg, wrapNew); } } - private DiffRow buildDiffRowWithoutNormalizing(Tag type, String orgline, String newline, String raworgline, String rawnewline) { - return rawValues - ? new DiffRow(type, - StringUtils.wrapText(orgline, columnWidth), - StringUtils.wrapText(newline, columnWidth), - raworgline, - rawnewline) - : new DiffRow(type, - StringUtils.wrapText(orgline, columnWidth), - StringUtils.wrapText(newline, columnWidth)); + private DiffRow buildDiffRowWithoutNormalizing(Tag type, String orgline, String newline) { + return new DiffRow(type, + StringUtils.wrapText(orgline, columnWidth), + StringUtils.wrapText(newline, columnWidth)); } List normalizeLines(List list) { @@ -357,9 +343,7 @@ private List generateInlineDiffs(AbstractDelta delta) throws Di diffRows. add(buildDiffRowWithoutNormalizing(Tag.CHANGE, original.size() > j ? original.get(j) : "", - revised.size() > j ? revised.get(j) : "", - original.size() > j ? delta.getSource().getLines().get(j) : "", - revised.size() > j ? delta.getTarget().getLines().get(j) : "")); + revised.size() > j ? revised.get(j) : "")); } return diffRows; } @@ -391,8 +375,6 @@ public static class Builder { private boolean reportLinesUnchanged = false; private Function> inlineDiffSplitter = SPLITTER_BY_CHARACTER; private Function lineNormalizer = LINE_NORMALIZER_FOR_HTML; - - private boolean rawValues = false; private Builder() { } @@ -523,18 +505,5 @@ public Builder lineNormalizer(Function lineNormalizer) { this.lineNormalizer = lineNormalizer; return this; } - - /** - * In some cases the original values of the diffed text are needed as well as the formatted values. - * This option can be set to allow {@link DiffRow.getRawOldLine} and {@link DiffRow.getRawNewLine} - * to access the original text of the old and new lines. - * - * @param rawValues - * @return - */ - public Builder rawValues(boolean rawValues) { - this.rawValues = rawValues; - return this; - } } } diff --git a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java index 730fb83e..c667b251 100644 --- a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java +++ b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java @@ -11,7 +11,6 @@ import static java.util.stream.Collectors.toList; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertFalse; import org.junit.Test; public class DiffRowGeneratorTest { @@ -418,59 +417,4 @@ public void testGenerationIssue44reportLinesUnchangedProblem() throws DiffExcept List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); assertEquals("[[CHANGE,
~~T~~o~~ do~~
,
**D**o**ne**
]]", rows.toString()); } - - @Test - public void testGenerationIssue44noRawValues() throws DiffException { - DiffRowGenerator generator = DiffRowGenerator.create() - .showInlineDiffs(true) - .reportLinesUnchanged(false) - .rawValues(false) - .oldTag(f -> "~~") - .newTag(f -> "**") - .build(); - List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); - DiffRow row = rows.get(0); - assertEquals("<dt>~~T~~o~~ do~~</dt>", row.getOldLine()); - assertEquals("<dt>**D**o**ne**</dt>", row.getNewLine()); - assertFalse(row.getRawOldLine().isPresent()); - assertFalse(row.getRawNewLine().isPresent()); - } - - @Test - public void testGenerationIssue44rawValuesInlineDiffs() throws DiffException { - DiffRowGenerator generator = DiffRowGenerator.create() - .showInlineDiffs(true) - .reportLinesUnchanged(false) - .rawValues(true) - .oldTag(f -> "~~") - .newTag(f -> "**") - .build(); - List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); - DiffRow row = rows.get(0); - assertEquals("<dt>~~T~~o~~ do~~</dt>", row.getOldLine()); - assertEquals("<dt>**D**o**ne**</dt>", row.getNewLine()); - assertTrue(row.getRawOldLine().isPresent()); - assertTrue(row.getRawNewLine().isPresent()); - assertEquals("
To do
", row.getRawOldLine().get()); - assertEquals("
Done
", row.getRawNewLine().get()); - } - - @Test - public void testGenerationIssue44rawValuesNoInlineDiffs() throws DiffException { - DiffRowGenerator generator = DiffRowGenerator.create() - .showInlineDiffs(false) - .reportLinesUnchanged(false) - .rawValues(true) - .oldTag(f -> "~~") - .newTag(f -> "**") - .build(); - List rows = generator.generateDiffRows(Arrays.asList("
To do
"), Arrays.asList("
Done
")); - DiffRow row = rows.get(0); - assertEquals("<dt>To do</dt>", row.getOldLine()); - assertEquals("<dt>Done</dt>", row.getNewLine()); - assertTrue(row.getRawOldLine().isPresent()); - assertTrue(row.getRawNewLine().isPresent()); - assertEquals("
To do
", row.getRawOldLine().get()); - assertEquals("
Done
", row.getRawNewLine().get()); - } }