Skip to content

Commit 7ae8e28

Browse files
author
Austin Ziegler
committed
Merge branch 'filter_single_clauses' of https://github.com/Jamstah/ruby-net-ldap into jamstah-filter_single_clauses
2 parents 013c13f + f3204bd commit 7ae8e28

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

lib/net/ldap/filter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,7 @@ def merge_branches(op, scanner)
696696
filter = nil
697697
branches = parse_branches(scanner)
698698

699-
if branches.size >= 2
699+
if branches.size >= 1
700700
filter = branches.shift
701701
while not branches.empty?
702702
filter = filter.__send__(op, branches.shift)

spec/unit/ldap/filter_spec.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
'(o:dn:=Ace Industry)',
2525
'(:dn:2.4.8.10:=Dino)',
2626
'(cn:dn:1.2.3.4.5:=John Smith)',
27-
'(sn:dn:2.4.6.8.10:=Barbara Jones)',
27+
'(sn:dn:2.4.6.8.10:=Barbara Jones)',
28+
'(&(sn:dn:2.4.6.8.10:=Barbara Jones))'
2829
].each do |filter_str|
2930
context "from_rfc2254(#{filter_str.inspect})" do
3031
attr_reader :filter
@@ -80,4 +81,4 @@ def eq(attribute, value)
8081
Net::LDAP::Filter.escape('!&*:|~').should == "\\21\\26\\2A\\3A\\7C\\7E"
8182
end
8283
end
83-
end
84+
end

test/test_filter.rb

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ def test_c2
4545
Filter.from_rfc2254("(! (mail=*))").to_rfc2254)
4646
end
4747

48+
def test_filter_with_single_clause
49+
assert_equal("(cn=name)", Net::LDAP::Filter.construct("(&(cn=name))").to_s)
50+
end
51+
4852
def test_filters_from_ber
4953
[
5054
Net::LDAP::Filter.eq("objectclass", "*"),
@@ -69,11 +73,11 @@ def test_filters_from_ber
6973
Net::LDAP::Filter.eq("objectclass", "aaa*"),
7074
Net::LDAP::Filter.eq("objectclass", "aaa*bbb*"),
7175
Net::LDAP::Filter.eq("objectclass", "aaa*bbb*ccc*"),
72-
].each {|ber|
76+
].each do |ber|
7377
f = Net::LDAP::Filter.parse_ber(ber.to_ber.read_ber(Net::LDAP::AsnSyntax))
7478
assert(f == ber)
7579
assert_equal(f.to_ber, ber.to_ber)
76-
}
80+
end
7781
end
7882

7983
def test_ber_from_rfc2254_filter
@@ -102,10 +106,10 @@ def test_ber_from_rfc2254_filter
102106
Net::LDAP::Filter.construct("objectclass=aaa*"),
103107
Net::LDAP::Filter.construct("objectclass=aaa*bbb*"),
104108
Net::LDAP::Filter.construct("objectclass=aaa*bbb*ccc*"),
105-
].each {|ber|
106-
f = Net::LDAP::Filter.parse_ber(ber.to_ber.read_ber(Net::LDAP::AsnSyntax))
109+
].each do |ber|
110+
f = Net::LDAP::Filter.parse_ber(ber.to_ber.read_ber(Net::LDAP::AsnSyntax))
107111
assert(f == ber)
108112
assert_equal(f.to_ber, ber.to_ber)
109-
}
113+
end
110114
end
111115
end

0 commit comments

Comments
 (0)