package sys import "testing" func TestNormalizeRegisterURL(t *testing.T) { tests := []struct { name string raw string domain string baseURL string wantErr bool }{ {name: "default register path", raw: "https://Example.COM", domain: "example.com", baseURL: "https://example.com/register"}, {name: "keep custom port", raw: "http://example.com:8080/signup", domain: "example.com:8080", baseURL: "http://example.com:8080/signup"}, {name: "drop default port", raw: "https://example.com:443/register", domain: "example.com", baseURL: "https://example.com/register"}, {name: "reject query", raw: "https://example.com/register?code=1", wantErr: true}, {name: "reject non http", raw: "ftp://example.com/register", wantErr: true}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { _, domain, baseURL, err := normalizeRegisterURL(tt.raw) if tt.wantErr { if err == nil { t.Fatalf("normalizeRegisterURL(%q) expected error", tt.raw) } return } if err != nil { t.Fatalf("normalizeRegisterURL(%q) returned error: %v", tt.raw, err) } if domain != tt.domain || baseURL != tt.baseURL { t.Fatalf("normalizeRegisterURL(%q) = domain %q, baseURL %q", tt.raw, domain, baseURL) } }) } } func TestResolveRequestDomainPrefersOrigin(t *testing.T) { domain, origin, err := resolveRequestDomain("https://REGISTER.example.com", "ignored.example.com") if err != nil { t.Fatal(err) } if domain != "register.example.com" || origin != "https://register.example.com" { t.Fatalf("unexpected domain resolution: %q %q", domain, origin) } } func TestFindUrlPoolImportColumns(t *testing.T) { nameColumn, urlColumn, remarkColumn := findUrlPoolImportColumns([]string{"\ufeff地址名称", "注册入口URL", "备注"}) if nameColumn != 0 || urlColumn != 1 || remarkColumn != 2 { t.Fatalf("unexpected import columns: name=%d url=%d remark=%d", nameColumn, urlColumn, remarkColumn) } nameColumn, urlColumn, remarkColumn = findUrlPoolImportColumns([]string{"NAME", "base_url"}) if nameColumn != 0 || urlColumn != 1 || remarkColumn != -1 { t.Fatalf("unexpected alias columns: name=%d url=%d remark=%d", nameColumn, urlColumn, remarkColumn) } }