@@ -34,14 +34,46 @@ func TestParseTarget(t *testing.T) {
34
34
{"a" , "" , "b" },
35
35
{"" , "a" , "b" },
36
36
{"a" , "b" , "c" },
37
- {"dns" , "a.server.com " , "google.com" },
37
+ {"dns" , "" , "google.com" },
38
38
{"dns" , "a.server.com" , "google.com" },
39
39
{"dns" , "a.server.com" , "google.com/?a=b" },
40
+ {"" , "" , "/unix/socket/address" },
40
41
} {
41
42
str := test .Scheme + "://" + test .Authority + "/" + test .Endpoint
42
43
got := parseTarget (str )
43
44
if got != test {
44
- t .Errorf ("parseTarget(%q) = %v, want %v" , str , got , test )
45
+ t .Errorf ("parseTarget(%q) = %+v, want %+v" , str , got , test )
46
+ }
47
+ }
48
+ }
49
+
50
+ func TestParseTargetString (t * testing.T ) {
51
+ for _ , test := range []struct {
52
+ targetStr string
53
+ want resolver.Target
54
+ }{
55
+ {"" , resolver.Target {"" , "" , "" }},
56
+ {"://" , resolver.Target {"" , "" , "" }},
57
+ {":///" , resolver.Target {"" , "" , "" }},
58
+ {"a:///" , resolver.Target {"a" , "" , "" }},
59
+ {"://a/" , resolver.Target {"" , "a" , "" }},
60
+ {":///a" , resolver.Target {"" , "" , "a" }},
61
+ {"a://b/" , resolver.Target {"a" , "b" , "" }},
62
+ {"a:///b" , resolver.Target {"a" , "" , "b" }},
63
+ {"://a/b" , resolver.Target {"" , "a" , "b" }},
64
+ {"a://b/c" , resolver.Target {"a" , "b" , "c" }},
65
+ {"dns:///google.com" , resolver.Target {"dns" , "" , "google.com" }},
66
+ {"dns://a.server.com/google.com" , resolver.Target {"dns" , "a.server.com" , "google.com" }},
67
+ {"dns://a.server.com/google.com/?a=b" , resolver.Target {"dns" , "a.server.com" , "google.com/?a=b" }},
68
+
69
+ {"/" , resolver.Target {"" , "" , "/" }},
70
+ {"google.com" , resolver.Target {"" , "" , "google.com" }},
71
+ {"google.com/?a=b" , resolver.Target {"" , "" , "google.com/?a=b" }},
72
+ {"/unix/socket/address" , resolver.Target {"" , "" , "/unix/socket/address" }},
73
+ } {
74
+ got := parseTarget (test .targetStr )
75
+ if got != test .want {
76
+ t .Errorf ("parseTarget(%q) = %+v, want %+v" , test .targetStr , got , test .want )
45
77
}
46
78
}
47
79
}
0 commit comments