mirror of
https://github.com/kataras/iris.git
synced 2025-12-18 02:17:05 +00:00
@@ -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"))
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user