summaryrefslogtreecommitdiffstats
path: root/hugolib/site_test.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-03-09 14:05:31 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2016-03-09 14:37:58 +0100
commit973393c99e3e6927e1c8ef27b0cd8f22eae3f4e4 (patch)
tree4e2635062426b690c46f8cbf42c164df6154e757 /hugolib/site_test.go
parent9896cd0030da75bf6acab14dad0a7f78472ceff9 (diff)
Create template clone for late template execution
Fixing some breaking blogs on Go 1.6 Fixes #1879
Diffstat (limited to 'hugolib/site_test.go')
-rw-r--r--hugolib/site_test.go66
1 files changed, 27 insertions, 39 deletions
diff --git a/hugolib/site_test.go b/hugolib/site_test.go
index f84ae5902..dec6cb29c 100644
--- a/hugolib/site_test.go
+++ b/hugolib/site_test.go
@@ -30,7 +30,6 @@ import (
"github.com/spf13/hugo/hugofs"
"github.com/spf13/hugo/source"
"github.com/spf13/hugo/target"
- "github.com/spf13/hugo/tpl"
"github.com/spf13/viper"
"github.com/stretchr/testify/assert"
)
@@ -65,6 +64,10 @@ more text
`
)
+func init() {
+ testMode = true
+}
+
// Issue #1797
func TestReadPagesFromSourceWithEmptySource(t *testing.T) {
viper.Reset()
@@ -110,14 +113,6 @@ func createAndRenderPages(t *testing.T, s *Site) {
}
}
-func templatePrep(s *Site) {
- s.Tmpl = tpl.New()
- s.Tmpl.LoadTemplates(s.absLayoutDir())
- if s.hasTheme() {
- s.Tmpl.LoadTemplatesWithPrefix(s.absThemeDir()+"/layouts", "theme")
- }
-}
-
func pageMust(p *Page, err error) *Page {
if err != nil {
panic(err)
@@ -129,7 +124,7 @@ func TestDegenerateRenderThingMissingTemplate(t *testing.T) {
p, _ := NewPageFrom(strings.NewReader(PAGE_SIMPLE_TITLE), "content/a/file.md")
p.Convert()
s := new(Site)
- templatePrep(s)
+ s.prepTemplates()
err := s.renderThing(p, "foobar", nil)
if err == nil {
t.Errorf("Expected err to be returned when missing the template.")
@@ -138,8 +133,7 @@ func TestDegenerateRenderThingMissingTemplate(t *testing.T) {
func TestAddInvalidTemplate(t *testing.T) {
s := new(Site)
- templatePrep(s)
- err := s.addTemplate("missing", TEMPLATE_MISSING_FUNC)
+ err := s.prepTemplates("missing", TEMPLATE_MISSING_FUNC)
if err == nil {
t.Fatalf("Expecting the template to return an error")
}
@@ -182,7 +176,6 @@ func TestRenderThing(t *testing.T) {
for i, test := range tests {
s := new(Site)
- templatePrep(s)
p, err := NewPageFrom(strings.NewReader(test.content), "content/a/file.md")
p.Convert()
@@ -190,7 +183,9 @@ func TestRenderThing(t *testing.T) {
t.Fatalf("Error parsing buffer: %s", err)
}
templateName := fmt.Sprintf("foobar%d", i)
- err = s.addTemplate(templateName, test.template)
+
+ s.prepTemplates(templateName, test.template)
+
if err != nil {
t.Fatalf("Unable to add template: %s", err)
}
@@ -230,17 +225,14 @@ func TestRenderThingOrDefault(t *testing.T) {
for i, test := range tests {
s := &Site{}
- templatePrep(s)
p, err := NewPageFrom(strings.NewReader(PAGE_SIMPLE_TITLE), "content/a/file.md")
if err != nil {
t.Fatalf("Error parsing buffer: %s", err)
}
templateName := fmt.Sprintf("default%d", i)
- err = s.addTemplate(templateName, test.template)
- if err != nil {
- t.Fatalf("Unable to add template: %s", err)
- }
+
+ s.prepTemplates(templateName, test.template)
var err2 error
@@ -387,9 +379,8 @@ THE END.`, refShortcode))},
}
s.initializeSiteInfo()
- templatePrep(s)
- must(s.addTemplate("_default/single.html", "{{.Content}}"))
+ s.prepTemplates("_default/single.html", "{{.Content}}")
createAndRenderPages(t, s)
@@ -454,15 +445,13 @@ func doTestShouldAlwaysHaveUglyURLs(t *testing.T, uglyURLs bool) {
}
s.initializeSiteInfo()
- templatePrep(s)
- must(s.addTemplate("index.html", "Home Sweet {{ if.IsHome }}Home{{ end }}."))
- must(s.addTemplate("_default/single.html", "{{.Content}}{{ if.IsHome }}This is not home!{{ end }}"))
- must(s.addTemplate("404.html", "Page Not Found.{{ if.IsHome }}This is not home!{{ end }}"))
-
- // make sure the XML files also end up with ugly urls
- must(s.addTemplate("rss.xml", "<root>RSS</root>"))
- must(s.addTemplate("sitemap.xml", "<root>SITEMAP</root>"))
+ s.prepTemplates(
+ "index.html", "Home Sweet {{ if.IsHome }}Home{{ end }}.",
+ "_default/single.html", "{{.Content}}{{ if.IsHome }}This is not home!{{ end }}",
+ "404.html", "Page Not Found.{{ if.IsHome }}This is not home!{{ end }}",
+ "rss.xml", "<root>RSS</root>",
+ "sitemap.xml", "<root>SITEMAP</root>")
createAndRenderPages(t, s)
s.RenderHomePage()
@@ -549,10 +538,9 @@ func doTestSectionNaming(t *testing.T, canonify, uglify, pluralize bool) {
}
s.initializeSiteInfo()
- templatePrep(s)
-
- must(s.addTemplate("_default/single.html", "{{.Content}}"))
- must(s.addTemplate("_default/list.html", "{{ .Title }}"))
+ s.prepTemplates(
+ "_default/single.html", "{{.Content}}",
+ "_default/list.html", "{{ .Title }}")
createAndRenderPages(t, s)
s.RenderSectionLists()
@@ -614,11 +602,11 @@ func TestSkipRender(t *testing.T) {
}
s.initializeSiteInfo()
- templatePrep(s)
- must(s.addTemplate("_default/single.html", "{{.Content}}"))
- must(s.addTemplate("head", "<head><script src=\"script.js\"></script></head>"))
- must(s.addTemplate("head_abs", "<head><script src=\"/script.js\"></script></head>"))
+ s.prepTemplates(
+ "_default/single.html", "{{.Content}}",
+ "head", "<head><script src=\"script.js\"></script></head>",
+ "head_abs", "<head><script src=\"/script.js\"></script></head>")
createAndRenderPages(t, s)
@@ -670,8 +658,8 @@ func TestAbsURLify(t *testing.T) {
}
t.Logf("Rendering with BaseURL %q and CanonifyURLs set %v", viper.GetString("baseURL"), canonify)
s.initializeSiteInfo()
- templatePrep(s)
- must(s.addTemplate("blue/single.html", TEMPLATE_WITH_URL_ABS))
+
+ s.prepTemplates("blue/single.html", TEMPLATE_WITH_URL_ABS)
if err := s.CreatePages(); err != nil {
t.Fatalf("Unable to create pages: %s", err)