Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Fenny 2020-06-07 22:17:31 +02:00
commit d7dd49f01a
2 changed files with 30 additions and 5 deletions

17
ctx.go
View File

@ -12,11 +12,11 @@ import (
"errors"
"fmt"
"io"
"io/ioutil"
"log"
"mime/multipart"
"net/http"
"net/url"
"os"
"path/filepath"
"regexp"
"strconv"
@ -752,14 +752,21 @@ func (ctx *Ctx) Render(name string, bind interface{}) (err error) {
} else {
// Render raw template using 'name' as filepath if no engine is set
var tmpl *template.Template
var raw []byte
raw := bytebufferpool.Get()
defer bytebufferpool.Put(raw)
// Read file
if raw, err = ioutil.ReadFile(filepath.Clean(name)); err != nil {
f, err := os.Open(filepath.Clean(name))
if err != nil {
return err
}
if _, err = raw.ReadFrom(f); err != nil {
return err
}
if err = f.Close(); err != nil {
return err
}
// Parse template
// tmpl, err := template.ParseGlob(name)
if tmpl, err = template.New("").ParseGlob(getString(raw)); err != nil {
if tmpl, err = template.New("").Parse(raw.String()); err != nil {
return err
}
// Render template

View File

@ -1054,6 +1054,24 @@ func Test_Ctx_Redirect(t *testing.T) {
// // TODO
// }
// go test -run Test_Ctx_Render_Go_Template
func Test_Ctx_Render_Go_Template(t *testing.T) {
t.Parallel()
file, err := ioutil.TempFile(os.TempDir(), "fiber")
utils.AssertEqual(t, nil, err)
defer os.Remove(file.Name())
_, err = file.Write([]byte("template"))
utils.AssertEqual(t, nil, err)
err = file.Close()
utils.AssertEqual(t, nil, err)
app := New()
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
defer app.ReleaseCtx(ctx)
err = ctx.Render(file.Name(), nil)
utils.AssertEqual(t, nil, err)
utils.AssertEqual(t, "template", string(ctx.Fasthttp.Response.Body()))
}
// go test -run Test_Ctx_Send
func Test_Ctx_Send(t *testing.T) {
t.Parallel()