diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-29 04:06:12 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-29 04:06:12 +0000 |
commit | 11dbedfaad4a9a9521ece2198a8dc491678b1902 (patch) | |
tree | 4806dc0ff0c3827ecc40921838c4507340cfdb3a /ruby_1_8_6/test/uri/test_ldap.rb | |
parent | 29e8d8b439b34c2a394407dc598fc01d14be0c20 (diff) |
add tag v1_8_6_5001v1_8_6_5001
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_5001@13304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_6/test/uri/test_ldap.rb')
-rw-r--r-- | ruby_1_8_6/test/uri/test_ldap.rb | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/ruby_1_8_6/test/uri/test_ldap.rb b/ruby_1_8_6/test/uri/test_ldap.rb new file mode 100644 index 0000000000..866b7d8066 --- /dev/null +++ b/ruby_1_8_6/test/uri/test_ldap.rb @@ -0,0 +1,100 @@ +require 'test/unit' +require 'uri/ldap' + +module URI + + +class TestLDAP < Test::Unit::TestCase + def setup + end + + def teardown + end + + def uri_to_ary(uri) + uri.class.component.collect {|c| uri.send(c)} + end + + def test_parse + url = 'ldap://ldap.jaist.ac.jp/o=JAIST,c=JP?sn?base?(sn=ttate*)' + u = URI.parse(url) + assert_kind_of(URI::LDAP, u) + assert_equal(url, u.to_s) + assert_equal('o=JAIST,c=JP', u.dn) + assert_equal('sn', u.attributes) + assert_equal('base', u.scope) + assert_equal('(sn=ttate*)', u.filter) + assert_equal(nil, u.extensions) + + u.scope = URI::LDAP::SCOPE_SUB + u.attributes = 'sn,cn,mail' + assert_equal('ldap://ldap.jaist.ac.jp/o=JAIST,c=JP?sn,cn,mail?sub?(sn=ttate*)', u.to_s) + assert_equal('o=JAIST,c=JP', u.dn) + assert_equal('sn,cn,mail', u.attributes) + assert_equal('sub', u.scope) + assert_equal('(sn=ttate*)', u.filter) + assert_equal(nil, u.extensions) + + # from RFC2255, section 6. + urls = { + 'ldap:///o=University%20of%20Michigan,c=US' => + ['ldap', nil, URI::LDAP::DEFAULT_PORT, + 'o=University%20of%20Michigan,c=US', + nil, nil, nil, nil], + + 'ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US' => + ['ldap', 'ldap.itd.umich.edu', URI::LDAP::DEFAULT_PORT, + 'o=University%20of%20Michigan,c=US', + nil, nil, nil, nil], + + 'ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US?postalAddress' => + ['ldap', 'ldap.itd.umich.edu', URI::LDAP::DEFAULT_PORT, + 'o=University%20of%20Michigan,c=US', + 'postalAddress', nil, nil, nil], + + 'ldap://host.com:6666/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen)' => + ['ldap', 'host.com', 6666, + 'o=University%20of%20Michigan,c=US', + nil, 'sub', '(cn=Babs%20Jensen)', nil], + + 'ldap://ldap.itd.umich.edu/c=GB?objectClass?one' => + ['ldap', 'ldap.itd.umich.edu', URI::LDAP::DEFAULT_PORT, + 'c=GB', + 'objectClass', 'one', nil, nil], + + 'ldap://ldap.question.com/o=Question%3f,c=US?mail' => + ['ldap', 'ldap.question.com', URI::LDAP::DEFAULT_PORT, + 'o=Question%3f,c=US', + 'mail', nil, nil, nil], + + 'ldap://ldap.netscape.com/o=Babsco,c=US??(int=%5c00%5c00%5c00%5c04)' => + ['ldap', 'ldap.netscape.com', URI::LDAP::DEFAULT_PORT, + 'o=Babsco,c=US', + nil, '(int=%5c00%5c00%5c00%5c04)', nil, nil], + + 'ldap:///??sub??bindname=cn=Manager%2co=Foo' => + ['ldap', nil, URI::LDAP::DEFAULT_PORT, + '', + nil, 'sub', nil, 'bindname=cn=Manager%2co=Foo'], + + 'ldap:///??sub??!bindname=cn=Manager%2co=Foo' => + ['ldap', nil, URI::LDAP::DEFAULT_PORT, + '', + nil, 'sub', nil, '!bindname=cn=Manager%2co=Foo'], + }.each do |url, ary| + u = URI.parse(url) + assert_equal(ary, uri_to_ary(u)) + end + end + + def test_select + u = URI.parse('ldap:///??sub??!bindname=cn=Manager%2co=Foo') + assert_equal(uri_to_ary(u), u.select(*u.component)) + assert_raises(ArgumentError) do + u.select(:scheme, :host, :not_exist, :port) + end + end +end + + +end |