diff --git a/mvc/controller_method_parser.go b/mvc/controller_method_parser.go index 650a880a9..aef3062f0 100644 --- a/mvc/controller_method_parser.go +++ b/mvc/controller_method_parser.go @@ -51,7 +51,7 @@ func (l *methodLexer) reset(s string) { } if end > 0 && len(s) >= end { - words = append(words, s[start:end]) + words = append(words, s[start:]) } } diff --git a/mvc/controller_test.go b/mvc/controller_test.go index 5575f421b..db9acfa8b 100644 --- a/mvc/controller_test.go +++ b/mvc/controller_test.go @@ -409,6 +409,10 @@ func (c *testControllerRelPathFromFunc) GetSomethingByBy(string, int) {} func (c *testControllerRelPathFromFunc) GetSomethingNewBy(string, int) {} // two input arguments, one By which is the latest word. func (c *testControllerRelPathFromFunc) GetSomethingByElseThisBy(bool, int) {} // two input arguments +func (c *testControllerRelPathFromFunc) GetLocationX() {} +func (c *testControllerRelPathFromFunc) GetLocationXY() {} +func (c *testControllerRelPathFromFunc) GetLocationZBy(int) {} + func TestControllerRelPathFromFunc(t *testing.T) { app := iris.New() New(app).Handle(new(testControllerRelPathFromFunc)) @@ -449,6 +453,13 @@ func TestControllerRelPathFromFunc(t *testing.T) { Body().Equal("GET:/42") e.GET("/anything/here").Expect().Status(iris.StatusOK). Body().Equal("GET:/anything/here") + + e.GET("/location/x").Expect().Status(iris.StatusOK). + Body().Equal("GET:/location/x") + e.GET("/location/x/y").Expect().Status(iris.StatusOK). + Body().Equal("GET:/location/x/y") + e.GET("/location/z/42").Expect().Status(iris.StatusOK). + Body().Equal("GET:/location/z/42") } type testControllerActivateListener struct {