package slug import "testing" func TestMake(t *testing.T) { cases := map[string]string{ "Hello, World!": "hello-world", " Ünïcödé Tïtle ": "unicode-title", "!!!": "untitled", "": "untitled", "already-a-slug": "already-a-slug", "Multiple spaces--": "multiple-spaces", "Καλημέρα κόσμε": "kalimera-kosme", "日本語": "untitled", // unsupported scripts fall back; user can type a slug } for in, want := range cases { if got := Make(in); got != want { t.Errorf("Make(%q) = %q, want %q", in, got, want) } } } func TestClean(t *testing.T) { cases := map[string]string{"!!!": "", "": "", "Ντομάτες": "ntomates", "Go ": "go"} for in, want := range cases { if got := Clean(in); got != want { t.Errorf("Clean(%q) = %q, want %q", in, got, want) } } } func TestValid(t *testing.T) { for _, ok := range []string{"a", "abc-def", "a1-b2"} { if !Valid(ok) { t.Errorf("Valid(%q) = false", ok) } } for _, bad := range []string{"", "-a", "a-", "a--b", "A", "a b", "a/b"} { if Valid(bad) { t.Errorf("Valid(%q) = true", bad) } } }