@@ -11,154 +11,65 @@ import (
1111 "github.com/stretchr/testify/assert"
1212)
1313
14- func TestNewSanitizedError (t * testing.T ) {
15- err := errors .New ("error while secret on test" )
16- err2 := NewSanitizedError (err )
17- assert .Equal (t , err .Error (), err2 .Error ())
18-
19- cases := []struct {
20- input error
21- oldnew []string
22- expected string
23- }{
24- // case 0
25- {
26- errors .New ("error while secret on test" ),
27- []string {"secret" , "replaced" },
28- "error while replaced on test" ,
29- },
30- // case 1
31- {
32- errors .New ("error while sec-ret on test" ),
33- []string {"secret" , "replaced" },
34- "error while sec-ret on test" ,
35- },
36- }
37-
38- for n , c := range cases {
39- err := NewSanitizedError (c .input , c .oldnew ... )
40-
41- assert .Equal (t , c .expected , err .Error (), "case %d: error should match" , n )
42- }
14+ func TestSanitizeErrorCredentialURLs (t * testing.T ) {
15+ err := errors .
New (
"error with https://[email protected] " )
16+ se := SanitizeErrorCredentialURLs (err )
17+ assert .Equal (t , "error with https://" + userPlaceholder + "@b.com" , se .Error ())
4318}
4419
45- func TestNewStringURLSanitizer (t * testing.T ) {
20+ func TestSanitizeCredentialURLs (t * testing.T ) {
4621 cases := []struct {
47- input string
48- placeholder bool
49- expected string
22+ input string
23+ expected string
5024 }{
51- // case 0
5225 {
5326 "https://github.com/go-gitea/test_repo.git" ,
54- true ,
5527 "https://github.com/go-gitea/test_repo.git" ,
5628 },
57- // case 1
58- {
59- "https://github.com/go-gitea/test_repo.git" ,
60- false ,
61- "https://github.com/go-gitea/test_repo.git" ,
62- },
63- // case 2
6429 {
6530 "https://[email protected] /go-gitea/test_repo.git" ,
66- true ,
6731 "https://" + userPlaceholder + "@github.com/go-gitea/test_repo.git" ,
6832 },
69- // case 3
70- {
71- "https://[email protected] /go-gitea/test_repo.git" ,
72- false ,
73- "https://github.com/go-gitea/test_repo.git" ,
74- },
75- // case 4
7633 {
7734 "https://user:[email protected] /go-gitea/test_repo.git" ,
78- true ,
7935 "https://" + userPlaceholder + "@github.com/go-gitea/test_repo.git" ,
8036 },
81- // case 5
8237 {
83- "https://user:[email protected] /go-gitea/test_repo.git" ,
84- false ,
85- "https://github.com/go-gitea/test_repo.git" ,
38+ "ftp://x@" ,
39+ "ftp://" + userPlaceholder + "@" ,
8640 },
87- // case 6
8841 {
89- "https://gi\n thub.com/go-gitea/test_repo.git" ,
90- false ,
91- unparsableURL ,
42+ "ftp://x/@" ,
43+ "ftp://x/@" ,
9244 },
93- }
94-
95- for n , c := range cases {
96- // uses NewURLSanitizer internally
97- result := NewStringURLSanitizer (c .input , c .placeholder ).Replace (c .input )
98-
99- assert .Equal (t , c .expected , result , "case %d: error should match" , n )
100- }
101- }
102-
103- func TestNewStringURLSanitizedError (t * testing.T ) {
104- cases := []struct {
105- input string
106- placeholder bool
107- expected string
108- }{
109- // case 0
11045 {
111- "https://github.com/go-gitea/test_repo.git" ,
112- true ,
113- "https://github.com/go-gitea/test_repo.git" ,
114- },
115- // case 1
116- {
117- "https://github.com/go-gitea/test_repo.git" ,
118- false ,
119- "https://github.com/go-gitea/test_repo.git" ,
46+ "ftp://u@x/@" , // test multiple @ chars
47+ "ftp://" + userPlaceholder + "@x/@" ,
12048 },
121- // case 2
12249 {
123- "https://[email protected] /go-gitea/test_repo.git" ,
124- true ,
125- "https://" + userPlaceholder + "@github.com/go-gitea/test_repo.git" ,
50+ "😊ftp://u@x😊" , // test unicode
51+ "😊ftp://" + userPlaceholder + "@x😊" ,
12652 },
127- // case 3
12853 {
129- "https://[email protected] /go-gitea/test_repo.git" ,
130- false ,
131- "https://github.com/go-gitea/test_repo.git" ,
54+ "://@" ,
55+ "://@" ,
13256 },
133- // case 4
13457 {
135- "https://user:[email protected] /go-gitea/test_repo.git" ,
136- true ,
137- "https://" + userPlaceholder + "@github.com/go-gitea/test_repo.git" ,
58+ "//u:p@h" , // do not process URLs without explicit scheme, they are not treated as "valid" URLs because there is no scheme context in string
59+ "//u:p@h" ,
13860 },
139- // case 5
14061 {
141- "https://user:[email protected] /go-gitea/test_repo.git" ,
142- false ,
143- "https://github.com/go-gitea/test_repo.git" ,
62+ "s://u@h" , // the minimal pattern to be sanitized
63+ "s://" + userPlaceholder + "@h" ,
14464 },
145- // case 6
14665 {
147- "https://gi\n thub.com/go-gitea/test_repo.git" ,
148- false ,
149- unparsableURL ,
66+ "URLs in log https://u:b@h and https://u:b@h:80/, with https://h.com and [email protected] " ,
67+ "URLs in log https://" + userPlaceholder + "@h and https://" + userPlaceholder + "@h:80/, with https://h.com and [email protected] " ,
15068 },
15169 }
15270
153- encloseText := func (input string ) string {
154- return "test " + input + " test"
155- }
156-
15771 for n , c := range cases {
158- err := errors .New (encloseText (c .input ))
159-
160- result := NewStringURLSanitizedError (err , c .input , c .placeholder )
161-
162- assert .Equal (t , encloseText (c .expected ), result .Error (), "case %d: error should match" , n )
72+ result := SanitizeCredentialURLs (c .input )
73+ assert .Equal (t , c .expected , result , "case %d: error should match" , n )
16374 }
16475}
0 commit comments