-
Notifications
You must be signed in to change notification settings - Fork 252
/
Copy pathtest_password_modify.rb
93 lines (71 loc) · 3.14 KB
/
test_password_modify.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
require_relative '../test_helper'
class TestPasswordModifyIntegration < LDAPIntegrationTestCase
def setup
super
@admin_account = { dn: 'cn=admin,dc=rubyldap,dc=com', password: 'passworD1', method: :simple }
@ldap.authenticate @admin_account[:dn], @admin_account[:password]
@dn = 'uid=modify-password-user1,ou=People,dc=rubyldap,dc=com'
attrs = {
objectclass: %w(top inetOrgPerson organizationalPerson person),
uid: 'modify-password-user1',
cn: 'modify-password-user1',
sn: 'modify-password-user1',
mail: 'modify-password-user1@rubyldap.com',
userPassword: 'passworD1',
}
unless @ldap.search(base: @dn, scope: Net::LDAP::SearchScope_BaseObject)
assert @ldap.add(dn: @dn, attributes: attrs), @ldap.get_operation_result.inspect
end
assert @ldap.search(base: @dn, scope: Net::LDAP::SearchScope_BaseObject)
@auth = {
method: :simple,
username: @dn,
password: 'passworD1',
}
end
def test_password_modify
assert @ldap.password_modify(dn: @dn,
auth: @auth,
old_password: 'passworD1',
new_password: 'passworD2')
assert @ldap.get_operation_result.extended_response.nil?,
'Should not have generated a new password'
refute @ldap.bind(username: @dn, password: 'passworD1', method: :simple),
'Old password should no longer be valid'
assert @ldap.bind(username: @dn, password: 'passworD2', method: :simple),
'New password should be valid'
end
def test_password_modify_generate
assert @ldap.password_modify(dn: @dn,
auth: @auth,
old_password: 'passworD1')
generated_password = @ldap.get_operation_result.extended_response[0][0]
assert generated_password, 'Should have generated a password'
refute @ldap.bind(username: @dn, password: 'passworD1', method: :simple),
'Old password should no longer be valid'
assert @ldap.bind(username: @dn, password: generated_password, method: :simple),
'New password should be valid'
end
def test_password_modify_generate_no_old_password
assert @ldap.password_modify(dn: @dn,
auth: @auth)
generated_password = @ldap.get_operation_result.extended_response[0][0]
assert generated_password, 'Should have generated a password'
refute @ldap.bind(username: @dn, password: 'passworD1', method: :simple),
'Old password should no longer be valid'
assert @ldap.bind(username: @dn, password: generated_password, method: :simple),
'New password should be valid'
end
def test_password_modify_overwrite_old_password
assert @ldap.password_modify(dn: @dn,
auth: @admin_account,
new_password: 'passworD3')
refute @ldap.bind(username: @dn, password: 'passworD1', method: :simple),
'Old password should no longer be valid'
assert @ldap.bind(username: @dn, password: 'passworD3', method: :simple),
'New password should be valid'
end
def teardown
@ldap.delete dn: @dn
end
end