##// END OF EJS Templates
add test of replace port zero to 389 at unit auth_source_ldap_test....
Toshi MARUYAMA -
r6625:813f69a68984
parent child
Show More
@@ -1,80 +1,89
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2011 Jean-Philippe Lang
2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.expand_path('../../test_helper', __FILE__)
18 require File.expand_path('../../test_helper', __FILE__)
19
19
20 class AuthSourceLdapTest < ActiveSupport::TestCase
20 class AuthSourceLdapTest < ActiveSupport::TestCase
21 fixtures :auth_sources
21 fixtures :auth_sources
22
22
23 def setup
23 def setup
24 end
24 end
25
25
26 def test_create
26 def test_create
27 a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName')
27 a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName')
28 assert a.save
28 assert a.save
29 end
29 end
30
30
31 def test_should_strip_ldap_attributes
31 def test_should_strip_ldap_attributes
32 a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName',
32 a = AuthSourceLdap.new(:name => 'My LDAP', :host => 'ldap.example.net', :port => 389, :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName',
33 :attr_firstname => 'givenName ')
33 :attr_firstname => 'givenName ')
34 assert a.save
34 assert a.save
35 assert_equal 'givenName', a.reload.attr_firstname
35 assert_equal 'givenName', a.reload.attr_firstname
36 end
36 end
37
37
38 def test_replace_port_zero_to_389
39 a = AuthSourceLdap.new(
40 :name => 'My LDAP', :host => 'ldap.example.net', :port => 0,
41 :base_dn => 'dc=example,dc=net', :attr_login => 'sAMAccountName',
42 :attr_firstname => 'givenName ')
43 assert a.save
44 assert_equal 389, a.port
45 end
46
38 if ldap_configured?
47 if ldap_configured?
39 context '#authenticate' do
48 context '#authenticate' do
40 setup do
49 setup do
41 @auth = AuthSourceLdap.find(1)
50 @auth = AuthSourceLdap.find(1)
42 end
51 end
43
52
44 context 'with a valid LDAP user' do
53 context 'with a valid LDAP user' do
45 should 'return the user attributes' do
54 should 'return the user attributes' do
46 attributes = @auth.authenticate('example1','123456')
55 attributes = @auth.authenticate('example1','123456')
47 assert attributes.is_a?(Hash), "An hash was not returned"
56 assert attributes.is_a?(Hash), "An hash was not returned"
48 assert_equal 'Example', attributes[:firstname]
57 assert_equal 'Example', attributes[:firstname]
49 assert_equal 'One', attributes[:lastname]
58 assert_equal 'One', attributes[:lastname]
50 assert_equal 'example1@redmine.org', attributes[:mail]
59 assert_equal 'example1@redmine.org', attributes[:mail]
51 assert_equal @auth.id, attributes[:auth_source_id]
60 assert_equal @auth.id, attributes[:auth_source_id]
52 attributes.keys.each do |attribute|
61 attributes.keys.each do |attribute|
53 assert User.new.respond_to?("#{attribute}="), "Unexpected :#{attribute} attribute returned"
62 assert User.new.respond_to?("#{attribute}="), "Unexpected :#{attribute} attribute returned"
54 end
63 end
55 end
64 end
56 end
65 end
57
66
58 context 'with an invalid LDAP user' do
67 context 'with an invalid LDAP user' do
59 should 'return nil' do
68 should 'return nil' do
60 assert_equal nil, @auth.authenticate('nouser','123456')
69 assert_equal nil, @auth.authenticate('nouser','123456')
61 end
70 end
62 end
71 end
63
72
64 context 'without a login' do
73 context 'without a login' do
65 should 'return nil' do
74 should 'return nil' do
66 assert_equal nil, @auth.authenticate('','123456')
75 assert_equal nil, @auth.authenticate('','123456')
67 end
76 end
68 end
77 end
69
78
70 context 'without a password' do
79 context 'without a password' do
71 should 'return nil' do
80 should 'return nil' do
72 assert_equal nil, @auth.authenticate('edavis','')
81 assert_equal nil, @auth.authenticate('edavis','')
73 end
82 end
74 end
83 end
75
84
76 end
85 end
77 else
86 else
78 puts '(Test LDAP server not configured)'
87 puts '(Test LDAP server not configured)'
79 end
88 end
80 end
89 end
General Comments 0
You need to be logged in to leave comments. Login now