...
1 package url
2
3 import (
4 "testing"
5 )
6
7 func TestSchemeFromUrl(t *testing.T) {
8 cases := []struct {
9 name string
10 urlStr string
11 expected string
12 expectErr error
13 }{
14 {
15 name: "Simple",
16 urlStr: "protocol://path",
17 expected: "protocol",
18 },
19 {
20
21 name: "MySQLWithPort",
22 urlStr: "mysql://user:pass@tcp(host:1337)/db",
23 expected: "mysql",
24 },
25 {
26 name: "Empty",
27 urlStr: "",
28 expectErr: errEmptyURL,
29 },
30 {
31 name: "NoScheme",
32 urlStr: "hello",
33 expectErr: errNoScheme,
34 },
35 }
36
37 for _, tc := range cases {
38 t.Run(tc.name, func(t *testing.T) {
39 s, err := SchemeFromURL(tc.urlStr)
40 if err != tc.expectErr {
41 t.Fatalf("expected %q, but received %q", tc.expectErr, err)
42 }
43 if s != tc.expected {
44 t.Fatalf("expected %q, but received %q", tc.expected, s)
45 }
46 })
47 }
48 }
49
View as plain text