template: add test for custom function

Signed-off-by: Tw <tw19881113@gmail.com>
This commit is contained in:
Tw 2017-04-18 22:49:20 +08:00
parent f28a159b72
commit 790c842fad
4 changed files with 12 additions and 3 deletions

View File

@ -264,8 +264,7 @@ func ContextInclude(filename string, ctx interface{}, fs http.FileSystem) (strin
return "", err return "", err
} }
tpl := template.New(filename).Funcs(TemplateFuncs) tpl, err := template.New(filename).Funcs(TemplateFuncs).Parse(string(body))
tpl, err = tpl.Parse(string(body))
if err != nil { if err != nil {
return "", err return "", err
} }

View File

@ -72,8 +72,16 @@ func TestInclude(t *testing.T) {
shouldErr: true, shouldErr: true,
expectedErrorContent: `type httpserver.Context`, expectedErrorContent: `type httpserver.Context`,
}, },
// Test 4 - all good, with custom function
{
fileContent: `hello {{ caddy }}`,
expectedContent: "hello caddy",
shouldErr: false,
expectedErrorContent: "",
},
} }
TemplateFuncs["caddy"] = func() string { return "caddy" }
for i, test := range tests { for i, test := range tests {
testPrefix := getTestPrefix(i) testPrefix := getTestPrefix(i)

View File

@ -121,6 +121,8 @@ func TestTemplates(t *testing.T) {
rec = httptest.NewRecorder() rec = httptest.NewRecorder()
// register custom function which is used in template
httpserver.TemplateFuncs["root"] = func() string { return "root" }
tmplroot.ServeHTTP(rec, req) tmplroot.ServeHTTP(rec, req)
if rec.Code != http.StatusOK { if rec.Code != http.StatusOK {

View File

@ -1 +1 @@
<!DOCTYPE html><html><head><title>root</title></head><body>{{.Include "header.html"}}</body></html> <!DOCTYPE html><html><head><title>{{ root }}</title></head><body>{{.Include "header.html"}}</body></html>