@@ -284,3 +284,25 @@ func Test_extractParams(t *testing.T) {
|
284 | 284 | router.ServeHTTP(httptest.NewRecorder(), req) |
285 | 285 | assert.Equal(t, "1", fields["id"]) |
286 | 286 | } |
| 287 | + |
| 288 | +func Test_extractParamsRawRoute(t *testing.T) { |
| 289 | +r, err := http.NewRequest(http.MethodGet, "/users/42/status/online", nil) |
| 290 | +assert.NoError(t, err) |
| 291 | +r.Header.Set(encoding.ContentTypeHeader, json.Type) |
| 292 | +r.Header.Set(encoding.AcceptHeader, json.Type) |
| 293 | +var fields map[string]string |
| 294 | + |
| 295 | +proc := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 296 | +fields = ExtractParams(r) |
| 297 | + }) |
| 298 | + |
| 299 | +router := httprouter.New() |
| 300 | +route, err := NewRawRouteBuilder("/users/:id/status/:status", proc).MethodGet().Build() |
| 301 | +assert.NoError(t, err) |
| 302 | +router.HandlerFunc(route.method, route.path, route.handler) |
| 303 | +router.ServeHTTP(httptest.NewRecorder(), r) |
| 304 | + |
| 305 | +assert.Equal(t, "42", fields["id"]) |
| 306 | +assert.Equal(t, "online", fields["status"]) |
| 307 | + |
| 308 | +} |