summaryrefslogtreecommitdiffstats
path: root/tpl/template_test.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-01-10 10:55:03 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-02-04 11:37:25 +0700
commitc71e1b106e6011d148cac899f83c4685dee33a22 (patch)
treec5c7090f0c2398c7771e4908ebcc97aa7714ffd2 /tpl/template_test.go
parent0ada40591216572b0e4c6a8ab986b0aa4fb13c13 (diff)
all: Refactor to nonglobal file systems
Updates #2701 Fixes #2951
Diffstat (limited to 'tpl/template_test.go')
-rw-r--r--tpl/template_test.go110
1 files changed, 72 insertions, 38 deletions
diff --git a/tpl/template_test.go b/tpl/template_test.go
index cf691858b..f22eb78ee 100644
--- a/tpl/template_test.go
+++ b/tpl/template_test.go
@@ -25,9 +25,21 @@ import (
"testing"
"github.com/spf13/afero"
+ "github.com/spf13/hugo/deps"
+ "github.com/spf13/hugo/helpers"
"github.com/spf13/hugo/hugofs"
+ "github.com/spf13/hugo/tplapi"
+ "github.com/spf13/viper"
+ "github.com/stretchr/testify/require"
)
+func testReset() {
+ viper.Reset()
+
+ // TODO(bep) viper-globals
+ viper.Set("currentContentLanguage", helpers.NewLanguage("en"))
+}
+
// Some tests for Issue #1178 -- Ace
func TestAceTemplates(t *testing.T) {
@@ -68,11 +80,19 @@ html lang=en
d := "DATA"
- templ := New(logger, func(templ Template) error {
+ config := defaultDepsConfig
+ config.WithTemplate = func(templ tplapi.Template) error {
return templ.AddAceTemplate("mytemplate.ace", basePath, innerPath,
[]byte(this.baseContent), []byte(this.innerContent))
+ }
- })
+ a := deps.New(config)
+
+ if err := a.LoadTemplates(); err != nil {
+ t.Fatal(err)
+ }
+
+ templ := a.Tmpl.(*GoHTMLTemplate)
if len(templ.errors) > 0 && this.expectErr == 0 {
t.Errorf("Test %d with root '%s' errored: %v", i, root, templ.errors)
@@ -81,7 +101,7 @@ html lang=en
}
var buff bytes.Buffer
- err := templ.ExecuteTemplate(&buff, "mytemplate.html", d)
+ err := a.Tmpl.ExecuteTemplate(&buff, "mytemplate.html", d)
if err != nil && this.expectErr == 0 {
t.Errorf("Test %d with root '%s' errored: %s", i, root, err)
@@ -93,6 +113,7 @@ html lang=en
t.Errorf("Test %d with root '%s' got\n%s\nexpected\n%s", i, root, result, this.expect)
}
}
+
}
}
@@ -124,53 +145,60 @@ func TestAddTemplateFileWithMaster(t *testing.T) {
{`tpl`, `{{.0.E}}`, 0, false},
} {
- hugofs.InitMemFs()
- templ := New(logger)
overlayTplName := "ot"
masterTplName := "mt"
finalTplName := "tp"
- if this.writeSkipper != 1 {
- afero.WriteFile(hugofs.Source(), masterTplName, []byte(this.masterTplContent), 0644)
- }
- if this.writeSkipper != 2 {
- afero.WriteFile(hugofs.Source(), overlayTplName, []byte(this.overlayTplContent), 0644)
- }
+ defaultDepsConfig.WithTemplate = func(templ tplapi.Template) error {
- err := templ.AddTemplateFileWithMaster(finalTplName, overlayTplName, masterTplName)
+ err := templ.AddTemplateFileWithMaster(finalTplName, overlayTplName, masterTplName)
- if b, ok := this.expect.(bool); ok && !b {
- if err == nil {
- t.Errorf("[%d] AddTemplateFileWithMaster didn't return an expected error", i)
- }
- } else {
+ if b, ok := this.expect.(bool); ok && !b {
+ if err == nil {
+ t.Errorf("[%d] AddTemplateFileWithMaster didn't return an expected error", i)
+ }
+ } else {
- if err != nil {
- t.Errorf("[%d] AddTemplateFileWithMaster failed: %s", i, err)
- continue
- }
+ if err != nil {
+ t.Errorf("[%d] AddTemplateFileWithMaster failed: %s", i, err)
+ return nil
+ }
- resultTpl := templ.Lookup(finalTplName)
+ resultTpl := templ.Lookup(finalTplName)
- if resultTpl == nil {
- t.Errorf("[%d] AddTemplateFileWithMaster: Result template not found", i)
- continue
- }
+ if resultTpl == nil {
+ t.Errorf("[%d] AddTemplateFileWithMaster: Result template not found", i)
+ return nil
+ }
- var b bytes.Buffer
- err := resultTpl.Execute(&b, nil)
+ var b bytes.Buffer
+ err := resultTpl.Execute(&b, nil)
- if err != nil {
- t.Errorf("[%d] AddTemplateFileWithMaster execute failed: %s", i, err)
- continue
- }
- resultContent := b.String()
+ if err != nil {
+ t.Errorf("[%d] AddTemplateFileWithMaster execute failed: %s", i, err)
+ return nil
+ }
+ resultContent := b.String()
- if resultContent != this.expect {
- t.Errorf("[%d] AddTemplateFileWithMaster got \n%s but expected \n%v", i, resultContent, this.expect)
+ if resultContent != this.expect {
+ t.Errorf("[%d] AddTemplateFileWithMaster got \n%s but expected \n%v", i, resultContent, this.expect)
+ }
}
+
+ return nil
}
+ defaultDepsConfig.Fs = hugofs.NewMem()
+
+ if this.writeSkipper != 1 {
+ afero.WriteFile(defaultDepsConfig.Fs.Source, masterTplName, []byte(this.masterTplContent), 0644)
+ }
+ if this.writeSkipper != 2 {
+ afero.WriteFile(defaultDepsConfig.Fs.Source, overlayTplName, []byte(this.overlayTplContent), 0644)
+ }
+
+ deps.New(defaultDepsConfig)
+
}
}
@@ -258,23 +286,29 @@ func TestTplGoFuzzReports(t *testing.T) {
H: "a,b,c,d,e,f",
}
- templ := New(logger, func(templ Template) error {
+ defaultDepsConfig.WithTemplate = func(templ tplapi.Template) error {
return templ.AddTemplate("fuzz", this.data)
+ }
+
+ de := deps.New(defaultDepsConfig)
+ require.NoError(t, de.LoadTemplates())
- })
+ templ := de.Tmpl.(*GoHTMLTemplate)
if len(templ.errors) > 0 && this.expectErr == 0 {
t.Errorf("Test %d errored: %v", i, templ.errors)
} else if len(templ.errors) == 0 && this.expectErr == 1 {
t.Errorf("#1 Test %d should have errored", i)
}
- err := templ.ExecuteTemplate(ioutil.Discard, "fuzz", d)
+
+ err := de.Tmpl.ExecuteTemplate(ioutil.Discard, "fuzz", d)
if err != nil && this.expectErr == 0 {
t.Fatalf("Test %d errored: %s", i, err)
} else if err == nil && this.expectErr == 2 {
t.Fatalf("#2 Test %d should have errored", i)
}
+
}
}