Author: johnh
Date: Tue Aug 19 18:16:32 2008
New Revision: 687215

URL: http://svn.apache.org/viewvc?rev=687215&view=rev
Log:
Renaming parsed node creation helpers, and making them public static for reuse. 
Adding "script" as another type of
element that's not supported in short-form.


Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlNode.java
    
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/GadgetHtmlNodeTest.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlNode.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlNode.java?rev=687215&r1=687214&r2=687215&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlNode.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlNode.java
 Tue Aug 19 18:16:32 2008
@@ -290,7 +290,8 @@
    * the rest of the class provides, such as attribute key
    * validation. All whitespace and comments are maintained. Nodes
    * with zero children are rendered short-form (<foo/>)
-   * unless tagName is "style" since many browsers dislike short-form for that.
+   * unless tagName is "style" or "script" since many browsers dislike 
short-form
+   * for those.
    * One space is provided between attributes. Attribute values are surrounded
    * in double-quotes. Null-valued attributes are rendered without ="value".
    * Attributes are rendered in no particular order.
@@ -310,7 +311,8 @@
         }
       }
       if (children.size() == 0 &&
-          !tagName.equalsIgnoreCase("style")) {
+          !tagName.equalsIgnoreCase("style") &&
+          !tagName.equalsIgnoreCase("script")) {
         w.append("/>");
       } else {
         w.append('>');

Modified: 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/GadgetHtmlNodeTest.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/GadgetHtmlNodeTest.java?rev=687215&r1=687214&r2=687215&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/GadgetHtmlNodeTest.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/GadgetHtmlNodeTest.java
 Tue Aug 19 18:16:32 2008
@@ -31,7 +31,7 @@
 import java.util.Set;
 
 public class GadgetHtmlNodeTest extends TestCase {
-  private ParsedHtmlAttribute makeParsedAttribute(String key, String val) {
+  public static ParsedHtmlAttribute makeParsedAttribute(String key, String 
val) {
     ParsedHtmlAttribute parsed = 
EasyMock.createNiceMock(ParsedHtmlAttribute.class);
     expect(parsed.getName()).andReturn(key).anyTimes();
     expect(parsed.getValue()).andReturn(val).anyTimes();
@@ -39,7 +39,7 @@
     return parsed;
   }
   
-  private ParsedHtmlNode makeTagNodeFromParsed(
+  public static ParsedHtmlNode makeParsedTagNode(
       String tag, String[][] attribs, ParsedHtmlNode[] children) {
     ParsedHtmlNode parsed = EasyMock.createNiceMock(ParsedHtmlNode.class);
     expect(parsed.getTagName()).andReturn(tag).anyTimes();
@@ -62,6 +62,16 @@
     return parsed;
   }
   
+  public static ParsedHtmlNode makeParsedTextNode(String text) {
+    ParsedHtmlNode parsed = EasyMock.createNiceMock(ParsedHtmlNode.class);
+    expect(parsed.getText()).andReturn(text).anyTimes();
+    expect(parsed.getTagName()).andReturn(null).anyTimes();
+    expect(parsed.getAttributes()).andReturn(null).anyTimes();
+    expect(parsed.getChildren()).andReturn(null).anyTimes();
+    replay(parsed);
+    return parsed;
+  }
+  
   private GadgetHtmlNode makeTagNodeFromNew(
       String tag, String[][] attribs, GadgetHtmlNode[] children) {
     GadgetHtmlNode node = new GadgetHtmlNode(tag, attribs);
@@ -73,16 +83,6 @@
     return node;
   }
   
-  private ParsedHtmlNode makeTextNodeFromParsed(String text) {
-    ParsedHtmlNode parsed = EasyMock.createNiceMock(ParsedHtmlNode.class);
-    expect(parsed.getText()).andReturn(text).anyTimes();
-    expect(parsed.getTagName()).andReturn(null).anyTimes();
-    expect(parsed.getAttributes()).andReturn(null).anyTimes();
-    expect(parsed.getChildren()).andReturn(null).anyTimes();
-    replay(parsed);
-    return parsed;
-  }
-  
   private GadgetHtmlNode makeTextNodeFromNew(String text) {
     return new GadgetHtmlNode(text);
   }
@@ -91,10 +91,10 @@
   private static String[][] tagTreeAttribs = { { "id", "foo" }, { "name", 
"bar" } };
   public void testTagTreeCreatedFromParsedGetters() {
     ParsedHtmlNode[] parsedKids = {
-        makeTextNodeFromParsed("content"),
-        makeTagNodeFromParsed("span", null, null)
+        makeParsedTextNode("content"),
+        makeParsedTagNode("span", null, null)
     };
-    ParsedHtmlNode parsed = makeTagNodeFromParsed("div", tagTreeAttribs, 
parsedKids);
+    ParsedHtmlNode parsed = makeParsedTagNode("div", tagTreeAttribs, 
parsedKids);
     GadgetHtmlNode node = new GadgetHtmlNode(parsed);
     validateTagTreeGetters(node);
   }
@@ -143,7 +143,7 @@
   // Test: basic getters
   private static String textGetterContent = "content";
   public void testTextCreatedFromParsedGetters() {
-    ParsedHtmlNode parsed = makeTextNodeFromParsed(textGetterContent);
+    ParsedHtmlNode parsed = makeParsedTextNode(textGetterContent);
     GadgetHtmlNode node = new GadgetHtmlNode(parsed);
     validateTextGetters(node);
   }
@@ -160,7 +160,7 @@
   
   // Test: tag name setter
   public void testTagCreatedFromParsedTagSetter() {
-    ParsedHtmlNode parsed = makeTagNodeFromParsed("div", null, null);
+    ParsedHtmlNode parsed = makeParsedTagNode("div", null, null);
     GadgetHtmlNode node = new GadgetHtmlNode(parsed);
     validateTagNameSetter(node);
   }
@@ -180,7 +180,7 @@
   private static String[][] tagManipAttribs = { { "id", "foo" } };
   public void testTagCreatedFromParsedAttributeManipulation() {
     ParsedHtmlNode parsed =
-        makeTagNodeFromParsed("div", tagManipAttribs, null);
+        makeParsedTagNode("div", tagManipAttribs, null);
     GadgetHtmlNode node = new GadgetHtmlNode(parsed);
     validateTagAttributeManipulation(node);
   }
@@ -242,8 +242,8 @@
   // We don't do created-from-new testing since html node creation types are
   // already mixed here.
   public void testTagCreatedFromParsedNodeManipulation() {
-    ParsedHtmlNode[] kidNodes = { makeTextNodeFromParsed("content") };
-    ParsedHtmlNode parsed = makeTagNodeFromParsed("div", null, kidNodes);
+    ParsedHtmlNode[] kidNodes = { makeParsedTextNode("content") };
+    ParsedHtmlNode parsed = makeParsedTagNode("div", null, kidNodes);
     GadgetHtmlNode parentNode = new GadgetHtmlNode(parsed);
     
     // Sanity check on created child
@@ -255,7 +255,7 @@
     assertSame(parentNode, textNode.getParentNode());
     
     // appendChild
-    GadgetHtmlNode afterNode = new 
GadgetHtmlNode(makeTagNodeFromParsed("after", null, null));
+    GadgetHtmlNode afterNode = new GadgetHtmlNode(makeParsedTagNode("after", 
null, null));
     parentNode.appendChild(afterNode);
     List<GadgetHtmlNode> appendKids = parentNode.getChildren();
     assertNotNull(appendKids);
@@ -266,7 +266,7 @@
     assertSame(parentNode, afterNode.getParentNode());
     
     // insertBefore
-    GadgetHtmlNode beforeNode = new 
GadgetHtmlNode(makeTagNodeFromParsed("before", null, null));
+    GadgetHtmlNode beforeNode = new GadgetHtmlNode(makeParsedTagNode("before", 
null, null));
     parentNode.insertBefore(beforeNode, textNode);
     List<GadgetHtmlNode> insertKids = parentNode.getChildren();
     assertNotNull(insertKids);
@@ -300,7 +300,7 @@
   
   // Test: text setter
   public void testTextCreatedFromParsedTextSetter() {
-    ParsedHtmlNode parsed = makeTextNodeFromParsed("content");
+    ParsedHtmlNode parsed = makeParsedTextNode("content");
     GadgetHtmlNode node = new GadgetHtmlNode(parsed);
     validateTextSetter(node);
   }
@@ -319,7 +319,7 @@
   // Test: text-node API limitation
   public void testTagsFromParsedCantUseTextApis() {
     validateTagsCantUseTextApis(
-        new GadgetHtmlNode(makeTagNodeFromParsed("tag", null, null)));
+        new GadgetHtmlNode(makeParsedTagNode("tag", null, null)));
   }
   
   public void testTagsFromNewCantUseTextApis() {
@@ -346,7 +346,7 @@
   
   // Test: tag-node API limitation
   public void testTextFromParsedCantUseTagsApis() {
-    validateTextCantUseTagsApis(new 
GadgetHtmlNode(makeTextNodeFromParsed("content")));
+    validateTextCantUseTagsApis(new 
GadgetHtmlNode(makeParsedTextNode("content")));
   }
   
   public void testTextFromNewCantUseTagsApis() {
@@ -459,6 +459,13 @@
                  renderNode(styleTag));
   }
   
+  public void testRenderScriptSrcTag() {
+    String[][] attribs = { { "src", "http://www.foo.com/bar.js"; } };
+    GadgetHtmlNode styleTag = new GadgetHtmlNode("script", attribs);
+    assertEquals("<script src=\"http://www.foo.com/bar.js\";></script>",
+                 renderNode(styleTag));
+  }
+  
   public void testRenderEscapedAttribute() {
     String[][] attribs = { { "foo", "<script&\"data\">" } };
     GadgetHtmlNode escapedTag = new GadgetHtmlNode("div", attribs);


Reply via email to