Author: jasvir
Date: Thu Apr 28 02:57:57 2011
New Revision: 1097311

URL: http://svn.apache.org/viewvc?rev=1097311&view=rev
Log:
Description
* enables rendering of doctypes for caja parser consistent with neko
* enables the running of serialization tests for the caja parser

[email protected]


Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlParser.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlSerializer.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/HtmlSerializationTest.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlParser.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlParser.java?rev=1097311&r1=1097310&r2=1097311&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlParser.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlParser.java
 Thu Apr 28 02:57:57 2011
@@ -38,6 +38,7 @@ import com.google.inject.Inject;
 import org.apache.shindig.gadgets.GadgetException;
 import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.parse.GadgetHtmlParser;
+import org.apache.shindig.gadgets.parse.HtmlSerialization;
 import org.apache.shindig.gadgets.parse.SocialDataTags;
 import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.Document;
@@ -60,6 +61,8 @@ public class CajaHtmlParser extends Gadg
     // TODO: remove parseDomImpl() altogether; only have subclasses
     // support parseFragmentImpl() with base class cleaning up.
     Document document = fragment.getOwnerDocument();
+    CajaHtmlSerializer serializer = new CajaHtmlSerializer();
+    HtmlSerialization.attach(document, serializer, null);
     Node html = null;
     LinkedList<Node> beforeHtml = Lists.newLinkedList();
     while (fragment.hasChildNodes()) {

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlSerializer.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlSerializer.java?rev=1097311&r1=1097310&r2=1097311&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlSerializer.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/caja/CajaHtmlSerializer.java
 Thu Apr 28 02:57:57 2011
@@ -18,16 +18,11 @@
  */
 package org.apache.shindig.gadgets.parse.caja;
 
-import com.google.caja.reporting.MarkupRenderMode;
-import org.apache.shindig.gadgets.parse.HtmlSerialization;
 import org.apache.shindig.gadgets.parse.HtmlSerializer;
 import org.w3c.dom.Document;
 
 import com.google.caja.parser.html.Nodes;
-import com.google.caja.render.Concatenator;
-import com.google.caja.reporting.RenderContext;
-
-import java.io.StringWriter;
+import com.google.caja.reporting.MarkupRenderMode;
 
 /**
  * HtmlSerializer using Caja's Nodes.render(...) method under the hood.
@@ -36,9 +31,10 @@ import java.io.StringWriter;
  */
 public class CajaHtmlSerializer implements HtmlSerializer {
   public String serialize(Document doc) {
-    StringWriter sw = HtmlSerialization.createWriter(doc);
-    return Nodes.render(doc,
-            new RenderContext(new Concatenator(sw, null)).asXml() ? 
MarkupRenderMode.XML : MarkupRenderMode.HTML
-    );
+    if (doc.getDoctype() != null) {
+      return Nodes.render(doc.getDoctype(), doc, MarkupRenderMode.HTML);
+    } else {
+      return Nodes.render(doc, MarkupRenderMode.HTML);
+    }
   }
 }

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/HtmlSerializationTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/HtmlSerializationTest.java?rev=1097311&r1=1097310&r2=1097311&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/HtmlSerializationTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/HtmlSerializationTest.java
 Thu Apr 28 02:57:57 2011
@@ -43,9 +43,7 @@ public class HtmlSerializationTest {
     GadgetHtmlParser caja = new CajaHtmlParser(
             new ParseModule.DOMImplementationProvider().get());
 
-    // TODO: Add caja back when we upgrade to the latest version of caja
-    // http://code.google.com/p/google-caja/issues/detail?id=1115
-    parsers = ImmutableList.of(neko/*, caja*/);
+    parsers = ImmutableList.of(neko, caja);
   }
 
   @Test


Reply via email to