diff options
author | Danny van Bruggen <hexagonaal@gmail.com> | 2018-02-25 18:01:25 +0100 |
---|---|---|
committer | Danny van Bruggen <hexagonaal@gmail.com> | 2018-02-25 18:01:25 +0100 |
commit | 16e4ac9923546a735c29cd2a67575bb9d6ce1e9c (patch) | |
tree | fa9323c3c61274063bfdbaa5c5d1a556f8ba79b8 | |
parent | 0f4c72a7245cb6ad84f44fcd10d97e47e545929f (diff) | |
parent | 506db60d3a9c92c11ae30e1d4f0acf29c66aa1d0 (diff) | |
download | platform_external_javaparser-16e4ac9923546a735c29cd2a67575bb9d6ce1e9c.tar.gz platform_external_javaparser-16e4ac9923546a735c29cd2a67575bb9d6ce1e9c.tar.bz2 platform_external_javaparser-16e4ac9923546a735c29cd2a67575bb9d6ce1e9c.zip |
Merge remote-tracking branch 'origin/small_things' into small_things
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java | 2 | ||||
-rw-r--r-- | javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java b/javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java index 7357a3538..237051265 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/JsonPrinter.java @@ -69,6 +69,6 @@ public class JsonPrinter { } private static String q(String value) { - return "\"" + value.replace("\"", "\\\"") + "\""; + return "\"" + value.replace("\"", "\\\"").replace("\n", "\\n").replace("\r", "\\r") + "\""; } } diff --git a/javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java b/javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java index fac1ee359..7e26254a4 100644 --- a/javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java +++ b/javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java @@ -9,6 +9,12 @@ import static com.github.javaparser.JavaParser.*; import static com.github.javaparser.utils.Utils.EOL; import static org.junit.Assert.*; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.io.BufferedWriter; + public class JsonPrinterTest { @Test public void testWithType() { @@ -51,4 +57,19 @@ public class JsonPrinterTest { JsonPrinter printer = new JsonPrinter(true); printer.output(unit); } + + @Test + public void issue1421() { + // Handle multi-line strings in JSON output + String code = "/* \n" + + "* Some comment\n" + + "*/\n" + + "public class Test {}"; + CompilationUnit unit = parse(code); + JsonPrinter printer = new JsonPrinter(true); + + String output = printer.output(unit); + + assertEquals("{\"type\":\"CompilationUnit\",\"types\":[{\"type\":\"ClassOrInterfaceDeclaration\",\"isInterface\":\"false\",\"name\":{\"type\":\"SimpleName\",\"identifier\":\"Test\"},\"comment\":{\"type\":\"BlockComment\",\"content\":\" \\n* Some comment\\n\"}}]}", output); + } }
\ No newline at end of file |