2018-10-21 18:20:05 +02:00
|
|
|
package handler
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2019-10-25 00:27:02 +02:00
|
|
|
"github.com/kataras/iris/v12/macro"
|
2018-10-21 18:20:05 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestCanMakeHandler(t *testing.T) {
|
|
|
|
tests := []struct {
|
|
|
|
src string
|
|
|
|
needsHandler bool
|
|
|
|
}{
|
|
|
|
{"/static/static", false},
|
|
|
|
{"/{myparam}", false},
|
|
|
|
{"/{myparam min(1)}", true},
|
|
|
|
{"/{myparam else 500}", true},
|
|
|
|
{"/{myparam else 404}", false},
|
|
|
|
{"/{myparam:string}/static", false},
|
|
|
|
{"/{myparam:int}", true},
|
|
|
|
{"/static/{myparam:int}/static", true},
|
|
|
|
{"/{myparam:path}", false},
|
|
|
|
{"/{myparam:path min(1) else 404}", true},
|
|
|
|
}
|
|
|
|
|
|
|
|
availableMacros := *macro.Defaults
|
|
|
|
for i, tt := range tests {
|
|
|
|
tmpl, err := macro.Parse(tt.src, availableMacros)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatalf("[%d] '%s' failed to be parsed: %v", i, tt.src, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if got := CanMakeHandler(tmpl); got != tt.needsHandler {
|
|
|
|
if tt.needsHandler {
|
|
|
|
t.Fatalf("[%d] '%s' expected to be able to generate an evaluator handler instead of a nil one", i, tt.src)
|
|
|
|
} else {
|
|
|
|
t.Fatalf("[%d] '%s' should not need an evaluator handler", i, tt.src)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|