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/12/30 00:15:52 UTC
svn commit: r1053766 - in /click/trunk/click/framework:
src/org/apache/click/control/Select.java
test/org/apache/click/control/SelectTest.java
Author: sabob
Date: Wed Dec 29 23:15:52 2010
New Revision: 1053766
URL: http://svn.apache.org/viewvc?rev=1053766&view=rev
Log:
ensure only Option or OptionGroup is passed through DataProvider. CLK-745
Modified:
click/trunk/click/framework/src/org/apache/click/control/Select.java
click/trunk/click/framework/test/org/apache/click/control/SelectTest.java
Modified: click/trunk/click/framework/src/org/apache/click/control/Select.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/src/org/apache/click/control/Select.java?rev=1053766&r1=1053765&r2=1053766&view=diff
==============================================================================
--- click/trunk/click/framework/src/org/apache/click/control/Select.java (original)
+++ click/trunk/click/framework/src/org/apache/click/control/Select.java Wed Dec 29 23:15:52 2010
@@ -852,7 +852,13 @@ public class Select extends Field {
// Populate optionList from options
for (Object option : iterableData) {
- add(option);
+ if (option instanceof Option || option instanceof OptionGroup) {
+ optionList.add(option);
+ } else {
+ String msg = "Select option class not instance of Option"
+ + " or OptionGroup: " + option.getClass().getName();
+ throw new IllegalArgumentException(msg);
+ }
}
}
}
Modified: click/trunk/click/framework/test/org/apache/click/control/SelectTest.java
URL: http://svn.apache.org/viewvc/click/trunk/click/framework/test/org/apache/click/control/SelectTest.java?rev=1053766&r1=1053765&r2=1053766&view=diff
==============================================================================
--- click/trunk/click/framework/test/org/apache/click/control/SelectTest.java (original)
+++ click/trunk/click/framework/test/org/apache/click/control/SelectTest.java Wed Dec 29 23:15:52 2010
@@ -20,7 +20,9 @@ package org.apache.click.control;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.LinkedHashSet;
import java.util.List;
+import java.util.Set;
import junit.framework.TestCase;
import org.apache.click.MockContext;
import org.apache.click.dataprovider.DataProvider;
@@ -183,4 +185,44 @@ public class SelectTest extends TestCase
// Test initial value
assertEquals(expectedValue, select.getValue());
}
+
+ /**
+ * CLK-745
+ */
+ public void testDataProviderValues() {
+ // Setup Select
+ Select select = new Select("gender");
+
+ select.setDataProvider(new DataProvider() {
+
+ public List getData() {
+ List list = new ArrayList();
+ list.add("male");
+ return list;
+ }
+ });
+
+ try {
+ // Trigger dataProvider
+ select.toString();
+ fail("Cannot pass String to dataProvider");
+ } catch (IllegalArgumentException expected) {
+ }
+
+ select.setDataProvider(new DataProvider() {
+
+ public Set getData() {
+ Set set = new LinkedHashSet();
+ set.add("male");
+ return set;
+ }
+ });
+
+ try {
+ // Trigger dataProvider
+ select.toString();
+ fail("Cannot pass String to dataProvider");
+ } catch (IllegalArgumentException expected) {
+ }
+ }
}