diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java index c6587dfd7..58ff079cf 100644 --- a/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java +++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import com.sun.xml.internal.bind.v2.util.StackRecorder; import org.apache.struts2.TestAction; import org.apache.struts2.views.jsp.AbstractUITagTest; @@ -174,6 +175,46 @@ public class SelectTest extends AbstractUITagTest { verify(SelectTag.class.getResource("Select-14.txt")); } + public void testNumericString() throws Exception { + StringObject hello = new StringObject("hello", "1"); + StringObject foo = new StringObject("foo", "2"); + + TestAction testAction = (TestAction) action; + + Collection collection = new ArrayList(2); + // expect strings to be returned, we're still dealing with HTTP here! + collection.add("hello"); + collection.add("foo"); + testAction.setCollection(collection); + + List list2 = new ArrayList(); + list2.add(hello); + list2.add(foo); + list2.add(new StringObject("", "1.5")); + list2.add(new StringObject("", "2,5")); + testAction.setList2(list2); + + SelectTag tag = new SelectTag(); + tag.setPageContext(pageContext); + tag.setLabel("mylabel"); + tag.setName("collection"); + tag.setList("list2"); + tag.setListKey("name"); + tag.setListValue("number"); + tag.setMultiple("true"); + tag.setTitle("mytitle"); + tag.setOnmousedown("alert('onmousedown');"); + tag.setOnmousemove("alert('onmousemove');"); + tag.setOnmouseout("alert('onmouseout');"); + tag.setOnmouseover("alert('onmouseover');"); + tag.setOnmouseup("alert('onmouseup');"); + + tag.doStartTag(); + tag.doEndTag(); + + verify(SelectTag.class.getResource("Select-15.txt")); + } + public class BigDecimalObject { private String name; private BigDecimal bigDecimal; @@ -210,6 +251,24 @@ public class SelectTest extends AbstractUITagTest { } } + public class StringObject { + private String name; + private String number; + + public StringObject(String name, String number) { + this.name = name; + this.number = number; + } + + public String getName() { + return name; + } + + public String getNumber() { + return number; + } + } + public class ByteObject { private String name; private Byte byteValue; diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-15.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-15.txt new file mode 100644 index 000000000..e5dc63ef4 --- /dev/null +++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-15.txt @@ -0,0 +1,11 @@ + + + + + +