From: <tf...@us...> - 2006-09-26 02:16:41
|
Revision: 414 http://svn.sourceforge.net/stripes/?rev=414&view=rev Author: tfenne Date: 2006-09-25 19:16:32 -0700 (Mon, 25 Sep 2006) Log Message: ----------- Fix for STS-243: hidden tag does not output a tag if the value is null Modified Paths: -------------- trunk/stripes/src/net/sourceforge/stripes/tag/InputHiddenTag.java trunk/stripes/src/net/sourceforge/stripes/util/CollectionUtil.java Added Paths: ----------- trunk/tests/src/net/sourceforge/stripes/util/CollectionUtilTest.java Modified: trunk/stripes/src/net/sourceforge/stripes/tag/InputHiddenTag.java =================================================================== --- trunk/stripes/src/net/sourceforge/stripes/tag/InputHiddenTag.java 2006-09-26 01:11:36 UTC (rev 413) +++ trunk/stripes/src/net/sourceforge/stripes/tag/InputHiddenTag.java 2006-09-26 02:16:32 UTC (rev 414) @@ -94,24 +94,26 @@ Object valueOrValues = getOverrideValueOrValues(); // Figure out how many times to write it out - if (valueOrValues != null) { - if (valueOrValues.getClass().isArray()) { - for (Object value : (Object[]) valueOrValues) { - getAttributes().put("value", format(value)); - writeSingletonTag(getPageContext().getOut(), "input"); - } + if (valueOrValues == null) { + getAttributes().put("value", ""); + writeSingletonTag(getPageContext().getOut(), "input"); + } + else if (valueOrValues.getClass().isArray()) { + for (Object value : (Object[]) valueOrValues) { + getAttributes().put("value", format(value)); + writeSingletonTag(getPageContext().getOut(), "input"); } - else if (valueOrValues instanceof Collection) { - for (Object value : (Collection) valueOrValues) { - getAttributes().put("value", format(value)); - writeSingletonTag(getPageContext().getOut(), "input"); - } - } - else { - getAttributes().put("value", format(valueOrValues)); + } + else if (valueOrValues instanceof Collection) { + for (Object value : (Collection) valueOrValues) { + getAttributes().put("value", format(value)); writeSingletonTag(getPageContext().getOut(), "input"); } } + else { + getAttributes().put("value", format(valueOrValues)); + writeSingletonTag(getPageContext().getOut(), "input"); + } // Clear out the value from the attributes getAttributes().remove("value"); Modified: trunk/stripes/src/net/sourceforge/stripes/util/CollectionUtil.java =================================================================== --- trunk/stripes/src/net/sourceforge/stripes/util/CollectionUtil.java 2006-09-26 01:11:36 UTC (rev 413) +++ trunk/stripes/src/net/sourceforge/stripes/util/CollectionUtil.java 2006-09-26 02:16:32 UTC (rev 414) @@ -41,4 +41,18 @@ return false; } + + /** + * Checks to see if the array contains any values that are non-null non empty-string values. + * If it does, returns false. Returns true for null arrays and zero length arrays, as well + * as for arrays consisting only of nulls and empty strings. + */ + public static boolean empty(String[] arr) { + if (arr == null || arr.length == 0) return true; + for (String s : arr) { + if (s != null && !"".equals(s)) return false; + } + + return true; + } } Added: trunk/tests/src/net/sourceforge/stripes/util/CollectionUtilTest.java =================================================================== --- trunk/tests/src/net/sourceforge/stripes/util/CollectionUtilTest.java (rev 0) +++ trunk/tests/src/net/sourceforge/stripes/util/CollectionUtilTest.java 2006-09-26 02:16:32 UTC (rev 414) @@ -0,0 +1,46 @@ +package net.sourceforge.stripes.util; + +import org.testng.annotations.Test; +import org.testng.Assert; + +/** + * Tests for the CollectionUtil class + * + * @author Tim Fennell + */ +public class CollectionUtilTest { + @Test(groups="fast") + public void testEmptyOnNullCollection() { + Assert.assertTrue(CollectionUtil.empty(null)); + } + + @Test(groups="fast") + public void testEmptyOnCollectionOfNulls() { + Assert.assertTrue(CollectionUtil.empty(new String[] {null, null, null})); + } + + @Test(groups="fast") + public void testEmptyZeroLengthCollection() { + Assert.assertTrue(CollectionUtil.empty(new String[] {})); + } + + @Test(groups="fast") + public void testEmptyOnCollectionOfEmptyStrings() { + Assert.assertTrue(CollectionUtil.empty(new String[] {"", null, ""})); + } + + @Test(groups="fast") + public void testEmptyOnNonEmptyCollection1() { + Assert.assertFalse(CollectionUtil.empty(new String[] {"", null, "foo"})); + } + + @Test(groups="fast") + public void testEmptyOnNonEmptyCollection2() { + Assert.assertFalse(CollectionUtil.empty(new String[] {"bar"})); + } + + @Test(groups="fast") + public void testEmptyOnNonEmptyCollection3() { + Assert.assertFalse(CollectionUtil.empty(new String[] {"bar", "splat", "foo"})); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |