mirror of
https://github.com/kataras/iris.git
synced 2026-01-09 04:51:56 +00:00
New: gRPC MVC features, new WithLowercaseRouting option and add some new context methods
read HISTORY.md Former-commit-id: 30a16cceb11f754aa32923058abeda1e736350e7
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package router_test
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/kataras/iris/v12"
|
||||
@@ -39,3 +41,34 @@ func TestRouteExists(t *testing.T) {
|
||||
// run the tests
|
||||
httptest.New(t, app, httptest.Debug(false)).Request("GET", "/route-test").Expect().Status(iris.StatusOK)
|
||||
}
|
||||
|
||||
func TestLowercaseRouting(t *testing.T) {
|
||||
app := iris.New()
|
||||
app.WrapRouter(func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
|
||||
// test bottom to begin wrapper, the last ones should execute first.
|
||||
// The ones that are registered at `Build` state, after this `WrapRouter` call.
|
||||
// So path should be already lowecased.
|
||||
if expected, got := strings.ToLower(r.URL.Path), r.URL.Path; expected != got {
|
||||
t.Fatalf("expected path: %s but got: %s", expected, got)
|
||||
}
|
||||
next(w, r)
|
||||
})
|
||||
|
||||
h := func(ctx iris.Context) { ctx.WriteString(ctx.Path()) }
|
||||
|
||||
// Register routes.
|
||||
tests := []string{"/", "/lowercase", "/UPPERCASE", "/Title", "/m1xEd2"}
|
||||
for _, tt := range tests {
|
||||
app.Get(tt, h)
|
||||
}
|
||||
|
||||
app.Configure(iris.WithLowercaseRouting)
|
||||
// Test routes.
|
||||
e := httptest.New(t, app)
|
||||
for _, tt := range tests {
|
||||
s := strings.ToLower(tt)
|
||||
e.GET(tt).Expect().Status(httptest.StatusOK).Body().Equal(s)
|
||||
e.GET(s).Expect().Status(httptest.StatusOK).Body().Equal(s)
|
||||
e.GET(strings.ToUpper(tt)).Expect().Status(httptest.StatusOK).Body().Equal(s)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user