1package parser
2
3import "testing"
4
5func TestNormalizeHistoryURL(t *testing.T) {
6 t.Parallel()
7
8 tests := []struct {
9 name string
10 input string
11 expected string
12 }{
13 {"addsTrailingSlash", "https://duckduckgo.com", "https://duckduckgo.com/"},
14 {"keepsExistingSlash", "https://duckduckgo.com/", "https://duckduckgo.com/"},
15 {"keepsPath", "https://example.com/foo", "https://example.com/foo"},
16 {"keepsQuery", "https://example.com?q=1", "https://example.com/?q=1"},
17 {"httpScheme", "http://example.com", "http://example.com/"},
18 {"nonHttpScheme", "ftp://example.com", "ftp://example.com"},
19 {"invalidURL", "not a url", "not a url"},
20 {"empty", "", ""},
21 }
22
23 for _, tt := range tests {
24 tt := tt
25 t.Run(tt.name, func(t *testing.T) {
26 t.Parallel()
27 if got := NormalizeHistoryURL(tt.input); got != tt.expected {
28 t.Fatalf("NormalizeHistoryURL(%q) = %q, want %q", tt.input, got, tt.expected)
29 }
30 })
31 }
32}