summaryrefslogtreecommitdiffstats
path: root/modules/util/sanitize_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/util/sanitize_test.go')
-rw-r--r--modules/util/sanitize_test.go159
1 files changed, 149 insertions, 10 deletions
diff --git a/modules/util/sanitize_test.go b/modules/util/sanitize_test.go
index 4f07100675..578f75f518 100644
--- a/modules/util/sanitize_test.go
+++ b/modules/util/sanitize_test.go
@@ -1,25 +1,164 @@
-// Copyright 2020 The Gitea Authors. All rights reserved.
+// 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 TestSanitizeURLCredentials(t *testing.T) {
- var kases = map[string]string{
- "https://github.com/go-gitea/test_repo.git": "https://github.com/go-gitea/test_repo.git",
- "https://mytoken@github.com/go-gitea/test_repo.git": "https://github.com/go-gitea/test_repo.git",
- "http://github.com/go-gitea/test_repo.git": "http://github.com/go-gitea/test_repo.git",
- "/test/repos/repo1": "/test/repos/repo1",
- "git@github.com:go-gitea/test_repo.git": "(unparsable url)",
+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 source, value := range kases {
- assert.EqualValues(t, value, SanitizeURLCredentials(source, false))
+ 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)
}
}