Add tests for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
diff --git a/tests/test.integration.ui/src/main/java/org/apache/directory/studio/test/integration/ui/SearchTest.java b/tests/test.integration.ui/src/main/java/org/apache/directory/studio/test/integration/ui/SearchTest.java
index aa908e0..09923f1 100644
--- a/tests/test.integration.ui/src/main/java/org/apache/directory/studio/test/integration/ui/SearchTest.java
+++ b/tests/test.integration.ui/src/main/java/org/apache/directory/studio/test/integration/ui/SearchTest.java
@@ -429,4 +429,58 @@
assertEquals( "(&\n (objectClass=*)\n (uid=user.1)\n)", formattetFilter );
}
+
+ /**
+ * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+ */
+ @Test
+ public void testFilterForDnWithLeadingHash() throws Exception
+ {
+ String searchName = "Test filter for DN with leading hash character";
+ browserViewBot.selectEntry( "DIT", "Root DSE", "ou=system" );
+ SearchDialogBot dialogBot = browserViewBot.openSearchDialog();
+ assertTrue( dialogBot.isVisible() );
+ dialogBot.setSearchName( searchName );
+ dialogBot.setReturningAttributes( "objectClass,ou,cn,uid" );
+
+ FilterEditorDialogBot filterBot = dialogBot.openFilterEditor();
+ filterBot.setFilter( "member=CN=\\5c#ACL_AD-Projects_Author,ou=users,ou=system" );
+ filterBot.clickFormatButton();
+ filterBot.clickOkButton();
+ dialogBot.activate();
+ String filter = dialogBot.getFilter();
+ dialogBot.clickSearchButton();
+
+ browserViewBot.expandEntry( "Searches", searchName );
+ assertTrue( browserViewBot.existsEntry( "Searches", searchName, "cn=My Group,ou=groups,ou=system" ) );
+ assertEquals( "(member=CN=\\5c#ACL_AD-Projects_Author,ou=users,ou=system)", filter );
+ }
+
+
+ /**
+ * Test for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
+ */
+ @Test
+ public void testFilterForDnWithLeadingHashHex() throws Exception
+ {
+ String searchName = "Test filter for DN with leading hash character";
+ browserViewBot.selectEntry( "DIT", "Root DSE", "ou=system" );
+ SearchDialogBot dialogBot = browserViewBot.openSearchDialog();
+ assertTrue( dialogBot.isVisible() );
+ dialogBot.setSearchName( searchName );
+ dialogBot.setReturningAttributes( "objectClass,ou,cn,uid" );
+
+ FilterEditorDialogBot filterBot = dialogBot.openFilterEditor();
+ filterBot.setFilter( "member=CN=\\5C23ACL_AD-Projects_Author,ou=users,ou=system" );
+ filterBot.clickFormatButton();
+ filterBot.clickOkButton();
+ dialogBot.activate();
+ String filter = dialogBot.getFilter();
+ dialogBot.clickSearchButton();
+
+ browserViewBot.expandEntry( "Searches", searchName );
+ assertTrue( browserViewBot.existsEntry( "Searches", searchName, "cn=My Group,ou=groups,ou=system" ) );
+ assertEquals( "(member=CN=\\5C23ACL_AD-Projects_Author,ou=users,ou=system)", filter );
+ }
+
}
diff --git a/tests/test.integration.ui/src/main/resources/org/apache/directory/studio/test/integration/ui/BrowserTest.ldif b/tests/test.integration.ui/src/main/resources/org/apache/directory/studio/test/integration/ui/BrowserTest.ldif
index 08c54eb..761db63 100644
--- a/tests/test.integration.ui/src/main/resources/org/apache/directory/studio/test/integration/ui/BrowserTest.ldif
+++ b/tests/test.integration.ui/src/main/resources/org/apache/directory/studio/test/integration/ui/BrowserTest.ldif
@@ -221,6 +221,12 @@
cn: #ACL_AD-Projects_Author
sn: #ACL_AD-Projects_Author
+dn: cn=My Group,ou=groups,ou=system
+objectClass: groupOfNames
+objectClass: top
+cn: My Group
+member: cn=\#ACL_AD-Projects_Author,ou=users,ou=system
+
dn: cn=nghZwwtHgxgyvVbTQCYyeY\+O4cc=,ou=users,ou=system
objectClass: top
objectClass: person