Files
3x-ui/internal/web/service/client_email_validation_test.go
T
Benjamin Mitchell cd176faf4e fix(clients): reject dot names and recover legacy clients (#7062)
Reject reserved dot-segment client names and recover legacy records through query aliases. Preserve token scopes and path identity precedence, and update the generated API reference.
2026-11-05 18:02:39 +01:00

64 lines
1.2 KiB
Go

package service
import "testing"
func TestValidateClientEmail(t *testing.T) {
valid := []string{
"alice",
"alice@example.com",
"user-123_test.name",
"...",
".alice",
"alice.",
"alice..example",
"имя",
}
for _, email := range valid {
if err := validateClientEmail(email); err != nil {
t.Errorf("validateClientEmail(%q) = %v, want nil", email, err)
}
}
invalid := []string{
".",
"..",
"i6dui/",
"a/b",
"client with spaces",
"back\\slash",
"tab\there",
"new\nline",
"\x7fdelete",
}
for _, email := range invalid {
if err := validateClientEmail(email); err == nil {
t.Errorf("validateClientEmail(%q) = nil, want error", email)
}
}
}
func TestValidateClientSubID(t *testing.T) {
valid := []string{
"",
"abc123",
"sub-id_value",
}
for _, subID := range valid {
if err := validateClientSubID(subID); err != nil {
t.Errorf("validateClientSubID(%q) = %v, want nil", subID, err)
}
}
invalid := []string{
"a/b",
"with space",
"back\\slash",
"new\nline",
}
for _, subID := range invalid {
if err := validateClientSubID(subID); err == nil {
t.Errorf("validateClientSubID(%q) = nil, want error", subID)
}
}
}