1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
require_relative '../test_helper'
class TestSearchIntegration < LDAPIntegrationTestCase
def test_search
entries = []
result = @ldap.search(base: "dc=example,dc=org") do |entry|
assert_kind_of Net::LDAP::Entry, entry
entries << entry
end
refute entries.empty?
assert_equal entries, result
end
def test_search_without_result
entries = []
result = @ldap.search(base: "dc=example,dc=org", return_result: false) do |entry|
assert_kind_of Net::LDAP::Entry, entry
entries << entry
end
assert result
refute_equal entries, result
end
def test_search_filter_string
entries = @ldap.search(base: "dc=example,dc=org", filter: "(uid=user1)")
assert_equal 1, entries.size
end
def test_search_filter_object
filter = Net::LDAP::Filter.eq("uid", "user1") | Net::LDAP::Filter.eq("uid", "user2")
entries = @ldap.search(base: "dc=example,dc=org", filter: filter)
assert_equal 2, entries.size
end
def test_search_constrained_attributes
entry = @ldap.search(base: "uid=user1,ou=People,dc=example,dc=org", attributes: ["cn", "sn"]).first
assert_equal [:cn, :dn, :sn], entry.attribute_names.sort # :dn is always included
assert_empty entry[:mail]
end
def test_search_attributes_only
entry = @ldap.search(base: "uid=user1,ou=People,dc=example,dc=org", attributes_only: true).first
assert_empty entry[:cn], "unexpected attribute value: #{entry[:cn]}"
end
def test_search_timeout
entries = []
events = @service.subscribe "search.net_ldap_connection"
result = @ldap.search(base: "dc=example,dc=org", time: 5) do |entry|
assert_kind_of Net::LDAP::Entry, entry
entries << entry
end
payload, = events.pop
assert_equal 5, payload[:time]
assert_equal entries, result
end
# http://tools.ietf.org/html/rfc4511#section-4.5.1.4
def test_search_with_size
entries = []
result = @ldap.search(base: "dc=example,dc=org", size: 1) do |entry|
assert_kind_of Net::LDAP::Entry, entry
entries << entry
end
assert_equal 1, result.size
assert_equal entries, result
end
end
|