Author: awiner
Date: Wed Mar 18 17:26:42 2009
New Revision: 755665

URL: http://svn.apache.org/viewvc?rev=755665&view=rev
Log:
SHINDIG-983: NekoSerializer.printStartElement() is outputting empty attributes 
in a way that isn't XML compliant
- Patch from Jordan Zimmerman, with some changes (esp. adding a test)

Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSerializer.java
    
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-expected.html
    
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test.html

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSerializer.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSerializer.java?rev=755665&r1=755664&r2=755665&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSerializer.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSerializer.java
 Wed Mar 18 17:26:42 2009
@@ -144,12 +144,13 @@
       Attr attr = (Attr)attributes.item(i);
       String attrName = attr.getNodeName();
       output.append(' ').append(attrName);
-      if (attr.getNodeValue() != null &&
-          attr.getNodeValue().length() > 0) {
+      if (attr.getNodeValue() != null) {
         output.append("=\"");
-        boolean isUrlAttribute =
-          elem.getNamespaceURI() == null && URL_ATTRIBUTES.contains(attrName);
-        printAttributeValue(attr.getNodeValue(), output, isUrlAttribute);
+        if (attr.getNodeValue().length() != 0) {
+          boolean isUrlAttribute =
+            elem.getNamespaceURI() == null && 
URL_ATTRIBUTES.contains(attrName);
+          printAttributeValue(attr.getNodeValue(), output, isUrlAttribute);
+        }
         output.append('"');
       }
     }

Modified: 
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-expected.html
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-expected.html?rev=755665&r1=755664&r2=755665&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-expected.html
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test-expected.html
 Wed Mar 18 17:26:42 2009
@@ -12,6 +12,7 @@
       <table><tr><td>a cell</td></tr></table>
     </div>
     <p>Lorem ipsum</p>
+    <a href="/test.html" title="">link</a>
     <form action="/test/submit">
       <div>
         <input type="hidden" value="something">

Modified: 
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test.html
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test.html?rev=755665&r1=755664&r2=755665&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test.html
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/nekohtml/test.html
 Wed Mar 18 17:26:42 2009
@@ -12,6 +12,7 @@
       <table><tr><td>a cell</td></tr></table>
     </div>
     <p>Lorem ipsum</p>
+    <a href="/test.html" title="">link</a>
     <form action="/test/submit">
       <div>
         <input type="hidden" value="something">


Reply via email to