ruby-ldapserver 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,40 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+ require 'ldap/server/syntax'
3
+
4
+ class SyntaxTest < Test::Unit::TestCase
5
+
6
+ def test_integer
7
+ s = LDAP::Server::Syntax.find("1.3.6.1.4.1.1466.115.121.1.27")
8
+ assert_equal(LDAP::Server::Syntax, s.class)
9
+ assert_equal("Integer", s.desc)
10
+ assert_equal("( 1.3.6.1.4.1.1466.115.121.1.27 DESC 'Integer' )", s.to_def)
11
+ assert(!s.nhr)
12
+ assert(s.match("123"))
13
+ assert(!s.match("12A"))
14
+ assert_equal(123, s.value_from_s("123"))
15
+ assert_equal("456", s.value_to_s(456))
16
+ assert_equal("789", s.value_to_s("789"))
17
+ end
18
+
19
+ def test_unknown
20
+ s = LDAP::Server::Syntax.find("1.4.7.1")
21
+ assert_equal(LDAP::Server::Syntax, s.class)
22
+ assert_equal("1.4.7.1", s.oid)
23
+ assert_equal("1.4.7.1", s.to_s)
24
+ assert_equal("( 1.4.7.1 )", s.to_def)
25
+ assert_equal("false", s.value_to_s(false)) # generic value_to_s
26
+ assert_equal("true", s.value_from_s("true")) # generic value_from_s
27
+ assert(s.match("123")) # match anything
28
+ end
29
+
30
+ def test_nil
31
+ s = LDAP::Server::Syntax.find(nil)
32
+ assert_equal(nil, s)
33
+ end
34
+
35
+ def test_from_def
36
+ s = LDAP::Server::Syntax.from_def("( 1.2.3 DESC 'foobar' )")
37
+ assert_equal("1.2.3", s.oid)
38
+ assert_equal("foobar", s.desc)
39
+ end
40
+ end
@@ -0,0 +1,2 @@
1
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'test/unit'
data/test/util_test.rb ADDED
@@ -0,0 +1,51 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+ require 'ldap/server/util'
3
+
4
+ class TestLdapUtil < Test::Unit::TestCase
5
+ def test_split_dn
6
+ # examples from RFC 2253
7
+ assert_equal(
8
+ [{"cn"=>"Steve Kille"},{"o"=>"Isode Limited"},{"c"=>"GB"}],
9
+ LDAP::Server::Operation.split_dn("CN=Steve Kille , O=Isode Limited;C=GB")
10
+ )
11
+ assert_equal(
12
+ [{"ou"=>"Sales","cn"=>"J. Smith"},{"o"=>"Widget Inc."},{"c"=>"US"}],
13
+ LDAP::Server::Operation.split_dn("OU=Sales+CN=J. Smith,O=Widget Inc.,C=US")
14
+ )
15
+ assert_equal(
16
+ [{"cn"=>"L. Eagle"},{"o"=>"Sue, Grabbit and Runn"},{"c"=>"GB"}],
17
+ LDAP::Server::Operation.split_dn("CN=L. Eagle,O=Sue\\, Grabbit and Runn,C=GB")
18
+ )
19
+ assert_equal(
20
+ [{"cn"=>"Before\rAfter"},{"o"=>"Test"},{"c"=>"GB"}],
21
+ LDAP::Server::Operation.split_dn("CN=Before\\0DAfter,O=Test,C=GB")
22
+ )
23
+ res = LDAP::Server::Operation.split_dn("SN=Lu\\C4\\8Di\\C4\\87")
24
+ assert_equal([{"sn"=>"Lu\xc4\x8di\xc4\x87"}], res)
25
+
26
+ # Just for fun, let's try parsing it as UTF8
27
+ r = res[0]["sn"].scan(/./u)
28
+ assert_equal(["L", "u", "\xc4\x8d", "i", "\xc4\x87"], r)
29
+ end
30
+
31
+ def test_join_dn
32
+ # examples from RFC 2253
33
+ assert_equal(
34
+ "cn=Steve Kille,o=Isode Limited,c=GB",
35
+ LDAP::Server::Operation.join_dn([{"cn"=>"Steve Kille"},{"o"=>"Isode Limited"},{"c"=>"GB"}])
36
+ )
37
+ # These are equivalent
38
+ d1 = "ou=Sales+cn=J. Smith,o=Widget Inc.,c=US"
39
+ d2 = "cn=J. Smith+ou=Sales,o=Widget Inc.,c=US"
40
+ assert_equal(d1,
41
+ LDAP::Server::Operation.join_dn([[["ou","Sales"],["cn","J. Smith"]],[["o","Widget Inc."]],["c","US"]])
42
+ )
43
+ r = LDAP::Server::Operation.join_dn([{"ou"=>"Sales","cn"=>"J. Smith"},{"o"=>"Widget Inc."},{"c"=>"US"}])
44
+ assert(r == d1 || r == d2, "got #{r.inspect}, expected #{d1.inspect} or #{d2.inspect}")
45
+ assert_equal(
46
+ "cn=L. Eagle,o=Sue\\, Grabbit and Runn,c=GB",
47
+ LDAP::Server::Operation.join_dn([{"cn"=>"L. Eagle"},{"o"=>"Sue, Grabbit and Runn"},{"c"=>"GB"}])
48
+ )
49
+ end
50
+ end
51
+
metadata ADDED
@@ -0,0 +1,98 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby-ldapserver
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.1
5
+ platform: ruby
6
+ authors:
7
+ - Brian Candler
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-01-16 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: hoe
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.4.0
23
+ version:
24
+ description: ruby-ldapserver is a lightweight, pure-Ruby skeleton for implementing LDAP server applications.
25
+ email: B.Candler@pobox.com
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - Manifest.txt
32
+ files:
33
+ - COPYING
34
+ - ChangeLog
35
+ - Manifest.txt
36
+ - README
37
+ - Rakefile
38
+ - examples/README
39
+ - examples/mkcert.rb
40
+ - examples/rbslapd1.rb
41
+ - examples/rbslapd2.rb
42
+ - examples/rbslapd3.rb
43
+ - examples/speedtest.rb
44
+ - lib/ldap/server.rb
45
+ - lib/ldap/server/connection.rb
46
+ - lib/ldap/server/filter.rb
47
+ - lib/ldap/server/match.rb
48
+ - lib/ldap/server/operation.rb
49
+ - lib/ldap/server/preforkserver.rb
50
+ - lib/ldap/server/result.rb
51
+ - lib/ldap/server/schema.rb
52
+ - lib/ldap/server/server.rb
53
+ - lib/ldap/server/syntax.rb
54
+ - lib/ldap/server/tcpserver.rb
55
+ - lib/ldap/server/util.rb
56
+ - lib/ldap/server/version.rb
57
+ - test/core.schema
58
+ - test/encoding_test.rb
59
+ - test/filter_test.rb
60
+ - test/match_test.rb
61
+ - test/schema_test.rb
62
+ - test/syntax_test.rb
63
+ - test/test_helper.rb
64
+ - test/util_test.rb
65
+ has_rdoc: true
66
+ homepage: http://rubyforge.org/projects/ruby-ldapserver
67
+ post_install_message:
68
+ rdoc_options:
69
+ - --main
70
+ - README.txt
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ version:
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ requirements: []
86
+
87
+ rubyforge_project: ruby-ldapserver
88
+ rubygems_version: 1.0.1
89
+ signing_key:
90
+ specification_version: 2
91
+ summary: A pure-Ruby framework for building LDAP servers
92
+ test_files:
93
+ - test/encoding_test.rb
94
+ - test/filter_test.rb
95
+ - test/match_test.rb
96
+ - test/schema_test.rb
97
+ - test/syntax_test.rb
98
+ - test/util_test.rb