package api import ( "strings" "testing" "home-vue-go/internal/config" ) func TestURLValidation(t *testing.T) { for _, value := range []string{"https://example.com", "http://localhost:8080"} { if !validHTTPURL(value) { t.Errorf("expected valid site URL: %s", value) } } for _, value := range []string{"javascript:alert(1)", "//example.com", "example.com"} { if validHTTPURL(value) { t.Errorf("expected invalid site URL: %s", value) } } for _, value := range []string{"mailto:a@example.com", "tel:+8613800000000", "https://example.com"} { if !validContactURL(value) { t.Errorf("expected valid contact URL: %s", value) } } for _, value := range []string{"/uploads/qr.png", "https://example.com/qr.png"} { if !validQRCode(value) { t.Errorf("expected valid QR path: %s", value) } } for _, value := range []string{"/uploads/../secret.png", "data:image/png;base64,abc"} { if validQRCode(value) { t.Errorf("expected invalid QR path: %s", value) } } } func TestIconValueValidation(t *testing.T) { for _, value := range []string{ "fas fa-home", "fab fa-github", "iconify:mdi:home", "iconify:material-symbols:add-home-outline", } { if !validIconValue(value) { t.Errorf("expected valid icon value: %s", value) } } for _, value := range []string{ "", "iconify:MDI:home", "iconify:mdi:", "iconify:mdi:home/../../x", "fas fa-home\">