Add data tests

Updates #2309
This commit is contained in:
Bjørn Erik Pedersen 2016-08-10 08:51:57 +02:00
parent 5b331a18d7
commit 446e606a09

View file

@ -16,10 +16,12 @@ package hugolib
import ( import (
"path/filepath" "path/filepath"
"reflect" "reflect"
"strings"
"testing" "testing"
"github.com/spf13/hugo/parser" "github.com/spf13/hugo/parser"
"github.com/spf13/hugo/source" "github.com/spf13/hugo/source"
"github.com/stretchr/testify/require"
) )
func TestDataDirJSON(t *testing.T) { func TestDataDirJSON(t *testing.T) {
@ -104,3 +106,25 @@ func doTestDataDir(t *testing.T, expected interface{}, sources []source.Input) {
t.Errorf("Expected structure\n%#v got\n%#v", expected, s.Data) t.Errorf("Expected structure\n%#v got\n%#v", expected, s.Data)
} }
} }
func TestDataFromShortcode(t *testing.T) {
testCommonResetState()
writeSource(t, "data/hugo.toml", "slogan = \"Hugo Rocks!\"")
writeSource(t, "layouts/_default/single.html", `
* Slogan from template: {{ .Site.Data.hugo.slogan }}
* {{ .Content }}`)
writeSource(t, "layouts/shortcodes/d.html", `{{ .Page.Site.Data.hugo.slogan }}`)
writeSource(t, "content/c.md", `---
---
Slogan from shortcode: {{< d >}}
`)
h, err := newHugoSitesDefaultLanguage()
require.NoError(t, err)
require.NoError(t, h.Build(BuildCfg{}))
content := readSource(t, "public/c/index.html")
require.True(t, strings.Contains(content, "Slogan from template: Hugo Rocks!"), content)
require.True(t, strings.Contains(content, "Slogan from shortcode: Hugo Rocks!"), content)
}