You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/12/10 22:25:04 UTC

svn commit: r485264 - in /tapestry/tapestry4/trunk/tapestry-framework/src: java/org/apache/tapestry/describe/HTMLDescriptionReceiver.java test/org/apache/tapestry/describe/HTMLDescriptionReceiverTest.java

Author: jkuhnert
Date: Sun Dec 10 13:25:03 2006
New Revision: 485264

URL: http://svn.apache.org/viewvc?view=rev&rev=485264
Log:
Fixes for TAPESTRY-823

Modified:
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/describe/HTMLDescriptionReceiver.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/describe/HTMLDescriptionReceiverTest.java

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/describe/HTMLDescriptionReceiver.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/describe/HTMLDescriptionReceiver.java?view=diff&rev=485264&r1=485263&r2=485264
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/describe/HTMLDescriptionReceiver.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/describe/HTMLDescriptionReceiver.java Sun Dec 10 13:25:03 2006
@@ -14,6 +14,7 @@
 
 package org.apache.tapestry.describe;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
 
@@ -26,6 +27,7 @@
  * <p>
  * TODO: Make {@link #describeAlternate(Object)} exclusive with the other
  * methods {@link #title(String)}, {@link #property(String, Object)}, etc.
+ * </p>
  * 
  * @author Howard M. Lewis Ship
  * @since 4.0
@@ -240,8 +242,7 @@
             return;
         }
 
-        new HTMLDescriptionReceiver(_writer, _strategy, _styles)
-                .describe(value);
+        new HTMLDescriptionReceiver(_writer, _strategy, _styles).describe(value);
     }
 
     public void property(String key, boolean value)
@@ -311,7 +312,7 @@
         if (values == null || values.length == 0) return;
 
         emitSection();
-
+        
         for(int i = 0; i < values.length; i++)
         {
             _writer.begin("tr");
@@ -336,33 +337,34 @@
     public void collection(String key, Collection values)
     {
         Defense.notNull(key, "key");
-
+        
         assertTitleSet();
-
+        
         if (values == null || values.isEmpty()) return;
-
+        
         emitSection();
-
-        Iterator i = values.iterator();
+        
+        Iterator i = new ArrayList(values).iterator();
         boolean first = true;
-
+        
         while(i.hasNext())
         {
             _writer.begin("tr");
             writeRowClass();
-
+            
             _writer.begin("th");
 
-            if (first) _writer.print(key);
-
+            if (first) 
+                _writer.print(key);
+            
             _writer.end();
             _writer.begin("td");
-
+            
             describeNested(i.next());
-
+            
             _writer.end("tr");
             _writer.println();
-
+            
             first = false;
         }
     }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/describe/HTMLDescriptionReceiverTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/describe/HTMLDescriptionReceiverTest.java?view=diff&rev=485264&r1=485263&r2=485264
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/describe/HTMLDescriptionReceiverTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/describe/HTMLDescriptionReceiverTest.java Sun Dec 10 13:25:03 2006
@@ -16,9 +16,11 @@
 
 import static org.easymock.EasyMock.expect;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.List;
 
 import org.apache.tapestry.IMarkupWriter;
 import org.testng.annotations.Test;
@@ -91,7 +93,7 @@
         writer.println();
     }
 
-    public void testSetTitleTwiceFails()
+    public void test_Set_Title_Twice_Fails()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy adapter = newStrategy();
@@ -116,7 +118,7 @@
         verify();
     }
 
-    public void testSetSectionBeforeTitleFails()
+    public void test_Set_Section_Before_Title_Fails()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy adapter = newStrategy();
@@ -138,7 +140,7 @@
         verify();
     }
 
-    public void testIntProperty()
+    public void test_Int_Property()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy adapter = newStrategy();
@@ -158,7 +160,7 @@
         verify();
     }
 
-    public void testPropertiesWithoutSection()
+    public void test_Properties_Without_Section()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy adapter = newStrategy();
@@ -190,7 +192,7 @@
         verify();
     }
 
-    public void testFinishWithProperties()
+    public void test_Finish_With_Properties()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy adapter = newStrategy();
@@ -217,7 +219,7 @@
         verify();
     }
 
-    public void testFinishNoPropertiesNoTitle()
+    public void test_Finish_No_Properties_No_Title()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy adapter = newStrategy();
@@ -236,7 +238,7 @@
         verify();
     }
 
-    public void testFinishNoPropertiesWithTitle()
+    public void test_Finish_No_Properties_With_Title()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy adapter = newStrategy();
@@ -257,7 +259,7 @@
         verify();
     }
 
-    public void testArray()
+    public void test_Array()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy adapter = new NoOpStrategy();
@@ -279,7 +281,7 @@
         verify();
     }
 
-    public void testCollection()
+    public void test_Collection()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy adapter = new NoOpStrategy();
@@ -302,7 +304,7 @@
         verify();
     }
 
-    public void testArrayNullAndEmpty()
+    public void test_Array_Null_And_Empty()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy strategy = newStrategy();
@@ -318,7 +320,7 @@
         verify();
     }
 
-    public void testCollectionNullAndEmpty()
+    public void test_Collection_Null_And_Empty()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy strategy = newStrategy();
@@ -334,7 +336,30 @@
         verify();
     }
 
-    public void testScalarProperties()
+    public void test_Collection_Concurrent_Modification()
+    {
+        IMarkupWriter writer = newWriter();
+        DescribableStrategy adapter = new NoOpStrategy();
+        
+        final List list = new ArrayList();
+        list.add("Fred");
+        list.add("Barney");
+        
+        trainForTitle(writer, "Collection");
+        trainForNestedKeyValue(writer, "list", "Fred", true);
+        trainForNestedKeyValue(writer, null, "Barney", false);
+        
+        replay();
+        
+        HTMLDescriptionReceiver dr = new HTMLDescriptionReceiver(writer, adapter);
+        
+        dr.title("Collection");
+        dr.collection("list", list);
+        
+        verify();
+    }
+    
+    public void test_Scalar_Properties()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy strategy = newStrategy();
@@ -366,7 +391,7 @@
         verify();
     }
 
-    public void testNullRoot()
+    public void test_Null_Root()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy strategy = newStrategy();
@@ -382,7 +407,7 @@
         verify();
     }
 
-    public void testNullProperty()
+    public void test_Null_Property()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy strategy = newStrategy();
@@ -401,7 +426,7 @@
 
     }
 
-    public void testHTMLDescriber()
+    public void test_HTML_Describer()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy strategy = new NoOpStrategy();
@@ -435,8 +460,8 @@
     {
         return newMock(RootDescriptionReceiverFactory.class);
     }
-
-    public void testDescribeAlternate()
+    
+    public void test_Describe_Alternate()
     {
         IMarkupWriter writer = newWriter();
         DescribableStrategy strategy = newStrategy();