ucb_ldap 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,182 +0,0 @@
1
- require_relative "spec_helper"
2
-
3
-
4
- describe "UCB::LDAP" do
5
- before(:all) do
6
- UCB::LDAP.clear_instance_variables
7
- end
8
-
9
- after(:all) do
10
- UCB::LDAP.clear_instance_variables
11
- UCB::LDAP.host = HOST_TEST
12
- end
13
-
14
- it "should define host constants" do
15
- UCB::LDAP::HOST_PRODUCTION.should == 'nds.berkeley.edu'
16
- UCB::LDAP::HOST_TEST.should == 'nds-test.berkeley.edu'
17
- end
18
-
19
- it "should default host to production" do
20
- UCB::LDAP.host.should == UCB::LDAP::HOST_PRODUCTION
21
- end
22
-
23
- it "should allow host to be reset" do
24
- UCB::LDAP.host = 'foo'
25
- UCB::LDAP.host.should == 'foo'
26
- end
27
-
28
- it "should reconnect when host changes" do
29
- UCB::LDAP.host = HOST_PRODUCTION
30
- net_ldap1 = UCB::LDAP.net_ldap
31
- net_ldap1.should equal(UCB::LDAP.net_ldap)
32
-
33
- UCB::LDAP.host = HOST_TEST
34
- net_ldap1.should_not equal(UCB::LDAP.net_ldap)
35
- end
36
-
37
- it "should raise BindFailedException given bad host name" do
38
- UCB::LDAP.host = 'bogus'
39
- lambda { UCB::LDAP.new_net_ldap }.should raise_error(BindFailedException)
40
- end
41
- end
42
-
43
-
44
- describe "UCB::LDAP binding with rails" do
45
- before do
46
- UCB::LDAP.clear_instance_variables
47
- end
48
-
49
- after(:all) do
50
- UCB::LDAP.clear_instance_variables
51
- UCB::LDAP.host = HOST_TEST
52
- end
53
-
54
- it "bind_for_rails should authenticate with environment-specific bind" do
55
- bind_file = "#{File.dirname(__FILE__)}/rails_binds.yml"
56
- UCB::LDAP.should_receive(:authenticate).with('username_development', 'password_development')
57
- UCB::LDAP.bind_for_rails(bind_file, 'development')
58
-
59
- lambda { UCB::LDAP.bind_for_rails(bind_file, 'bogus') }.should raise_error
60
- end
61
-
62
- it "bind_for_rails should raise exception if bind file not found" do
63
- missing_file = "#{File.dirname(__FILE__)}/missing.yml"
64
- lambda { UCB::LDAP.bind_for_rails(missing_file, 'development') }.should raise_error # no error raised
65
- end
66
- end
67
-
68
-
69
- describe "UCB::LDAP.new_net_ldap" do
70
- before(:all) do
71
- UCB::LDAP.clear_instance_variables
72
- UCB::LDAP.host = HOST_TEST
73
- @net_ldap = UCB::LDAP.new_net_ldap
74
- end
75
-
76
- after(:all) do
77
- UCB::LDAP.clear_instance_variables
78
- UCB::LDAP.host = HOST_TEST
79
- end
80
-
81
- it "should return Net:LDAP instance" do
82
- @net_ldap.should be_instance_of(Net::LDAP)
83
- end
84
-
85
- it "should use host from UCB::LDAP.host" do
86
- @net_ldap.host.should == HOST_TEST
87
-
88
- @net_ldap = UCB::LDAP.new_net_ldap
89
- @net_ldap.host.should equal(UCB::LDAP.host)
90
- end
91
-
92
- it "should use port 636" do
93
- @net_ldap.port.should == 636
94
- end
95
-
96
- it "should use simple_tls encryption" do
97
- @net_ldap.instance_variable_get(:@encryption).should == {:method => :simple_tls}
98
- end
99
-
100
- it "should use anonymous authorization" do
101
- @net_ldap.instance_variable_get(:@auth).should == {:method => :anonymous}
102
- end
103
- end
104
-
105
-
106
- describe "UCB::LDAP.net_ldap w/anonymous bind" do
107
- it "should return a cached Net::LDAP instance" do
108
- @net_ldap_1 = UCB::LDAP.net_ldap
109
- @net_ldap_1.should be_instance_of(Net::LDAP)
110
-
111
- @net_ldap_2 = UCB::LDAP.net_ldap
112
- @net_ldap_2.should equal(@net_ldap_1)
113
- end
114
- end
115
-
116
-
117
- describe "UCB::LDAP.authenticate" do
118
- before(:all) do
119
- UCB::LDAP.clear_instance_variables
120
- UCB::LDAP.host = HOST_TEST
121
- end
122
-
123
- after(:all) do
124
- UCB::LDAP.clear_instance_variables
125
- UCB::LDAP.host = HOST_TEST
126
- end
127
-
128
- it "should raise BindFailedException with bad username/password" do
129
- lambda { UCB::LDAP.authenticate("bogus", "bogus") }.should raise_error(BindFailedException)
130
- end
131
-
132
- it "should create new Net::LDAP instance" do
133
- net_ldap = UCB::LDAP.net_ldap
134
- org_bind()
135
- UCB::LDAP.net_ldap.should_not equal(net_ldap)
136
- end
137
- end
138
-
139
-
140
- describe "UCB::LDAP.clear_authentication" do
141
- it "should remove authentication and revert to anonymous bind" do
142
- org_bind
143
- net_ldap1 = UCB::LDAP.net_ldap
144
- net_ldap1.instance_variable_get(:@auth)[:method].should == :simple
145
-
146
- UCB::LDAP.clear_authentication
147
- UCB::LDAP.net_ldap.instance_variable_get(:@auth)[:method].should == :anonymous
148
- net_ldap1.should_not equal(UCB::LDAP.net_ldap)
149
- end
150
- end
151
-
152
-
153
- describe UCB::LDAP, "date/datetime parsing" do
154
- before(:all) do
155
- @local_date_string = '20010203000000'
156
- end
157
-
158
- it "parsing returns nil given nil" do
159
- UCB::LDAP.local_date_parse(nil).should be_nil
160
- UCB::LDAP.local_datetime_parse(nil).should be_nil
161
- end
162
-
163
- it "local_date_parse should take local DateTime and return local Date" do
164
- UCB::LDAP.local_date_parse('20010203000000').to_s.should == '2001-02-03'
165
- UCB::LDAP.local_date_parse('20010203235959').to_s.should == '2001-02-03'
166
- end
167
-
168
- it "local_date_parse should take UTC DateTime and return local Date" do
169
- UCB::LDAP.local_date_parse('20010203080000Z').to_s.should == '2001-02-03'
170
- UCB::LDAP.local_date_parse('20010203060000Z').to_s.should == '2001-02-02'
171
- end
172
-
173
- it "local_datetime_parse should take local DateTime and return local Date" do
174
- UCB::LDAP.local_datetime_parse('20010203000000').to_s.should == '2001-02-03T00:00:00-08:00'
175
- UCB::LDAP.local_datetime_parse('20010203235959').to_s.should == '2001-02-03T23:59:59-08:00'
176
- end
177
-
178
- it "local_datetime_parse should take UTC DateTime and return local Date" do
179
- UCB::LDAP.local_datetime_parse('20010203080000Z').to_s.should == '2001-02-03T00:00:00-08:00'
180
- UCB::LDAP.local_datetime_parse('20010203060000Z').to_s.should == '2001-02-02T22:00:00-08:00'
181
- end
182
- end