aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny van Bruggen <hexagonaal@gmail.com>2018-02-25 18:01:25 +0100
committerDanny van Bruggen <hexagonaal@gmail.com>2018-02-25 18:01:25 +0100
commit16e4ac9923546a735c29cd2a67575bb9d6ce1e9c (patch)
treefa9323c3c61274063bfdbaa5c5d1a556f8ba79b8
parent0f4c72a7245cb6ad84f44fcd10d97e47e545929f (diff)
parent506db60d3a9c92c11ae30e1d4f0acf29c66aa1d0 (diff)
downloadplatform_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.java2
-rw-r--r--javaparser-testing/src/test/java/com/github/javaparser/printer/JsonPrinterTest.java21
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