You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
4.2 KiB
149 lines
4.2 KiB
require File.dirname(__FILE__) + '/test_helper'
|
|
require 'ldap/server/dn'
|
|
|
|
class TestLdapDn < Test::Unit::TestCase
|
|
def setup
|
|
@dn = LDAP::Server::DN.new("cn=Steve Kille,o=Isode Limited,o=Companies,c=GB")
|
|
end
|
|
|
|
def test_find_first
|
|
assert_equal(nil, @dn.find_first("ou"))
|
|
assert_equal("Steve Kille", @dn.find_first("cn"))
|
|
assert_equal("Isode Limited", @dn.find_first("o"))
|
|
end
|
|
|
|
def test_find_last
|
|
assert_equal(nil, @dn.find_last("ou"))
|
|
assert_equal("Steve Kille", @dn.find_last("cn"))
|
|
assert_equal("Companies", @dn.find_last("o"))
|
|
end
|
|
|
|
def test_find
|
|
assert_equal([], @dn.find("ou"))
|
|
assert_equal(["Steve Kille"], @dn.find("cn"))
|
|
assert_equal(["Isode Limited", "Companies"], @dn.find("o"))
|
|
end
|
|
|
|
def test_find_nth
|
|
assert_equal(nil, @dn.find_nth("ou", 0))
|
|
assert_equal("Steve Kille", @dn.find_nth("cn", 0))
|
|
assert_equal(nil, @dn.find_nth("cn", 1))
|
|
assert_equal("Isode Limited", @dn.find_nth("o", 0))
|
|
assert_equal("Companies", @dn.find_nth("o", 1))
|
|
assert_equal(nil, @dn.find_nth("o", 2))
|
|
end
|
|
|
|
def test_start_with
|
|
assert @dn.start_with?("cn=Steve Kille")
|
|
assert @dn.start_with?("cn=Steve Kille, o=Isode Limited")
|
|
refute @dn.start_with?("cn=John Doe")
|
|
end
|
|
|
|
def test_start_with_format
|
|
assert @dn.start_with_format?("cn=Steve Kille")
|
|
assert @dn.start_with_format?("cn=foo, o=bar")
|
|
refute @dn.start_with_format?("c=GB")
|
|
refute @dn.start_with_format?("c=BE")
|
|
end
|
|
|
|
def test_end_with
|
|
assert @dn.end_with?("c=GB")
|
|
assert @dn.end_with?("o=Companies, c=GB")
|
|
refute @dn.end_with?("c=BE")
|
|
end
|
|
|
|
def test_end_with_format
|
|
assert @dn.end_with_format?("c=GB")
|
|
assert @dn.end_with_format?("o=foo, c=bar")
|
|
refute @dn.end_with_format?("cn=Steve Kille")
|
|
refute @dn.end_with_format?("cn=foo")
|
|
end
|
|
|
|
def test_equal
|
|
assert @dn.equal?("CN=Steve Kille, o=Isode Limited,O=Companies,c=GB")
|
|
refute @dn.equal?("cn=John Doe,o=Isode Limited,o=Companies,c=GB")
|
|
end
|
|
|
|
def test_equal_format
|
|
assert @dn.equal_format?("cn=Steve Kille,o=Isode Limited,o=Companies,c=GB")
|
|
assert @dn.equal_format?("cn=STEVE KILLE,o=ISODE LIMITED,o=COMPANIES,c=GB")
|
|
assert @dn.equal_format?("cn=foo,o=bar,o=baz,c=bat")
|
|
assert @dn.equal_format?("CN=foo,O=bar,O=baz,C=bat")
|
|
refute @dn.equal_format?("cn=foo,o=Isode Limited,c=GB")
|
|
end
|
|
|
|
def test_include
|
|
assert @dn.include?("cn=Steve Kille,o=Isode Limited,o=Companies,c=GB")
|
|
assert @dn.include?("cn=Steve Kille")
|
|
assert @dn.include?("o=Isode Limited")
|
|
assert @dn.include?("o=Isode Limited,o=Companies")
|
|
assert @dn.include?("c=GB")
|
|
|
|
refute @dn.include?("cn=John Doe,o=Isode Limited,o=Companies,c=GB")
|
|
refute @dn.include?("cn=Steve Kille,o=Isode Limited,c=GB")
|
|
end
|
|
|
|
def test_include_format
|
|
assert @dn.include_format?("cn=foo,o=bar,o=baz,c=bat")
|
|
assert @dn.include_format?("cn=foo")
|
|
assert @dn.include_format?("o=bar")
|
|
assert @dn.include_format?("o=bar,o=baz")
|
|
assert @dn.include_format?("c=bat")
|
|
|
|
refute @dn.include_format?("cn=foo,o=bar,c=bat")
|
|
refute @dn.include_format?("cn=bar,c=bat")
|
|
end
|
|
|
|
def test_parse
|
|
assert_equal @dn.parse("cn=:cn,o=:company,o=Companies,c=:country"),
|
|
{
|
|
:cn => 'Steve Kille',
|
|
:company => 'Isode Limited',
|
|
:country => 'GB'
|
|
}
|
|
assert_equal @dn.parse("cn=:cn,o=:company,o=:company,c=:country"),
|
|
{
|
|
:cn => 'Steve Kille',
|
|
:company => 'Companies',
|
|
:country => 'GB'
|
|
}
|
|
assert_empty @dn.parse("cn=Steve Kille,o=Isode Limited,o=Companies,c=GB")
|
|
|
|
assert_equal @dn.parse("cn=:cn,cn=Steve Kille,o=Isode Limited,o=Companies,c=GB"),
|
|
{
|
|
:cn => nil
|
|
}
|
|
|
|
assert_empty @dn.parse("o=Foo,o=Companies,c=GB")
|
|
assert_empty @dn.parse("cn=:cn,o=Foo,o=Companies,c=GB")
|
|
|
|
end
|
|
|
|
def test_each
|
|
answer = [
|
|
{ 'cn' => 'Steve Kille' },
|
|
{ 'o' => 'Isode Limited' },
|
|
{ 'o' => 'Companies' },
|
|
{ 'c' => 'GB' }
|
|
]
|
|
i = 0
|
|
@dn.each do |pair|
|
|
assert_equal pair, answer[i]
|
|
i += 1
|
|
end
|
|
end
|
|
|
|
def test_reverse_each
|
|
answer = [
|
|
{ 'c' => 'GB' },
|
|
{ 'o' => 'Companies' },
|
|
{ 'o' => 'Isode Limited' },
|
|
{ 'cn' => 'Steve Kille' }
|
|
]
|
|
i = 0
|
|
@dn.reverse_each do |pair|
|
|
assert_equal pair, answer[i]
|
|
i += 1
|
|
end
|
|
end
|
|
end
|