@@ -4,7 +4,7 @@ class TestSearchIntegration < LDAPIntegrationTestCase
44 def test_search
55 entries = [ ]
66
7- result = @ldap . search ( filter : "(uid=user1)" , base : "dc=rubyldap,dc=com" ) do |entry |
7+ result = @ldap . search ( base : "dc=rubyldap,dc=com" ) do |entry |
88 assert_kind_of Net ::LDAP ::Entry , entry
99 entries << entry
1010 end
@@ -16,7 +16,7 @@ def test_search
1616 def test_search_without_result
1717 entries = [ ]
1818
19- result = @ldap . search ( filter : "(uid=user1)" , base : "dc=rubyldap,dc=com" , return_result : false ) do |entry |
19+ result = @ldap . search ( base : "dc=rubyldap,dc=com" , return_result : false ) do |entry |
2020 assert_kind_of Net ::LDAP ::Entry , entry
2121 entries << entry
2222 end
@@ -25,6 +25,29 @@ def test_search_without_result
2525 refute_equal entries , result
2626 end
2727
28+ def test_search_filter_string
29+ entries = @ldap . search ( base : "dc=rubyldap,dc=com" , filter : "(uid=user1)" )
30+ assert_equal 1 , entries . size
31+ end
32+
33+ def test_search_filter_object
34+ filter = Net ::LDAP ::Filter . eq ( "uid" , "user1" ) | Net ::LDAP ::Filter . eq ( "uid" , "user2" )
35+ entries = @ldap . search ( base : "dc=rubyldap,dc=com" , filter : filter )
36+ assert_equal 2 , entries . size
37+ end
38+
39+ def test_search_constrained_attributes
40+ entry = @ldap . search ( base : "uid=user1,ou=People,dc=rubyldap,dc=com" , attributes : [ "cn" , "sn" ] ) . first
41+ assert_equal [ :cn , :dn , :sn ] , entry . attribute_names . sort # :dn is always included
42+ assert_empty entry [ :mail ]
43+ end
44+
45+ def test_search_attributes_only
46+ entry = @ldap . search ( base : "uid=user1,ou=People,dc=rubyldap,dc=com" , attributes_only : true ) . first
47+
48+ assert_empty entry [ :cn ] , "unexpected attribute value: #{ entry [ :cn ] } "
49+ end
50+
2851 def test_search_timeout
2952 entries = [ ]
3053 events = @service . subscribe "search.net_ldap_connection"
@@ -39,15 +62,16 @@ def test_search_timeout
3962 assert_equal entries , result
4063 end
4164
65+ # http://tools.ietf.org/html/rfc4511#section-4.5.1.4
4266 def test_search_with_size
4367 entries = [ ]
4468
45- result = @ldap . search ( filter : "(uid=user1)" , base : "dc=rubyldap,dc=com" , size : 1 ) do |entry |
69+ result = @ldap . search ( base : "dc=rubyldap,dc=com" , size : 1 ) do |entry |
4670 assert_kind_of Net ::LDAP ::Entry , entry
4771 entries << entry
4872 end
4973
50- refute entries . empty?
74+ assert_equal 1 , result . size
5175 assert_equal entries , result
5276 end
5377end
0 commit comments