@@ -135,13 +135,16 @@ func TestTreeWildcard(t *testing.T) {
135
135
136
136
routes := [... ]string {
137
137
"/" ,
138
- "/cmd/:tool/:sub" ,
139
138
"/cmd/:tool/" ,
139
+ "/cmd/:tool/:sub" ,
140
140
"/cmd/whoami" ,
141
+ "/cmd/whoami/root" ,
141
142
"/cmd/whoami/root/" ,
142
143
"/src/*filepath" ,
143
144
"/search/" ,
144
145
"/search/:query" ,
146
+ "/search/gin-gonic" ,
147
+ "/search/google" ,
145
148
"/user_:name" ,
146
149
"/user_:name/about" ,
147
150
"/files/:dir/*filepath" ,
@@ -150,6 +153,7 @@ func TestTreeWildcard(t *testing.T) {
150
153
"/doc/go1.html" ,
151
154
"/info/:user/public" ,
152
155
"/info/:user/project/:project" ,
156
+ "/info/:user/project/golang" ,
153
157
}
154
158
for _ , route := range routes {
155
159
tree .addRoute (route , fakeHandler (route ))
@@ -159,21 +163,29 @@ func TestTreeWildcard(t *testing.T) {
159
163
{"/" , false , "/" , nil },
160
164
{"/cmd/test" , true , "/cmd/:tool/" , Params {Param {"tool" , "test" }}},
161
165
{"/cmd/test/" , false , "/cmd/:tool/" , Params {Param {"tool" , "test" }}},
166
+ {"/cmd/test/3" , false , "/cmd/:tool/:sub" , Params {Param {Key : "tool" , Value : "test" }, Param {Key : "sub" , Value : "3" }}},
167
+ {"/cmd/who" , true , "/cmd/:tool/" , Params {Param {"tool" , "who" }}},
168
+ {"/cmd/who/" , false , "/cmd/:tool/" , Params {Param {"tool" , "who" }}},
162
169
{"/cmd/whoami" , false , "/cmd/whoami" , nil },
163
170
{"/cmd/whoami/" , true , "/cmd/whoami" , nil },
171
+ {"/cmd/whoami/r" , false , "/cmd/:tool/:sub" , Params {Param {Key : "tool" , Value : "whoami" }, Param {Key : "sub" , Value : "r" }}},
172
+ {"/cmd/whoami/r/" , true , "/cmd/:tool/:sub" , Params {Param {Key : "tool" , Value : "whoami" }, Param {Key : "sub" , Value : "r" }}},
173
+ {"/cmd/whoami/root" , false , "/cmd/whoami/root" , nil },
164
174
{"/cmd/whoami/root/" , false , "/cmd/whoami/root/" , nil },
165
- {"/cmd/whoami/root" , true , "/cmd/whoami/root/" , nil },
166
- {"/cmd/test/3" , false , "/cmd/:tool/:sub" , Params {Param {Key : "tool" , Value : "test" }, Param {Key : "sub" , Value : "3" }}},
167
175
{"/src/" , false , "/src/*filepath" , Params {Param {Key : "filepath" , Value : "/" }}},
168
176
{"/src/some/file.png" , false , "/src/*filepath" , Params {Param {Key : "filepath" , Value : "/some/file.png" }}},
169
177
{"/search/" , false , "/search/" , nil },
170
178
{"/search/someth!ng+in+ünìcodé" , false , "/search/:query" , Params {Param {Key : "query" , Value : "someth!ng+in+ünìcodé" }}},
171
179
{"/search/someth!ng+in+ünìcodé/" , true , "" , Params {Param {Key : "query" , Value : "someth!ng+in+ünìcodé" }}},
180
+ {"/search/gin" , false , "/search/:query" , Params {Param {"query" , "gin" }}},
181
+ {"/search/gin-gonic" , false , "/search/gin-gonic" , nil },
182
+ {"/search/google" , false , "/search/google" , nil },
172
183
{"/user_gopher" , false , "/user_:name" , Params {Param {Key : "name" , Value : "gopher" }}},
173
184
{"/user_gopher/about" , false , "/user_:name/about" , Params {Param {Key : "name" , Value : "gopher" }}},
174
185
{"/files/js/inc/framework.js" , false , "/files/:dir/*filepath" , Params {Param {Key : "dir" , Value : "js" }, Param {Key : "filepath" , Value : "/inc/framework.js" }}},
175
186
{"/info/gordon/public" , false , "/info/:user/public" , Params {Param {Key : "user" , Value : "gordon" }}},
176
187
{"/info/gordon/project/go" , false , "/info/:user/project/:project" , Params {Param {Key : "user" , Value : "gordon" }, Param {Key : "project" , Value : "go" }}},
188
+ {"/info/gordon/project/golang" , false , "/info/:user/project/golang" , Params {Param {Key : "user" , Value : "gordon" }}},
177
189
})
178
190
179
191
checkPriorities (t , tree )
0 commit comments