You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ja...@apache.org on 2011/04/28 04:57:58 UTC
svn commit: r1097311 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/parse/caja/
test/java/org/apache/shindig/gadgets/parse/
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
R=johnfargo@gmail.com
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