@@ -15,56 +15,86 @@ func TestParseURL(t *testing.T) {
15
15
db int
16
16
tls bool
17
17
err error
18
+ user string
19
+ pass string
18
20
}{
19
21
{
20
22
"redis://localhost:123/1" ,
21
23
"localhost:123" ,
22
24
1 , false , nil ,
25
+ "" , "" ,
23
26
},
24
27
{
25
28
"redis://localhost:123" ,
26
29
"localhost:123" ,
27
30
0 , false , nil ,
31
+ "" , "" ,
28
32
},
29
33
{
30
34
"redis://localhost/1" ,
31
35
"localhost:6379" ,
32
36
1 , false , nil ,
37
+ "" , "" ,
33
38
},
34
39
{
35
40
"redis://12345" ,
36
41
"12345:6379" ,
37
42
0 , false , nil ,
43
+ "" , "" ,
38
44
},
39
45
{
40
46
"rediss://localhost:123" ,
41
47
"localhost:123" ,
42
48
0 , true , nil ,
49
+ "" , "" ,
50
+ },
51
+ {
52
+ "redis://:bar@localhost:123" ,
53
+ "localhost:123" ,
54
+ 0 , false , nil ,
55
+ "" , "bar" ,
56
+ },
57
+ {
58
+ "redis://foo@localhost:123" ,
59
+ "localhost:123" ,
60
+ 0 , false , nil ,
61
+ "foo" , "" ,
62
+ },
63
+ {
64
+ "redis://foo:bar@localhost:123" ,
65
+ "localhost:123" ,
66
+ 0 , false , nil ,
67
+ "foo" , "bar" ,
43
68
},
44
69
{
45
70
"redis://localhost/?abc=123" ,
46
71
"" ,
47
72
0 , false , errors .New ("no options supported" ),
73
+ "" , "" ,
48
74
},
49
75
{
50
76
"http://google.com" ,
51
77
"" ,
52
78
0 , false , errors .New ("invalid redis URL scheme: http" ),
79
+ "" , "" ,
53
80
},
54
81
{
55
82
"redis://localhost/1/2/3/4" ,
56
83
"" ,
57
84
0 , false , errors .New ("invalid redis URL path: /1/2/3/4" ),
85
+ "" , "" ,
58
86
},
59
87
{
60
88
"12345" ,
61
89
"" ,
62
90
0 , false , errors .New ("invalid redis URL scheme: " ),
91
+ "" , "" ,
63
92
},
64
93
{
65
94
"redis://localhost/iamadatabase" ,
66
95
"" ,
67
96
0 , false , errors .New (`invalid redis database number: "iamadatabase"` ),
97
+ "" , "" ,
68
98
},
69
99
}
70
100
@@ -90,6 +120,12 @@ func TestParseURL(t *testing.T) {
90
120
if c .tls && o .TLSConfig == nil {
91
121
t .Errorf ("got nil TLSConfig, expected a TLSConfig" )
92
122
}
123
+ if o .Username != c .user {
124
+ t .Errorf ("got %q, expected %q" , o .Username , c .user )
125
+ }
126
+ if o .Password != c .pass {
127
+ t .Errorf ("got %q, expected %q" , o .Password , c .pass )
128
+ }
93
129
})
94
130
}
95
131
}
0 commit comments