Added trimming of whitespace to tokens and use of Springs StringUtils.hasText() to check for content in the string passed to setAsText.

This commit is contained in:
Luke Taylor 2005-07-21 22:55:27 +00:00
parent 8e1549e399
commit c89d4a8add
2 changed files with 15 additions and 4 deletions

View File

@ -33,14 +33,12 @@ public class UserAttributeEditor extends PropertyEditorSupport {
//~ Methods ================================================================
public void setAsText(String s) throws IllegalArgumentException {
if ((s == null) || "".equals(s)) {
setValue(null);
} else {
if (StringUtils.hasText(s)) {
String[] tokens = StringUtils.commaDelimitedListToStringArray(s);
UserAttribute userAttrib = new UserAttribute();
for (int i = 0; i < tokens.length; i++) {
String currentToken = tokens[i];
String currentToken = tokens[i].trim();
if (i == 0) {
userAttrib.setPassword(currentToken);
@ -61,6 +59,8 @@ public class UserAttributeEditor extends PropertyEditorSupport {
} else {
setValue(null);
}
} else {
setValue(null);
}
}
}

View File

@ -123,4 +123,15 @@ public class UserAttributeEditorTests extends TestCase {
UserAttribute user = (UserAttribute) editor.getValue();
assertTrue(user == null);
}
public void testCorrectOperationWithTrailingSpaces() {
UserAttributeEditor editor = new UserAttributeEditor();
editor.setAsText("password ,ROLE_ONE,ROLE_TWO ");
UserAttribute user = (UserAttribute) editor.getValue();
assertEquals("password", user.getPassword());
assertEquals(2, user.getAuthorities().length);
assertEquals("ROLE_ONE", user.getAuthorities()[0].getAuthority());
assertEquals("ROLE_TWO", user.getAuthorities()[1].getAuthority());
}
}