You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by ca...@apache.org on 2012/02/01 05:38:32 UTC

svn commit: r1238936 - in /incubator/jena/Jena2/ARQ/trunk/src: main/java/org/openjena/atlas/json/io/JSWriter.java test/java/org/openjena/riot/out/TestOutputRDFJSON.java

Author: castagna
Date: Wed Feb  1 04:38:32 2012
New Revision: 1238936

URL: http://svn.apache.org/viewvc?rev=1238936&view=rev
Log:
JENA-206

Patch applied, thank you Rob.

Modified:
    incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/json/io/JSWriter.java
    incubator/jena/Jena2/ARQ/trunk/src/test/java/org/openjena/riot/out/TestOutputRDFJSON.java

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/json/io/JSWriter.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/json/io/JSWriter.java?rev=1238936&r1=1238935&r2=1238936&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/json/io/JSWriter.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/json/io/JSWriter.java Wed Feb  1 04:38:32 2012
@@ -277,7 +277,7 @@ public class JSWriter
     private void setNotFirst()      { stack.peek().setValue(false) ; }
     
     // Can only write a value in some context.
-    private void value(String x) { out.print("\"") ; out.print(x) ; out.print("\"") ; }
+    private void value(String x) { out.print(outputQuotedString(x)); }
     
     private void value(boolean b) { out.print(Boolean.toString(b)) ; }
     

Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/org/openjena/riot/out/TestOutputRDFJSON.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/org/openjena/riot/out/TestOutputRDFJSON.java?rev=1238936&r1=1238935&r2=1238936&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/org/openjena/riot/out/TestOutputRDFJSON.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/org/openjena/riot/out/TestOutputRDFJSON.java Wed Feb  1 04:38:32 2012
@@ -18,23 +18,24 @@
 
 package org.openjena.riot.out;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import java.io.ByteArrayInputStream ;
+import java.io.ByteArrayOutputStream ;
 
-import org.junit.Test;
-import org.openjena.atlas.json.JSON;
-import org.openjena.atlas.json.JsonObject;
-import org.openjena.atlas.junit.BaseTest;
-import org.openjena.atlas.lib.Sink;
+import org.junit.Test ;
+import org.openjena.atlas.json.JSON ;
+import org.openjena.atlas.json.JsonObject ;
+import org.openjena.atlas.junit.BaseTest ;
+import org.openjena.atlas.lib.Sink ;
 import org.openjena.atlas.lib.StrUtils ;
-import org.openjena.riot.RiotReader;
-import org.openjena.riot.lang.LangRIOT;
-import org.openjena.riot.lang.SinkTriplesToGraph;
-
-import com.hp.hpl.jena.graph.Graph;
-import com.hp.hpl.jena.graph.Triple;
-import com.hp.hpl.jena.sparql.graph.GraphFactory;
-import com.hp.hpl.jena.sparql.sse.SSE;
+import org.openjena.riot.RiotReader ;
+import org.openjena.riot.lang.LangRIOT ;
+import org.openjena.riot.lang.SinkTriplesToGraph ;
+
+import com.hp.hpl.jena.graph.Graph ;
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.sparql.graph.GraphFactory ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
 
 public class TestOutputRDFJSON extends BaseTest
 {
@@ -116,6 +117,7 @@ public class TestOutputRDFJSON extends B
               "(<http://example.org/abc> <p> _:s)" ,
               "))") ;
     }
+    
     @Test public void rdfjson_literals()
     {
         // Literals, various
@@ -128,16 +130,32 @@ public class TestOutputRDFJSON extends B
              "(<s> <p> '1.05'^^xsd:decimal)",
             "))") ;
     }    
+    
+    @Test public void rdfjson_escapes()
+    {
+    	Graph g = GraphFactory.createGraphMem();
+    	Node s = Node.createAnon();
+    	Node p = Node.createURI("http://predicate");
+    	g.add(new Triple(s, p, Node.createLiteral("quote \" character")));
+    	g.add(new Triple(s, p, Node.createLiteral("new \n\r lines")));
+    	g.add(new Triple(s, p, Node.createLiteral("tab \t character")));
+    	test(g);
+    }
 
     private void test (String... strings) 
     {
         String str = StrUtils.strjoinNL(strings) ;
         Graph g = SSE.parseGraph(str) ;
+        test(g);
+    }
+    
+    private void test (Graph g)
+    {
         ByteArrayOutputStream bout = serializeAsJSON(g) ;
         parseAsJSON(bout) ; // make sure valid JSON
         Graph g2 = parseAsRDFJSON(bout) ; 
 
-        assertTrue(g.isIsomorphicWith(g2)) ;    	
+        assertTrue(g.isIsomorphicWith(g2)) ;  
     }
 
     private ByteArrayOutputStream serializeAsJSON (Graph graph)