@@ -7,13 +7,13 @@ def setup
7
7
end
8
8
9
9
def test_user_valid_login
10
- user = @domain . valid_login? ( 'calavera ' , 'passworD1' )
11
- assert_equal 'uid=calavera ,dc=github,dc=com' , user . dn
10
+ assert user = @domain . valid_login? ( 'user1 ' , 'passworD1' )
11
+ assert_equal 'uid=user1,ou=People ,dc=github,dc=com' , user . dn
12
12
end
13
13
14
14
def test_user_with_invalid_password
15
- assert !@domain . valid_login? ( 'calavera ' , 'foo' ) ,
16
- "Login `calavera ` expected to be invalid with password `foo`"
15
+ assert !@domain . valid_login? ( 'user1 ' , 'foo' ) ,
16
+ "Login `user1 ` expected to be invalid with password `foo`"
17
17
end
18
18
19
19
def test_user_with_invalid_login
@@ -22,115 +22,118 @@ def test_user_with_invalid_login
22
22
end
23
23
24
24
def test_groups_in_server
25
- assert_equal 2 , @domain . groups ( %w( Enterprise People ) ) . size
25
+ assert_equal 2 , @domain . groups ( %w( ghe-users ghe-admins ) ) . size
26
26
end
27
27
28
28
def test_user_in_group
29
- user = @domain . valid_login? ( 'calavera ' , 'passworD1' )
29
+ assert user = @domain . valid_login? ( 'user1 ' , 'passworD1' )
30
30
31
- assert @domain . is_member? ( user , %w( Enterprise People ) ) ,
32
- "Expected `Enterprise ` or `Poeple ` to include the member `#{ user . dn } `"
31
+ assert @domain . is_member? ( user , %w( ghe-users ghe-admins ) ) ,
32
+ "Expected `ghe-users ` or `ghe-admins ` to include the member `#{ user . dn } `"
33
33
end
34
34
35
35
def test_user_not_in_different_group
36
- user = @domain . valid_login? ( 'calavera ' , 'passworD1' )
36
+ user = @domain . valid_login? ( 'user1 ' , 'passworD1' )
37
37
38
- assert ! @domain . is_member? ( user , %w( People ) ) ,
39
- "Expected `Poeple ` not to include the member `#{ user . dn } `"
38
+ refute @domain . is_member? ( user , %w( ghe-admins ) ) ,
39
+ "Expected `ghe-admins ` not to include the member `#{ user . dn } `"
40
40
end
41
41
42
42
def test_user_without_group
43
- user = @domain . valid_login? ( 'ldaptest ' , 'secret ' )
43
+ user = @domain . valid_login? ( 'groupless-user1 ' , 'passworD1 ' )
44
44
45
- assert !@domain . is_member? ( user , %w( People ) ) ,
46
- "Expected `People ` not to include the member `#{ user . dn } `"
45
+ assert !@domain . is_member? ( user , %w( all-users ) ) ,
46
+ "Expected `all-users ` not to include the member `#{ user . dn } `"
47
47
end
48
48
49
- def test_authenticate_doesnt_return_invalid_users
50
- user = @domain . authenticate! ( 'calavera ' , 'passworD1' )
51
- assert_equal 'uid=calavera ,dc=github,dc=com' , user . dn
49
+ def test_authenticate_returns_valid_users
50
+ user = @domain . authenticate! ( 'user1 ' , 'passworD1' )
51
+ assert_equal 'uid=user1,ou=People ,dc=github,dc=com' , user . dn
52
52
end
53
53
54
54
def test_authenticate_doesnt_return_invalid_users
55
- assert ! @domain . authenticate! ( 'calavera ' , 'foo' ) ,
55
+ refute @domain . authenticate! ( 'user1 ' , 'foo' ) ,
56
56
"Expected `authenticate!` to not return an invalid user"
57
57
end
58
58
59
59
def test_authenticate_check_valid_user_and_groups
60
- user = @domain . authenticate! ( 'calavera ' , 'passworD1' , %w( Enterprise People ) )
60
+ user = @domain . authenticate! ( 'user1 ' , 'passworD1' , %w( ghe-users ghe-admins ) )
61
61
62
- assert_equal 'uid=calavera ,dc=github,dc=com' , user . dn
62
+ assert_equal 'uid=user1,ou=People ,dc=github,dc=com' , user . dn
63
63
end
64
64
65
65
def test_authenticate_doesnt_return_valid_users_in_different_groups
66
- assert ! @domain . authenticate! ( 'calavera ' , 'passworD1' , %w( People ) ) ,
66
+ refute @domain . authenticate! ( 'user1 ' , 'passworD1' , %w( ghe-admins ) ) ,
67
67
"Expected `authenticate!` to not return an user"
68
68
end
69
69
70
70
def test_membership_empty_for_non_members
71
- user = @ldap . domain ( 'uid=calavera ,dc=github,dc=com' ) . bind
71
+ user = @ldap . domain ( 'uid=user1,ou=People ,dc=github,dc=com' ) . bind
72
72
73
- assert @domain . membership ( user , %w( People ) ) . empty? ,
74
- "Expected `calavera ` not to be a member of `People `."
73
+ assert @domain . membership ( user , %w( ghe-admins ) ) . empty? ,
74
+ "Expected `user1 ` not to be a member of `ghe-admins `."
75
75
end
76
76
77
77
def test_membership_groups_for_members
78
- user = @ldap . domain ( 'uid=calavera ,dc=github,dc=com' ) . bind
79
- groups = @domain . membership ( user , %w( Enterprise People ) )
78
+ user = @ldap . domain ( 'uid=user1,ou=People ,dc=github,dc=com' ) . bind
79
+ groups = @domain . membership ( user , %w( ghe-users ghe-admins ) )
80
80
81
81
assert_equal 1 , groups . size
82
- assert_equal 'cn=Enterprise ,ou=Group ,dc=github,dc=com' , groups . first . dn
82
+ assert_equal 'cn=ghe-users ,ou=Groups ,dc=github,dc=com' , groups . first . dn
83
83
end
84
84
85
85
def test_membership_with_virtual_attributes
86
86
ldap = GitHub ::Ldap . new ( options . merge ( virtual_attributes : true ) )
87
- user = ldap . domain ( 'uid=calavera,dc=github,dc=com' ) . bind
88
- user [ :memberof ] = 'cn=Enterprise,ou=Group,dc=github,dc=com'
87
+
88
+ user = ldap . domain ( 'uid=user1,ou=People,dc=github,dc=com' ) . bind
89
+ user [ :memberof ] = 'cn=ghe-admins,ou=Groups,dc=github,dc=com'
89
90
90
91
domain = ldap . domain ( "dc=github,dc=com" )
91
- groups = domain . membership ( user , %w( Enterprise People ) )
92
+ groups = domain . membership ( user , %w( ghe-admins ) )
92
93
93
94
assert_equal 1 , groups . size
94
- assert_equal 'cn=Enterprise ,ou=Group ,dc=github,dc=com' , groups . first . dn
95
+ assert_equal 'cn=ghe-admins ,ou=Groups ,dc=github,dc=com' , groups . first . dn
95
96
end
96
97
97
98
def test_search
98
99
assert 1 , @domain . search (
99
100
attributes : %w( uid ) ,
100
- filter : Net ::LDAP ::Filter . eq ( 'uid' , 'calavera ' ) ) . size
101
+ filter : Net ::LDAP ::Filter . eq ( 'uid' , 'user1 ' ) ) . size
101
102
end
102
103
103
104
def test_search_override_base_name
104
105
assert 1 , @domain . search (
105
106
base : "this base name is incorrect" ,
106
107
attributes : %w( uid ) ,
107
- filter : Net ::LDAP ::Filter . eq ( 'uid' , 'calavera ' ) ) . size
108
+ filter : Net ::LDAP ::Filter . eq ( 'uid' , 'user1 ' ) ) . size
108
109
end
109
110
110
111
def test_user_exists
111
- assert_equal 'uid=calavera,dc=github,dc=com' , @domain . user? ( 'calavera' ) . dn
112
+ assert user = @domain . user? ( 'user1' )
113
+ assert_equal 'uid=user1,ou=People,dc=github,dc=com' , user . dn
112
114
end
113
115
114
116
def test_user_wildcards_are_filtered
115
- assert ! @domain . user? ( 'cal *' ) , 'Expected uid `cal *` to not complete'
117
+ refute @domain . user? ( 'user *' ) , 'Expected uid `user *` to not complete'
116
118
end
117
119
118
120
def test_user_does_not_exist
119
- assert ! @domain . user? ( 'foobar' ) , 'Expected uid `foobar` to not exist.'
121
+ refute @domain . user? ( 'foobar' ) , 'Expected uid `foobar` to not exist.'
120
122
end
121
123
122
124
def test_user_returns_every_attribute
123
- assert_equal [ 'calavera@github.com' ] , @domain . user? ( 'calavera' ) [ :mail ]
125
+ assert user = @domain . user? ( 'user1' )
126
+ assert_equal [ 'user1@github.com' ] , user [ :mail ]
124
127
end
125
128
126
129
def test_auth_binds
127
- user = @domain . user? ( 'calavera ' )
128
- assert @domain . auth ( user , 'passworD1' ) , 'Expected user to be bound. '
130
+ assert user = @domain . user? ( 'user1 ' )
131
+ assert @domain . auth ( user , 'passworD1' ) , 'Expected user to bind '
129
132
end
130
133
131
134
def test_auth_does_not_bind
132
- user = @domain . user? ( 'calavera ' )
133
- assert ! @domain . auth ( user , 'foo' ) , 'Expected user not to be bound. '
135
+ assert user = @domain . user? ( 'user1 ' )
136
+ refute @domain . auth ( user , 'foo' ) , 'Expected user not not bind '
134
137
end
135
138
end
136
139
@@ -143,72 +146,54 @@ class GitHubLdapDomainUnauthenticatedTest < GitHub::Ldap::UnauthenticatedTest
143
146
end
144
147
145
148
class GitHubLdapDomainNestedGroupsTest < GitHub ::Ldap ::Test
146
- def self . test_server_options
147
- { user_fixtures : FIXTURES . join ( 'github-with-subgroups.ldif' ) . to_s }
148
- end
149
-
150
149
def setup
151
150
@ldap = GitHub ::Ldap . new ( options )
152
151
@domain = @ldap . domain ( "dc=github,dc=com" )
153
152
end
154
153
155
154
def test_membership_in_subgroups
156
- user = @ldap . domain ( 'uid=rubiojr ,ou=users ,dc=github,dc=com' ) . bind
155
+ user = @ldap . domain ( 'uid=user1 ,ou=People ,dc=github,dc=com' ) . bind
157
156
158
- assert @domain . is_member? ( user , %w( enterprise-ops ) ) ,
159
- "Expected `enterprise-ops ` to include the member `#{ user . dn } `"
157
+ assert @domain . is_member? ( user , %w( nested-groups ) ) ,
158
+ "Expected `nested-groups ` to include the member `#{ user . dn } `"
160
159
end
161
160
162
161
def test_membership_in_deeply_nested_subgroups
163
- assert user = @ldap . domain ( 'uid=user1.1.1.1 ,ou=users ,dc=github,dc=com' ) . bind
162
+ assert user = @ldap . domain ( 'uid=user1,ou=People ,dc=github,dc=com' ) . bind
164
163
165
- assert @domain . is_member? ( user , %w( group1 ) ) ,
166
- "Expected `group1 ` to include the member `#{ user . dn } ` via deep recursion"
164
+ assert @domain . is_member? ( user , %w( n-depth-nested-group4 ) ) ,
165
+ "Expected `n-depth-nested-group4 ` to include the member `#{ user . dn } ` via deep recursion"
167
166
end
168
167
end
169
168
170
169
class GitHubLdapPosixGroupsWithRecursionFallbackTest < GitHub ::Ldap ::Test
171
- def self . test_server_options
172
- {
173
- custom_schemas : FIXTURES . join ( 'posixGroup.schema.ldif' ) ,
174
- user_fixtures : FIXTURES . join ( 'github-with-posixGroups.ldif' ) . to_s ,
175
- # so we exercise the recursive group search fallback
176
- recursive_group_search_fallback : true
177
- }
178
- end
179
-
180
170
def setup
181
- @ldap = GitHub ::Ldap . new ( options )
171
+ opts = options . merge \
172
+ recursive_group_search_fallback : true
173
+ @ldap = GitHub ::Ldap . new ( opts )
182
174
@domain = @ldap . domain ( "dc=github,dc=com" )
183
- @cn = "enterprise- posix-devs "
175
+ @cn = "posix-group1 "
184
176
end
185
177
186
178
def test_membership_for_posixGroups
187
- assert user = @ldap . domain ( 'uid=mtodd ,ou=users ,dc=github,dc=com' ) . bind
179
+ assert user = @ldap . domain ( 'uid=user1 ,ou=People ,dc=github,dc=com' ) . bind
188
180
189
181
assert @domain . is_member? ( user , [ @cn ] ) ,
190
182
"Expected `#{ @cn } ` to include the member `#{ user . dn } `"
191
183
end
192
184
end
193
185
194
186
class GitHubLdapPosixGroupsWithoutRecursionTest < GitHub ::Ldap ::Test
195
- def self . test_server_options
196
- {
197
- custom_schemas : FIXTURES . join ( 'posixGroup.schema.ldif' ) ,
198
- user_fixtures : FIXTURES . join ( 'github-with-posixGroups.ldif' ) . to_s ,
199
- # so we test the test the non-recursive group membership search
200
- recursive_group_search_fallback : false
201
- }
202
- end
203
-
204
187
def setup
205
- @ldap = GitHub ::Ldap . new ( options )
188
+ opts = options . merge \
189
+ recursive_group_search_fallback : false
190
+ @ldap = GitHub ::Ldap . new ( opts )
206
191
@domain = @ldap . domain ( "dc=github,dc=com" )
207
- @cn = "enterprise- posix-devs "
192
+ @cn = "posix-group1 "
208
193
end
209
194
210
195
def test_membership_for_posixGroups
211
- assert user = @ldap . domain ( 'uid=mtodd ,ou=users ,dc=github,dc=com' ) . bind
196
+ assert user = @ldap . domain ( 'uid=user1 ,ou=People ,dc=github,dc=com' ) . bind
212
197
213
198
assert @domain . is_member? ( user , [ @cn ] ) ,
214
199
"Expected `#{ @cn } ` to include the member `#{ user . dn } `"
@@ -218,25 +203,17 @@ def test_membership_for_posixGroups
218
203
# Specifically testing that this doesn't break when posixGroups are not
219
204
# supported.
220
205
class GitHubLdapWithoutPosixGroupsTest < GitHub ::Ldap ::Test
221
- def self . test_server_options
222
- {
223
- custom_schemas : FIXTURES . join ( 'posixGroup.schema.ldif' ) ,
224
- user_fixtures : FIXTURES . join ( 'github-with-posixGroups.ldif' ) . to_s ,
225
- # so we test the test the non-recursive group membership search
226
- recursive_group_search_fallback : false ,
227
- # explicitly disable posixGroup support (even if the schema supports it)
228
- posix_support : false
229
- }
230
- end
231
-
232
206
def setup
233
- @ldap = GitHub ::Ldap . new ( options )
207
+ opts = options . merge \
208
+ recursive_group_search_fallback : false , # test non-recursive group membership search
209
+ posix_support : false # disable posixGroup support
210
+ @ldap = GitHub ::Ldap . new ( opts )
234
211
@domain = @ldap . domain ( "dc=github,dc=com" )
235
- @cn = "enterprise- posix-devs "
212
+ @cn = "posix-group1 "
236
213
end
237
214
238
215
def test_membership_for_posixGroups
239
- assert user = @ldap . domain ( 'uid=mtodd ,ou=users ,dc=github,dc=com' ) . bind
216
+ assert user = @ldap . domain ( 'uid=user1 ,ou=People ,dc=github,dc=com' ) . bind
240
217
241
218
refute @domain . is_member? ( user , [ @cn ] ) ,
242
219
"Expected `#{ @cn } ` to not include the member `#{ user . dn } `"
0 commit comments