diff options
author | Stefan Seelmann <mail@stefan-seelmann.de> | 2021-04-03 20:11:13 +0300 |
---|---|---|
committer | Stefan Seelmann <mail@stefan-seelmann.de> | 2021-04-03 20:11:13 +0300 |
commit | 66fee764ce1a98e0cbcf65a4ec22d4c7cb4f16a0 (patch) | |
tree | ca98e86a2ebac6da16fab27660258c00cb16ecd1 | |
parent | 4d6eb0d61c11b92f65c9a8b21860ebec6955f218 (diff) |
Add tests for DIRSTUDIO-1078/DIRAPI-365: unable to use # pound hash sign in LDAP filters
2 files changed, 60 insertions, 0 deletions
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 aa908e068..09923f193 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 @@ public class SearchTest extends AbstractLdapTestUnit 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 08c54eb64..761db633a 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 @@ objectClass: person 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 |