mirror of
https://github.com/gohugoio/hugo.git
synced 2025-02-16 19:11:07 +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 (
|
||||
"path/filepath"
|
||||
"time"
|
||||
"strings"
|
||||
"testing"
|
||||
"html/template"
|
||||
|
@ -54,7 +55,7 @@ var SIMPLE_PAGE_JSON = `
|
|||
|
||||
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 = `
|
||||
{
|
||||
"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) {
|
||||
p, err := ReadFrom(strings.NewReader(SIMPLE_PAGE), "simple")
|
||||
if err != nil {
|
||||
|
@ -202,6 +209,18 @@ func TestPageWithMoreTag(t *testing.T) {
|
|||
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) {
|
||||
var tests = []struct {
|
||||
r string
|
||||
|
|
|
@ -17,6 +17,8 @@ content`
|
|||
var TEMPLATE_MISSING_FUNC = "{{ .Title | funcdoesnotexists }}"
|
||||
var TEMPLATE_FUNC = "{{ .Title | urlize }}"
|
||||
var TEMPLATE_CONTENT = "{{ .Content }}"
|
||||
var TEMPLATE_DATE = "{{ .Date }}"
|
||||
var INVALID_TEMPLATE_FORMAT_DATE = "{{ .Date.Format time.RFC3339 }}"
|
||||
|
||||
var PAGE_URL_SPECIFIED = `---
|
||||
title: simple template
|
||||
|
@ -106,6 +108,7 @@ func TestRenderThing(t *testing.T) {
|
|||
{PAGE_SIMPLE_TITLE, TEMPLATE_TITLE, "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"},
|
||||
{SIMPLE_PAGE_RFC3339_DATE, TEMPLATE_DATE, "2013-05-17 16:59:30 +0000 UTC"},
|
||||
}
|
||||
|
||||
s := new(Site)
|
||||
|
@ -129,7 +132,7 @@ func TestRenderThing(t *testing.T) {
|
|||
}
|
||||
|
||||
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