From c7b17868b7fb6e28691806bc091429f4b0c77e92 Mon Sep 17 00:00:00 2001 From: Ulrik Sandberg Date: Sun, 28 Mar 2010 22:22:42 +0000 Subject: [PATCH] Added some tests for issues described in certain forum posts, like thread 86640. --- .../ldap/core/DistinguishedNameTest.java | 14 ++++++++++++++ .../filter/HardcodedFilterIntegrationTest.java | 18 ++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/core/src/test/java/org/springframework/ldap/core/DistinguishedNameTest.java b/core/src/test/java/org/springframework/ldap/core/DistinguishedNameTest.java index 9542ff04..4fbd587b 100644 --- a/core/src/test/java/org/springframework/ldap/core/DistinguishedNameTest.java +++ b/core/src/test/java/org/springframework/ldap/core/DistinguishedNameTest.java @@ -554,6 +554,20 @@ public class DistinguishedNameTest extends TestCase { assertNotNull(name); } + /** + * Test for http://forum.springsource.org/showthread.php?t=86640. + */ + public void testDistinguishedNameWithDotParsesProperly() { + DistinguishedName name = new DistinguishedName("cn=first.last,OU=DevTest Users,DC=xyz,DC=com"); + assertEquals("cn=first.last,ou=DevTest Users,dc=xyz,dc=com", name.toCompactString()); + DistinguishedName dn = new DistinguishedName(); + dn.parse("cn=first.last,OU=DevTest Users,DC=xyz,DC=com"); + assertEquals("first.last", dn.getValue("cn")); + assertEquals("DevTest Users", dn.getValue("ou")); + assertEquals("xyz", dn.getLdapRdn(1).getValue()); + assertEquals("com", dn.getLdapRdn(0).getValue()); + } + public void testToStringCompact() { try { DistinguishedName name = new DistinguishedName("cn=john doe, ou=company"); diff --git a/test/integration-tests/src/test/java/org/springframework/ldap/filter/HardcodedFilterIntegrationTest.java b/test/integration-tests/src/test/java/org/springframework/ldap/filter/HardcodedFilterIntegrationTest.java index 9eabef1e..61f1ad5f 100644 --- a/test/integration-tests/src/test/java/org/springframework/ldap/filter/HardcodedFilterIntegrationTest.java +++ b/test/integration-tests/src/test/java/org/springframework/ldap/filter/HardcodedFilterIntegrationTest.java @@ -20,6 +20,9 @@ import static junit.framework.Assert.assertTrue; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ldap.core.DistinguishedName; +import org.springframework.ldap.core.LdapTemplate; +import org.springframework.ldap.core.support.CountNameClassPairCallbackHandler; import org.springframework.ldap.itest.filter.DummyFilterConsumer; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; @@ -27,17 +30,28 @@ import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; /** * @author Mattias Hellborg Arthursson */ -@ContextConfiguration(locations = { "/conf/hardcodedFilterTestContext.xml" }) +@ContextConfiguration(locations = { "/conf/hardcodedFilterTestContext.xml", "/conf/ldapTemplateTestContext.xml" }) public class HardcodedFilterIntegrationTest extends AbstractJUnit4SpringContextTests { @Autowired private DummyFilterConsumer dummyFilterConsumer; + @Autowired + private LdapTemplate ldapTemplate; + @Test public void verifyThatFilterEditorWorks() { Filter filter = dummyFilterConsumer.getFilter(); assertTrue(filter instanceof HardcodedFilter); assertEquals("(&(objectclass=person)(!(objectclass=computer))", filter.toString()); } - + + @Test + public void verifyThatWildcardsAreUnescaped() { + HardcodedFilter filter = new HardcodedFilter("cn=Some*"); + CountNameClassPairCallbackHandler handler = new CountNameClassPairCallbackHandler(); + ldapTemplate.search(DistinguishedName.EMPTY_PATH, filter.encode(), handler); + int hits = handler.getNoOfRows(); + assertTrue("expected more than one hit, got " + hits, hits > 1); + } }