func main() { // apiAuth guards access to api group apiAuth := mw.HTTPAuth("API", func(user, pass string) bool { return pass == "Secret" }) // dashboardAuth guards access to dashboard group dashboardAuth := mw.HTTPAuth("Dashboard", func(user, pass string) bool { return pass == "Password" }) // set up root router with Logger, Recovery and LocalStorage middleware w := wok.Default() // Index page idxTpl := template.Must(template.New("index").Parse("<h1>Hello</h1>")) w.GET("/", render.Template(idxTpl))(index) // api is a group of routes with common authentication and result rendering api := w.Group("/api", apiAuth, render.JSON) { api.GET("/")(apiIndex) api.GET("/:id")(apiDetail) } // dash is an example of another separate route group dash := w.Group("/dash", dashboardAuth) { tpl, _ := template.New("dash").Parse("<h1>Hello {{ .User }}</h1>") dash.GET("/", render.Template(tpl))(dashIndex) } http.ListenAndServe(":8080", w) }
func TestTemplate(t *testing.T) { is := is.New(t) testData := TestStruct{2, "Hehehehe"} testTpl, _ := template.New("index").Parse("<b>{{ .A }}</b><i>{{ .B }}</i>") w, err := genericRenderTest(render.Template(testTpl), testData) is.NotErr(err) is.Equal(w.Header().Get("Content-Type"), "text/html;charset=utf-8") is.Equal(w.Body.String(), "<b>2</b><i>Hehehehe</i>") }