You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2015/12/09 15:17:05 UTC
svn commit: r1718862 -
/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
Author: elecharny
Date: Wed Dec 9 14:17:05 2015
New Revision: 1718862
URL: http://svn.apache.org/viewvc?rev=1718862&view=rev
Log:
Added a test that demonstrates that searches done with a '#' in a DN in a filter, either in the middle of a value or at first position of a value, works (cf DIRSTUDIO 1078)
Modified:
directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
Modified: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java?rev=1718862&r1=1718861&r2=1718862&view=diff
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java (original)
+++ directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java Wed Dec 9 14:17:05 2015
@@ -50,6 +50,7 @@ import javax.naming.ldap.LdapContext;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.cursor.Cursor;
import org.apache.directory.api.ldap.model.cursor.EntryCursor;
+import org.apache.directory.api.ldap.model.cursor.SearchCursor;
import org.apache.directory.api.ldap.model.entry.DefaultEntry;
import org.apache.directory.api.ldap.model.entry.Entry;
import org.apache.directory.api.ldap.model.exception.LdapException;
@@ -1912,5 +1913,76 @@ public class SearchIT extends AbstractLd
cursor.close();
connection.close();
+ }
+
+
+ /**
+ * Test for DIRSERVER-1873
+ */
+ @ApplyLdifs({
+ "dn: ou=users,dc=example,dc=com",
+ "ObjectClass: top",
+ "ObjectClass: organizationalUnit",
+ "ou: users",
+
+ "dn: cn=\\#User1,ou=users,dc=example,dc=com",
+ "objectClass: person",
+ "objectClass: top",
+ "cn: #User1",
+ "sn: user 1",
+ "description: User1",
+
+ "dn: cn=User#2,ou=users,dc=example,dc=com",
+ "objectClass: person",
+ "objectClass: top",
+ "cn: User#2",
+ "sn: user 2",
+ "description: User2",
+
+ "dn: ou=groups,dc=example,dc=com",
+ "ObjectClass: top",
+ "ObjectClass: organizationalUnit",
+ "ou: groups",
+
+ "dn: cn=\\#Group1,ou=groups,dc=example,dc=com",
+ "objectClass: groupOfNames",
+ "objectClass: top",
+ "cn: #Group1",
+ "member: cn=\\#user1,ou=users,dc=example,dc=com",
+ "member: cn=User#2,ou=users,dc=example,dc=com",
+ "description: Group"
+ })
+ @Test
+ public void testSearchWithPound() throws Exception
+ {
+ LdapConnection connection = getAdminConnection( getLdapServer() );
+ SearchRequest req = new SearchRequestImpl();
+ req.setBase( new Dn( "dc=example,dc=com" ) );
+ req.setFilter( "(member=*)" );
+ req.setScope( SearchScope.SUBTREE );
+
+ SearchCursor cursor = connection.search( req );
+ int count = 0;
+ while( cursor.next() )
+ {
+ Entry result = cursor.getEntry();
+ count++;
+ }
+
+ assertEquals( 1, count );
+
+ cursor.close();
+
+ req.setFilter( "(member=cn=\\5C#User1,ou=users,dc=example,dc=com)" );
+ cursor = connection.search( req );
+ assertTrue( cursor.next() );
+ cursor.close();
+
+ req.setFilter( "(member=cn=User#2,ou=users,dc=example,dc=com)" );
+ cursor = connection.search( req );
+ assertTrue( cursor.next() );
+ cursor.close();
+
+ connection.close();
}
}