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
