From e033d889c3577e0c073990ad8ea9c252acc61344 Mon Sep 17 00:00:00 2001 From: Ganlv Date: Wed, 24 Apr 2019 19:46:12 +0800 Subject: [PATCH] Add HTMLRender ParseFiles and ParseGlob test Add LoadHTMLGlobAppendZeroParamsPanics test --- gin_test.go | 14 ++++++++ render/render_test.go | 84 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 96 insertions(+), 2 deletions(-) diff --git a/gin_test.go b/gin_test.go index 0010c145..d1d51566 100644 --- a/gin_test.go +++ b/gin_test.go @@ -160,6 +160,20 @@ func TestLoadHTMLGlobAppendReleaseMode(t *testing.T) { assert.Equal(t, "

Hello world

", string(resp)) } +func TestLoadHTMLGlobAppendZeroParamsPanics(t *testing.T) { + assert.Panics(t, func() { + ts := setupHTMLFiles( + t, + DebugMode, + false, + func(router *Engine) { + router.LoadHTMLGlobAppend() + }, + ) + defer ts.Close() + }) +} + func TestLoadHTMLGlobUsingTLS(t *testing.T) { ts := setupHTMLFiles( t, diff --git a/render/render_test.go b/render/render_test.go index 1ee20390..7a6a816a 100644 --- a/render/render_test.go +++ b/render/render_test.go @@ -422,7 +422,7 @@ func TestRenderHTMLTemplateEmptyName(t *testing.T) { func TestRenderHTMLDebugFiles(t *testing.T) { w := httptest.NewRecorder() htmlRender := HTMLDebug{Files: []string{"../testdata/template/hello.tmpl"}, - Globs: []string{}, + Globs: nil, Delims: Delims{Left: "{[{", Right: "}]}"}, FuncMap: nil, } @@ -457,13 +457,93 @@ func TestRenderHTMLDebugGlob(t *testing.T) { func TestRenderHTMLDebugPanics(t *testing.T) { htmlRender := HTMLDebug{Files: nil, - Globs: []string{}, + Globs: nil, Delims: Delims{"{{", "}}"}, FuncMap: nil, } assert.Panics(t, func() { htmlRender.Instance("", nil) }) } +func TestRenderHTMLDebugParseFiles(t *testing.T) { + w := httptest.NewRecorder() + + htmlRender := HTMLDebug{Files: nil, + Globs: nil, + Delims: Delims{Left: "{[{", Right: "}]}"}, + FuncMap: nil, + } + htmlRender.ParseFiles("../testdata/template/hello.tmpl") + + instance := htmlRender.Instance("hello.tmpl", map[string]interface{}{ + "name": "thinkerou", + }) + + err := instance.Render(w) + + assert.NoError(t, err) + assert.Equal(t, "

Hello thinkerou

", w.Body.String()) + assert.Equal(t, "text/html; charset=utf-8", w.Header().Get("Content-Type")) +} + +func TestRenderHTMLDebugParseGlob(t *testing.T) { + w := httptest.NewRecorder() + + htmlRender := HTMLDebug{Files: nil, + Globs: nil, + Delims: Delims{Left: "{[{", Right: "}]}"}, + FuncMap: nil, + } + htmlRender.ParseGlob("../testdata/template/hello*") + + instance := htmlRender.Instance("hello.tmpl", map[string]interface{}{ + "name": "thinkerou", + }) + + err := instance.Render(w) + + assert.NoError(t, err) + assert.Equal(t, "

Hello thinkerou

", w.Body.String()) + assert.Equal(t, "text/html; charset=utf-8", w.Header().Get("Content-Type")) +} + +func TestRenderHTMLProductionParseFiles(t *testing.T) { + w := httptest.NewRecorder() + + htmlRender := HTMLProduction{ + Template: template.New("").Delims("{[{", "}]}"), + } + htmlRender.ParseFiles("../testdata/template/hello.tmpl") + + instance := htmlRender.Instance("hello.tmpl", map[string]interface{}{ + "name": "thinkerou", + }) + + err := instance.Render(w) + + assert.NoError(t, err) + assert.Equal(t, "

Hello thinkerou

", w.Body.String()) + assert.Equal(t, "text/html; charset=utf-8", w.Header().Get("Content-Type")) +} + +func TestRenderHTMLProductionParseGlob(t *testing.T) { + w := httptest.NewRecorder() + + htmlRender := HTMLProduction{ + Template: template.New("").Delims("{[{", "}]}"), + } + htmlRender.ParseGlob("../testdata/template/hello*") + + instance := htmlRender.Instance("hello.tmpl", map[string]interface{}{ + "name": "thinkerou", + }) + + err := instance.Render(w) + + assert.NoError(t, err) + assert.Equal(t, "

Hello thinkerou

", w.Body.String()) + assert.Equal(t, "text/html; charset=utf-8", w.Header().Get("Content-Type")) +} + func TestRenderReader(t *testing.T) { w := httptest.NewRecorder()