27 lines
865 B
Go
27 lines
865 B
Go
package queue
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestSanitizeErrorMessage(t *testing.T) {
|
|
message := "Authorization: Bearer-secret\r\n api_key=topsecret token=abc password=hunter2 https://example.test/path?X-Amz-Signature=signed 请求失败"
|
|
got := SanitizeErrorMessage(message, 90)
|
|
for _, secret := range []string{"Bearer-secret", "topsecret", "abc", "hunter2", "X-Amz-Signature", "signed", "\r", "\n"} {
|
|
if strings.Contains(got, secret) {
|
|
t.Fatalf("SanitizeErrorMessage() leaked %q in %q", secret, got)
|
|
}
|
|
}
|
|
if len(got) > 90 {
|
|
t.Fatalf("SanitizeErrorMessage() length = %d", len(got))
|
|
}
|
|
}
|
|
|
|
func TestSanitizeErrorMessageKeepsValidUTF8WhenTruncated(t *testing.T) {
|
|
got := SanitizeErrorMessage(strings.Repeat("中", 20), 10)
|
|
if !strings.HasPrefix(strings.Repeat("中", 20), got) || len(got) > 10 {
|
|
t.Fatalf("truncated message = %q", got)
|
|
}
|
|
}
|