Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
3.6 KiB
164 lines
3.6 KiB
// Copyright 2021 The Gitea Authors. All rights reserved. |
|
// Use of this source code is governed by a MIT-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package util |
|
|
|
import ( |
|
"errors" |
|
"testing" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestNewSanitizedError(t *testing.T) { |
|
err := errors.New("error while secret on test") |
|
err2 := NewSanitizedError(err) |
|
assert.Equal(t, err.Error(), err2.Error()) |
|
|
|
var cases = []struct { |
|
input error |
|
oldnew []string |
|
expected string |
|
}{ |
|
// case 0 |
|
{ |
|
errors.New("error while secret on test"), |
|
[]string{"secret", "replaced"}, |
|
"error while replaced on test", |
|
}, |
|
// case 1 |
|
{ |
|
errors.New("error while sec-ret on test"), |
|
[]string{"secret", "replaced"}, |
|
"error while sec-ret on test", |
|
}, |
|
} |
|
|
|
for n, c := range cases { |
|
err := NewSanitizedError(c.input, c.oldnew...) |
|
|
|
assert.Equal(t, c.expected, err.Error(), "case %d: error should match", n) |
|
} |
|
} |
|
|
|
func TestNewStringURLSanitizer(t *testing.T) { |
|
var cases = []struct { |
|
input string |
|
placeholder bool |
|
expected string |
|
}{ |
|
// case 0 |
|
{ |
|
"https://github.com/go-gitea/test_repo.git", |
|
true, |
|
"https://github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 1 |
|
{ |
|
"https://github.com/go-gitea/test_repo.git", |
|
false, |
|
"https://github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 2 |
|
{ |
|
"https://mytoken@github.com/go-gitea/test_repo.git", |
|
true, |
|
"https://" + userPlaceholder + "@github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 3 |
|
{ |
|
"https://mytoken@github.com/go-gitea/test_repo.git", |
|
false, |
|
"https://github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 4 |
|
{ |
|
"https://user:password@github.com/go-gitea/test_repo.git", |
|
true, |
|
"https://" + userPlaceholder + "@github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 5 |
|
{ |
|
"https://user:password@github.com/go-gitea/test_repo.git", |
|
false, |
|
"https://github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 6 |
|
{ |
|
"https://gi\nthub.com/go-gitea/test_repo.git", |
|
false, |
|
unparsableURL, |
|
}, |
|
} |
|
|
|
for n, c := range cases { |
|
// uses NewURLSanitizer internally |
|
result := NewStringURLSanitizer(c.input, c.placeholder).Replace(c.input) |
|
|
|
assert.Equal(t, c.expected, result, "case %d: error should match", n) |
|
} |
|
} |
|
|
|
func TestNewStringURLSanitizedError(t *testing.T) { |
|
var cases = []struct { |
|
input string |
|
placeholder bool |
|
expected string |
|
}{ |
|
// case 0 |
|
{ |
|
"https://github.com/go-gitea/test_repo.git", |
|
true, |
|
"https://github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 1 |
|
{ |
|
"https://github.com/go-gitea/test_repo.git", |
|
false, |
|
"https://github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 2 |
|
{ |
|
"https://mytoken@github.com/go-gitea/test_repo.git", |
|
true, |
|
"https://" + userPlaceholder + "@github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 3 |
|
{ |
|
"https://mytoken@github.com/go-gitea/test_repo.git", |
|
false, |
|
"https://github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 4 |
|
{ |
|
"https://user:password@github.com/go-gitea/test_repo.git", |
|
true, |
|
"https://" + userPlaceholder + "@github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 5 |
|
{ |
|
"https://user:password@github.com/go-gitea/test_repo.git", |
|
false, |
|
"https://github.com/go-gitea/test_repo.git", |
|
}, |
|
// case 6 |
|
{ |
|
"https://gi\nthub.com/go-gitea/test_repo.git", |
|
false, |
|
unparsableURL, |
|
}, |
|
} |
|
|
|
encloseText := func(input string) string { |
|
return "test " + input + " test" |
|
} |
|
|
|
for n, c := range cases { |
|
err := errors.New(encloseText(c.input)) |
|
|
|
result := NewStringURLSanitizedError(err, c.input, c.placeholder) |
|
|
|
assert.Equal(t, encloseText(c.expected), result.Error(), "case %d: error should match", n) |
|
} |
|
}
|
|
|