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:
Noah Campbell 2013-09-03 14:51:06 -07:00
parent 3ecc698f5e
commit 207d8fb7af
2 changed files with 24 additions and 2 deletions

View file

@ -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

View file

@ -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 &#43;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)
}
}
}