You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@click.apache.org by sa...@apache.org on 2010/11/04 13:41:13 UTC

svn commit: r1030910 - in /click/trunk/click: extras/test/org/apache/click/extras/control/PickListTest.java framework/src/org/apache/click/util/ClickUtils.java

Author: sabob
Date: Thu Nov  4 12:41:13 2010
New Revision: 1030910

URL: http://svn.apache.org/viewvc?rev=1030910&view=rev
Log:
updated javadoc and added encode/decode tests

Modified:
    click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java
    click/trunk/click/framework/src/org/apache/click/util/ClickUtils.java

Modified: click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java?rev=1030910&r1=1030909&r2=1030910&view=diff
==============================================================================
--- click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java (original)
+++ click/trunk/click/extras/test/org/apache/click/extras/control/PickListTest.java Thu Nov  4 12:41:13 2010
@@ -18,9 +18,13 @@
  */
 package org.apache.click.extras.control;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import junit.framework.TestCase;
 import org.apache.click.MockContainer;
 import org.apache.click.MockContext;
+import org.apache.click.control.Option;
 import org.apache.commons.lang.StringUtils;
 
 /**
@@ -36,7 +40,7 @@ public class PickListTest extends TestCa
      * This could cause concurrent modification exceptions if the PickList is rendered
      * by multiple threads.
      */
-    public void testClassAttributeRenderin() {
+    public void testClassAttributeRendering() {
         // PickList uses Velocity to render its template. In this test we start a
         // MockContainer which also configures Velocity
         MockContainer container = new MockContainer("web");
@@ -68,4 +72,64 @@ public class PickListTest extends TestCa
         assertEquals(1, StringUtils.countMatches(pickListStr, "class="));
         container.stop();
     }
+
+    /**
+     * Test that PickList.getState contains all the selected values.
+     * CLK-715
+     */
+    public void testGetState() {
+        // Setup PickList
+        PickList pickList  = new PickList("languages");
+
+        pickList.add(new Option("002", "C/C++"));
+        pickList.add(new Option("003", "C#"));
+        pickList.add(new Option("004", "Fortran"));
+        pickList.add(new Option("005", "Java"));
+        pickList.add(new Option("006", "Ruby"));
+        pickList.add(new Option("007", "Perl"));
+        pickList.add(new Option("008", "Visual Basic"));
+
+        // Setup PickList selected values
+        pickList.addSelectedValue("004");
+        pickList.addSelectedValue("005");
+
+        String[] state = (String[]) pickList.getState();
+
+        // Perform tests
+        String[] expectedStateArray = new String[] {"004", "005"};
+        assertTrue(Arrays.equals(expectedStateArray, state));
+        assertTrue(Arrays.equals(state, pickList.getSelectedValues().toArray()));
+    }
+
+    /**
+     * Test that PickList.setState set the PickList selected values.
+     *
+     * CLK-715
+     */
+    public void testSetState() {
+        // Setup PickList
+        PickList pickList  = new PickList("languages");
+
+        pickList.add(new Option("002", "C/C++"));
+        pickList.add(new Option("003", "C#"));
+        pickList.add(new Option("004", "Fortran"));
+        pickList.add(new Option("005", "Java"));
+        pickList.add(new Option("006", "Ruby"));
+        pickList.add(new Option("007", "Perl"));
+        pickList.add(new Option("008", "Visual Basic"));
+
+                List expectedSelectedValues = new ArrayList();
+        assertEquals(expectedSelectedValues, pickList.getSelectedValues());
+
+        // Setup PickList selected values
+        String[] expectedState = {"004", "005"};
+
+        // Set state
+        pickList.setState(expectedState);
+
+        // Perform tests
+        assertEquals("", pickList.getValue()); // PickList use value but selectedValues instead
+        assertTrue(Arrays.equals(expectedState, pickList.getSelectedValues().toArray()));
+        assertEquals(pickList.getSelectedValues(), (pickList.getValueObject()));
+    }
 }

Modified: click/trunk/click/framework/src/org/apache/click/util/ClickUtils.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/src/org/apache/click/util/ClickUtils.java?rev=1030910&r1=1030909&r2=1030910&view=diff
==============================================================================
--- click/trunk/click/framework/src/org/apache/click/util/ClickUtils.java (original)
+++ click/trunk/click/framework/src/org/apache/click/util/ClickUtils.java Thu Nov  4 12:41:13 2010
@@ -1936,7 +1936,7 @@ public class ClickUtils {
      * URL encode the specified value using the "UTF-8" encoding scheme.
      * <p/>
      * For example <tt>(http://host?name=value with spaces)</tt> will become
-     * <tt>(http://host?name=value%20with%20spaces)</tt>.
+     * <tt>(http://host?name=value+with+spaces)</tt>.
      * <p/>
      * This method uses {@link URLEncoder#encode(java.lang.String, java.lang.String)}
      * internally.
@@ -1959,7 +1959,7 @@ public class ClickUtils {
     /**
      * URL decode the specified value using the "UTF-8" encoding scheme.
      * <p/>
-     * For example <tt>(http://host?name=value%20with%20spaces)</tt> will become
+     * For example <tt>(http://host?name=value+with+spaces)</tt> will become
      * <tt>(http://host?name=value with spaces)</tt>.
      * <p/>
      * This method uses {@link URLDecoder#decode(java.lang.String, java.lang.String)}
@@ -1986,7 +1986,7 @@ public class ClickUtils {
      * is not specified.
      * <p/>
      * For example <tt>(http://host?name=value with spaces)</tt> will become
-     * <tt>(http://host?name=value%20with%20spaces)</tt>.
+     * <tt>(http://host?name=value+with+spaces)</tt>.
      * <p/>
      * This method uses
      * {@link URLEncoder#encode(java.lang.String, java.lang.String)} internally.