@@ -2,6 +2,7 @@ package auth
2
2
3
3
import (
4
4
"errors"
5
+ "strings"
5
6
"sync"
6
7
"testing"
7
8
"time"
@@ -179,36 +180,90 @@ func TestStreamingCredentialsProvider(t *testing.T) {
179
180
}
180
181
181
182
func TestBasicCredentials (t * testing.T ) {
182
- t .Run ("basic auth" , func (t * testing.T ) {
183
- creds := NewBasicCredentials ("user1" , "pass1" )
184
- username , password := creds .BasicAuth ()
185
- if username != "user1" {
186
- t .Fatalf ("expected username 'user1', got '%s'" , username )
187
- }
188
- if password != "pass1" {
189
- t .Fatalf ("expected password 'pass1', got '%s'" , password )
190
- }
191
- })
192
-
193
- t .Run ("raw credentials" , func (t * testing.T ) {
194
- creds := NewBasicCredentials ("user1" , "pass1" )
195
- raw := creds .RawCredentials ()
196
- expected := "user1:pass1"
197
- if raw != expected {
198
- t .Fatalf ("expected raw credentials '%s', got '%s'" , expected , raw )
199
- }
200
- })
183
+ tests := []struct {
184
+ name string
185
+ username string
186
+ password string
187
+ expectedUser string
188
+ expectedPass string
189
+ expectedRaw string
190
+ }{
191
+ {
192
+ name : "basic auth" ,
193
+ username : "user1" ,
194
+ password : "pass1" ,
195
+ expectedUser : "user1" ,
196
+ expectedPass : "pass1" ,
197
+ expectedRaw : "user1:pass1" ,
198
+ },
199
+ {
200
+ name : "empty username" ,
201
+ username : "" ,
202
+ password : "pass1" ,
203
+ expectedUser : "" ,
204
+ expectedPass : "pass1" ,
205
+ expectedRaw : ":pass1" ,
206
+ },
207
+ {
208
+ name : "empty password" ,
209
+ username : "user1" ,
210
+ password : "" ,
211
+ expectedUser : "user1" ,
212
+ expectedPass : "" ,
213
+ expectedRaw : "user1:" ,
214
+ },
215
+ {
216
+ name : "both username and password empty" ,
217
+ username : "" ,
218
+ password : "" ,
219
+ expectedUser : "" ,
220
+ expectedPass : "" ,
221
+ expectedRaw : ":" ,
222
+ },
223
+ {
224
+ name : "special characters" ,
225
+ username : "user:1" ,
226
+ password : "pa:ss@!#" ,
227
+ expectedUser : "user:1" ,
228
+ expectedPass : "pa:ss@!#" ,
229
+ expectedRaw : "user:1:pa:ss@!#" ,
230
+ },
231
+ {
232
+ name : "unicode characters" ,
233
+ username : "ユーザー" ,
234
+ password : "密碼123" ,
235
+ expectedUser : "ユーザー" ,
236
+ expectedPass : "密碼123" ,
237
+ expectedRaw : "ユーザー:密碼123" ,
238
+ },
239
+ {
240
+ name : "long credentials" ,
241
+ username : strings .Repeat ("u" , 1000 ),
242
+ password : strings .Repeat ("p" , 1000 ),
243
+ expectedUser : strings .Repeat ("u" , 1000 ),
244
+ expectedPass : strings .Repeat ("p" , 1000 ),
245
+ expectedRaw : strings .Repeat ("u" , 1000 ) + ":" + strings .Repeat ("p" , 1000 ),
246
+ },
247
+ }
201
248
202
- t .Run ("empty username" , func (t * testing.T ) {
203
- creds := NewBasicCredentials ("" , "pass1" )
204
- username , password := creds .BasicAuth ()
205
- if username != "" {
206
- t .Fatalf ("expected empty username, got '%s'" , username )
207
- }
208
- if password != "pass1" {
209
- t .Fatalf ("expected password 'pass1', got '%s'" , password )
210
- }
211
- })
249
+ for _ , tt := range tests {
250
+ t .Run (tt .name , func (t * testing.T ) {
251
+ creds := NewBasicCredentials (tt .username , tt .password )
252
+
253
+ user , pass := creds .BasicAuth ()
254
+ if user != tt .expectedUser {
255
+ t .Errorf ("BasicAuth() username = %q; want %q" , user , tt .expectedUser )
256
+ }
257
+ if pass != tt .expectedPass {
258
+ t .Errorf ("BasicAuth() password = %q; want %q" , pass , tt .expectedPass )
259
+ }
260
+
261
+ raw := creds .RawCredentials ()
262
+ if raw != tt .expectedRaw {
263
+ t .Errorf ("RawCredentials() = %q; want %q" , raw , tt .expectedRaw )
264
+ }
265
+ })
266
+ }
212
267
}
213
268
214
269
func TestReAuthCredentialsListener (t * testing.T ) {
0 commit comments