This helps avoid a gotcha when using matches with sub-routers. Fixes #120.
| @ -0,0 +1,28 @@ | |||||
| package middleware | |||||
| import ( | |||||
| "net/http" | |||||
| "net/http/httptest" | |||||
| "testing" | |||||
| "github.com/zenazn/goji/web" | |||||
| ) | |||||
| func TestSubRouterMatch(t *testing.T) { | |||||
| m := web.New() | |||||
| m.Use(m.Router) | |||||
| m2 := web.New() | |||||
| m2.Use(SubRouter) | |||||
| m2.Get("/bar", func(w http.ResponseWriter, r *http.Request) {}) | |||||
| m.Get("/foo/*", m2) | |||||
| r, err := http.NewRequest("GET", "/foo/bar", nil) | |||||
| if err != nil { | |||||
| t.Fatal(err) | |||||
| } | |||||
| // This function will recurse forever if SubRouter + Match didn't work. | |||||
| m.ServeHTTP(httptest.NewRecorder(), r) | |||||
| } | |||||