Add tests for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/BranchNormalizedVisitorTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/BranchNormalizedVisitorTest.java
index d2d145e..dedde6a 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/BranchNormalizedVisitorTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/BranchNormalizedVisitorTest.java
@@ -24,7 +24,6 @@
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import org.apache.directory.api.ldap.model.filter.FilterParser;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterCloneTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterCloneTest.java
index 1e5d256..206720e 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterCloneTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterCloneTest.java
@@ -27,7 +27,6 @@
import java.text.ParseException;
-import org.apache.directory.api.ldap.model.filter.FilterParser;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterParserTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterParserTest.java
index 95d8a21..9a611b0 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterParserTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterParserTest.java
@@ -33,14 +33,12 @@
import java.util.Locale;
import org.apache.directory.api.ldap.model.entry.Value;
-import org.apache.directory.api.ldap.model.filter.FilterParser;
import org.apache.directory.api.util.Strings;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;
-
/**
* Tests the FilterParserImpl class.
*
@@ -411,6 +409,62 @@
}
+ /**
+ * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+ */
+ @Test
+ public void testEqualsFilterForDnWithLeadingHash() throws ParseException
+ {
+ String str = "(memberOf=CN=\\5c#SOME,OU=Groups,OU=EMEA,DC=example,DC=net)";
+ EqualityNode<?> node = ( EqualityNode<?> ) FilterParser.parse( str, true );
+ assertEquals( "memberOf", node.getAttribute() );
+ assertEquals( "CN=\\#SOME,OU=Groups,OU=EMEA,DC=example,DC=net", node.getValue().getString() );
+ }
+
+
+ /**
+ * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+ */
+ @Test
+ public void testEqualsFilterForDnWithLeadingHashHex() throws ParseException
+ {
+ String str = "(memberOf=CN=\\5C23SOME,OU=Groups,OU=EMEA,DC=example,DC=net)";
+ EqualityNode<?> node = ( EqualityNode<?> ) FilterParser.parse( str, true );
+ assertEquals( "memberOf", node.getAttribute() );
+ assertEquals( "CN=\\23SOME,OU=Groups,OU=EMEA,DC=example,DC=net", node.getValue().getString() );
+ }
+
+
+ /**
+ * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+ */
+ @Test
+ public void testExtensibleFilterForDnWithLeadingHash() throws ParseException
+ {
+ String str = "(memberOf:1.2.840.113556.1.4.1941:=CN=\\5c#SOME,OU=Groups,OU=EMEA,DC=example,DC=net)";
+ ExtensibleNode node = ( ExtensibleNode ) FilterParser.parse( str, true );
+ assertEquals( "memberOf", node.getAttribute() );
+ assertEquals( "CN=\\#SOME,OU=Groups,OU=EMEA,DC=example,DC=net", node.getValue().getString() );
+ assertEquals( "1.2.840.113556.1.4.1941", node.getMatchingRuleId() );
+ assertFalse( node.hasDnAttributes() );
+ }
+
+
+ /**
+ * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+ */
+ @Test
+ public void testExtensibleFilterForDnWithLeadingHashHex() throws ParseException
+ {
+ String str = "(memberOf:1.2.840.113556.1.4.1941:=CN=\\5C23SOME,OU=Groups,OU=EMEA,DC=example,DC=net)";
+ ExtensibleNode node = ( ExtensibleNode ) FilterParser.parse( str, true );
+ assertEquals( "memberOf", node.getAttribute() );
+ assertEquals( "CN=\\23SOME,OU=Groups,OU=EMEA,DC=example,DC=net", node.getValue().getString() );
+ assertEquals( "1.2.840.113556.1.4.1941", node.getMatchingRuleId() );
+ assertFalse( node.hasDnAttributes() );
+ }
+
+
@Test
public void testReuseParser() throws ParseException
{
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterToStringTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterToStringTest.java
index 5fd5b0a..eb2a1d9 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterToStringTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/FilterToStringTest.java
@@ -24,7 +24,6 @@
import java.text.ParseException;
-import org.apache.directory.api.ldap.model.filter.FilterParser;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/UndefinedNodeTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/UndefinedNodeTest.java
index 47148b4..03860af 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/UndefinedNodeTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/filter/UndefinedNodeTest.java
@@ -27,8 +27,6 @@
import java.util.List;
-import org.apache.directory.api.ldap.model.filter.FilterVisitor;
-
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;