mirror of
https://github.com/gohugoio/hugo.git
synced 2025-03-23 03:31:39 +00:00
Date rendering unit tests in pages
Tests to ensure rendering dates in templates is working correctly. Actually, I was running into invalid templates not giving warnings when I was trying to render a date.
This commit is contained in:
parent
3ecc698f5e
commit
207d8fb7af
2 changed files with 24 additions and 2 deletions
|
@ -2,6 +2,7 @@ package hugolib
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"time"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"html/template"
|
"html/template"
|
||||||
|
@ -54,7 +55,7 @@ var SIMPLE_PAGE_JSON = `
|
||||||
|
|
||||||
Content of the file goes Here
|
Content of the file goes Here
|
||||||
`
|
`
|
||||||
|
var SIMPLE_PAGE_RFC3339_DATE = "---\ntitle: RFC3339 Date\ndate: \"2013-05-17T16:59:30Z\"\n---\nrfc3339 content"
|
||||||
var SIMPLE_PAGE_JSON_MULTIPLE = `
|
var SIMPLE_PAGE_JSON_MULTIPLE = `
|
||||||
{
|
{
|
||||||
"title": "foobar",
|
"title": "foobar",
|
||||||
|
@ -165,6 +166,12 @@ func checkPageLayout(t *testing.T, page *Page, layout string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func checkPageDate(t *testing.T, page *Page, time time.Time) {
|
||||||
|
if page.Date != time {
|
||||||
|
t.Fatalf("Page date is: %s. Expected: %s", page.Date, time)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestCreateNewPage(t *testing.T) {
|
func TestCreateNewPage(t *testing.T) {
|
||||||
p, err := ReadFrom(strings.NewReader(SIMPLE_PAGE), "simple")
|
p, err := ReadFrom(strings.NewReader(SIMPLE_PAGE), "simple")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -202,6 +209,18 @@ func TestPageWithMoreTag(t *testing.T) {
|
||||||
checkPageLayout(t, p, "page/single.html")
|
checkPageLayout(t, p, "page/single.html")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPageWithDate(t *testing.T) {
|
||||||
|
p, err := ReadFrom(strings.NewReader(SIMPLE_PAGE_RFC3339_DATE), "simple")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Unable to create a page with frontmatter and body content: %s", err)
|
||||||
|
}
|
||||||
|
d, err := time.Parse(time.RFC3339, "2013-05-17T16:59:30Z")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Unable to prase page.")
|
||||||
|
}
|
||||||
|
checkPageDate(t, p, d)
|
||||||
|
}
|
||||||
|
|
||||||
func TestCreatePage(t *testing.T) {
|
func TestCreatePage(t *testing.T) {
|
||||||
var tests = []struct {
|
var tests = []struct {
|
||||||
r string
|
r string
|
||||||
|
|
|
@ -17,6 +17,8 @@ content`
|
||||||
var TEMPLATE_MISSING_FUNC = "{{ .Title | funcdoesnotexists }}"
|
var TEMPLATE_MISSING_FUNC = "{{ .Title | funcdoesnotexists }}"
|
||||||
var TEMPLATE_FUNC = "{{ .Title | urlize }}"
|
var TEMPLATE_FUNC = "{{ .Title | urlize }}"
|
||||||
var TEMPLATE_CONTENT = "{{ .Content }}"
|
var TEMPLATE_CONTENT = "{{ .Content }}"
|
||||||
|
var TEMPLATE_DATE = "{{ .Date }}"
|
||||||
|
var INVALID_TEMPLATE_FORMAT_DATE = "{{ .Date.Format time.RFC3339 }}"
|
||||||
|
|
||||||
var PAGE_URL_SPECIFIED = `---
|
var PAGE_URL_SPECIFIED = `---
|
||||||
title: simple template
|
title: simple template
|
||||||
|
@ -106,6 +108,7 @@ func TestRenderThing(t *testing.T) {
|
||||||
{PAGE_SIMPLE_TITLE, TEMPLATE_TITLE, "simple template"},
|
{PAGE_SIMPLE_TITLE, TEMPLATE_TITLE, "simple template"},
|
||||||
{PAGE_SIMPLE_TITLE, TEMPLATE_FUNC, "simple-template"},
|
{PAGE_SIMPLE_TITLE, TEMPLATE_FUNC, "simple-template"},
|
||||||
{PAGE_WITH_MD, TEMPLATE_CONTENT, "<h1>heading 1</h1>\n\n<p>text</p>\n\n<h2>heading 2</h2>\n\n<p>more text</p>\n"},
|
{PAGE_WITH_MD, TEMPLATE_CONTENT, "<h1>heading 1</h1>\n\n<p>text</p>\n\n<h2>heading 2</h2>\n\n<p>more text</p>\n"},
|
||||||
|
{SIMPLE_PAGE_RFC3339_DATE, TEMPLATE_DATE, "2013-05-17 16:59:30 +0000 UTC"},
|
||||||
}
|
}
|
||||||
|
|
||||||
s := new(Site)
|
s := new(Site)
|
||||||
|
@ -129,7 +132,7 @@ func TestRenderThing(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if string(html.Bytes()) != test.expected {
|
if string(html.Bytes()) != test.expected {
|
||||||
t.Errorf("Content does not match. Expected\n\t'%q'\ngot\n\t'%q'", test.expected, html)
|
t.Errorf("Content does not match.\nExpected\n\t'%q'\ngot\n\t'%q'", test.expected, html)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue