ref: 274d324c8bb818a76ffc5c35afcc33f4cf9eb5c3
parent: fa55cd98575185d1e86b3de48796aeb424f8933a
author: Noah Campbell <noahcampbell@gmail.com>
date: Sun Aug 4 15:02:15 EDT 2013
Introduce unit testing for page.go
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -78,10 +78,9 @@
func initializePage(filename string) (page Page) { page = Page{contentType: "",- File: File{FileName: filename,- Extension: "html"},
+ File: File{FileName: filename, Extension: "html"},+ Node: Node{Keywords: make([]string, 10, 30)}, Params: make(map[string]interface{}),- Node: Node{Keywords: make([]string, 10, 30)},Markup: "md"}
page.Date, _ = time.Parse("20060102", "20080101")page.setSection()
--- a/hugolib/path_seperators_test.go
+++ b/hugolib/path_seperators_test.go
@@ -1,16 +1,32 @@
package hugolib
import (
- "testing"
"path/filepath"
+ "testing"
)
func TestDegenerateMissingFolderInPageFilename(t *testing.T) { p := NewPage(filepath.Join("foobar"))- if p != nil {- t.Fatalf("Creating a new Page without a subdirectory should result in nil page")+ if p.Section != "" {+ t.Fatalf("No section should be set for a file path: foobar")}
}
+
+func TestCreateNewPage(t *testing.T) {+ toCheck := []map[string]string{+ {"input": filepath.Join("sub", "foobar.html"), "expect": "sub"},+ {"input": filepath.Join("content", "sub", "foobar.html"), "expect": "sub"},+ {"input": filepath.Join("content", "dub", "sub", "foobar.html"), "expect": "sub"},+ }
+
+ for _, el := range toCheck {+ p := NewPage(el["input"])
+ if p.Section != el["expect"] {+ t.Fatalf("Section not set to %s for page %s. Got: %s", el["expect"], el["input"], p.Section)+ }
+ }
+}
+
func TestSettingOutFileOnPageContainsCorrectSlashes(t *testing.T) { s := NewSite(&Config{})--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -297,7 +297,7 @@
func (s *Site) WritePages() { for _, p := range s.Pages {- s.WritePublic(p.Section + slash + p.OutFile, p.RenderedContent.Bytes())
+ s.WritePublic(p.Section+slash+p.OutFile, p.RenderedContent.Bytes())
}
}
@@ -409,7 +409,7 @@
if err != nil {return err
}
- s.WritePublic(section + slash + "index.html", x.Bytes())
+ s.WritePublic(section+slash+"index.html", x.Bytes())
if a := s.Tmpl.Lookup("rss.xml"); a != nil {// XML Feed
@@ -417,7 +417,7 @@
n.Permalink = template.HTML(string(n.Site.BaseUrl) + n.Url)
y := s.NewXMLBuffer()
s.Tmpl.ExecuteTemplate(y, "rss.xml", n)
- s.WritePublic(section + slash + "index.xml", y.Bytes())
+ s.WritePublic(section+slash+"index.xml", y.Bytes())
}
}
return nil
--
⑨