1
0
mirror of https://github.com/kataras/iris.git synced 2025-12-18 02:17:05 +00:00
Former-commit-id: 953df27468e3905e557bb1f6a97ea431cb60f6a6
This commit is contained in:
Gerasimos (Makis) Maropoulos
2020-07-06 19:08:02 +03:00
parent dd72a1e398
commit 38b0a796bd
6 changed files with 85 additions and 8 deletions

View File

@@ -0,0 +1,42 @@
package main // #1552
import (
"github.com/kataras/iris/v12"
)
func main() {
app := newApp()
app.Listen(":8080")
}
func newApp() *iris.Application {
app := iris.New()
app.UseGlobal(middleware("first"))
app.UseGlobal(middleware("second"))
app.DoneGlobal(onDone)
app.Get("/{name prefix(one)}", handler("first route"))
app.Get("/{name prefix(two)}", handler("second route"))
app.Get("/{name prefix(three)}", handler("third route"))
return app
}
func middleware(str string) iris.Handler {
return func(ctx iris.Context) {
ctx.Writef("Called %s middleware\n", str)
ctx.Next()
}
}
func handler(str string) iris.Handler {
return func(ctx iris.Context) {
ctx.Writef("%s\n", str)
ctx.Next() // or ignroe that and use app.SetRegisterRules.
}
}
func onDone(ctx iris.Context) {
ctx.Writef("Called done: %s", ctx.Params().Get("name"))
}

View File

@@ -0,0 +1,25 @@
package main
import (
"fmt"
"testing"
"github.com/kataras/iris/v12/httptest"
)
func TestSamePatternDifferentFuncUseGlobal(t *testing.T) {
app := newApp()
e := httptest.New(t, app)
expectedResultFmt := "Called first middleware\nCalled second middleware\n%s\nCalled done: %s"
tests := map[string]string{
"/one-num": "first route",
"/two-num": "second route",
"/three-num": "third route",
}
for path, mainBody := range tests {
result := fmt.Sprintf(expectedResultFmt, mainBody, path[1:])
e.GET(path).Expect().Status(httptest.StatusOK).Body().Equal(result)
}
}