You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2008/11/10 20:31:51 UTC
svn commit: r712725 - in /directory/apacheds/trunk:
core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java
server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
Author: seelmann
Date: Mon Nov 10 11:31:51 2008
New Revision: 712725
URL: http://svn.apache.org/viewvc?rev=712725&view=rev
Log:
Commit 712718 also fixed DIRSERVER-1181, added tests.
Modified:
directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java
directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/search/SearchIT.java
Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java?rev=712725&r1=712724&r2=712725&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java Mon Nov 10 11:31:51 2008
@@ -20,24 +20,18 @@
package org.apache.directory.server.core.operations.search;
-import org.apache.directory.server.core.DirectoryService;
-import org.apache.directory.server.core.integ.CiRunner;
-import static org.apache.directory.server.core.integ.IntegrationUtils.getSystemContext;
import static org.apache.directory.server.core.integ.IntegrationUtils.getSchemaContext;
-import org.apache.directory.shared.ldap.constants.JndiPropertyConstants;
-import org.apache.directory.shared.ldap.exception.LdapSizeLimitExceededException;
-import org.apache.directory.shared.ldap.exception.LdapTimeLimitExceededException;
-import org.apache.directory.shared.ldap.message.AliasDerefMode;
+import static org.apache.directory.server.core.integ.IntegrationUtils.getSystemContext;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
@@ -51,9 +45,16 @@
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.LdapContext;
-import java.util.HashMap;
-import java.util.Set;
-import java.util.HashSet;
+
+import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.integ.CiRunner;
+import org.apache.directory.shared.ldap.constants.JndiPropertyConstants;
+import org.apache.directory.shared.ldap.exception.LdapSizeLimitExceededException;
+import org.apache.directory.shared.ldap.exception.LdapTimeLimitExceededException;
+import org.apache.directory.shared.ldap.message.AliasDerefMode;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
/**
@@ -1366,6 +1367,39 @@
}
+ @Test
+ public void testSubstringSearchWithEscapedAsterisksInFilter_DIRSERVER_1181() throws Exception
+ {
+ LdapContext sysRoot = getSystemContext( service );
+
+ Attributes vicious = new BasicAttributes( true );
+ Attribute ocls = new BasicAttribute( "objectClass" );
+ ocls.add( "top" );
+ ocls.add( "person" );
+ vicious.put( ocls );
+ vicious.put( "cn", "x*y*z*" );
+ vicious.put( "sn", "x*y*z*" );
+ sysRoot.createSubcontext( "cn=x*y*z*", vicious );
+
+ SearchControls controls = new SearchControls();
+ controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+ controls.setReturningAttributes( new String[]
+ { "cn" } );
+ NamingEnumeration<SearchResult> res;
+
+ res = sysRoot.search( "", "(cn=*x\\2Ay\\2Az\\2A*)", controls );
+ assertTrue( res.hasMore() );
+ assertEquals( "x*y*z*", res.next().getAttributes().get( "cn" ).get() );
+ assertFalse( res.hasMore() );
+
+ res = sysRoot.search( "", "(cn=*{0}*)", new String[]
+ { "x*y*z*" }, controls );
+ assertTrue( res.hasMore() );
+ assertEquals( "x*y*z*", res.next().getAttributes().get( "cn" ).get() );
+ assertFalse( res.hasMore() );
+ }
+
+
/**
* Test a search with a bad filter : there is a missing closing ')'
*/
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=712725&r1=712724&r2=712725&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 Mon Nov 10 11:31:51 2008
@@ -1447,4 +1447,37 @@
}
}
+
+ @Test
+ public void testSubstringSearchWithEscapedAsterisksInFilter_DIRSERVER_1181() throws Exception
+ {
+ LdapContext ctx = ( LdapContext ) getWiredContext( ldapService ).lookup( BASE );
+
+ Attributes vicious = new BasicAttributes( true );
+ Attribute ocls = new BasicAttribute( "objectClass" );
+ ocls.add( "top" );
+ ocls.add( "person" );
+ vicious.put( ocls );
+ vicious.put( "cn", "x*y*z*" );
+ vicious.put( "sn", "x*y*z*" );
+ ctx.createSubcontext( "cn=x*y*z*", vicious );
+
+ SearchControls controls = new SearchControls();
+ controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+ controls.setReturningAttributes( new String[]
+ { "cn" } );
+ NamingEnumeration<SearchResult> res;
+
+ res = ctx.search( "", "(cn=*x\\2Ay\\2Az\\2A*)", controls );
+ assertTrue( res.hasMore() );
+ assertEquals( "x*y*z*", res.next().getAttributes().get( "cn" ).get() );
+ assertFalse( res.hasMore() );
+
+ res = ctx.search( "", "(cn=*{0}*)", new String[]
+ { "x*y*z*" }, controls );
+ assertTrue( res.hasMore() );
+ assertEquals( "x*y*z*", res.next().getAttributes().get( "cn" ).get() );
+ assertFalse( res.hasMore() );
+ }
+
}