diff options
author | Vincent Batoufflet <vincent@batoufflet.info> | 2014-05-07 08:57:37 +0200 |
---|---|---|
committer | spf13 <steve.francia@gmail.com> | 2014-05-09 23:11:42 -0400 |
commit | 35926dcf3742df915a9d535d7178a363c666e840 (patch) | |
tree | 70fb7f0564c0dbcb8463da29f2e6189cf8a43a1b /hugolib | |
parent | 6049c3a10cedd4b05a23130811671ce8712b76f9 (diff) |
Add Sitemap testing
Diffstat (limited to 'hugolib')
-rw-r--r-- | hugolib/sitemap_test.go | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/hugolib/sitemap_test.go b/hugolib/sitemap_test.go new file mode 100644 index 000000000..f49212694 --- /dev/null +++ b/hugolib/sitemap_test.go @@ -0,0 +1,64 @@ +package hugolib + +import ( + "bytes" + "testing" + + "github.com/spf13/hugo/source" + "github.com/spf13/hugo/target" + "github.com/spf13/viper" +) + +const SITEMAP_TEMPLATE = `<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> + {{ range .Data.Pages }} + <url> + <loc>{{ .Permalink }}</loc> + <lastmod>{{ safeHtml ( .Date.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ with .Sitemap.ChangeFreq }} + <changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }} + <priority>{{ .Sitemap.Priority }}</priority>{{ end }} + </url> + {{ end }} +</urlset>` + +func TestSitemapOutput(t *testing.T) { + files := make(map[string][]byte) + target := &target.InMemoryTarget{Files: files} + + viper.Set("baseurl", "http://auth/bub/") + + s := &Site{ + Target: target, + Source: &source.InMemorySource{ByteSource: WEIGHTED_SOURCES}, + } + + s.initializeSiteInfo() + + s.prepTemplates() + s.addTemplate("sitemap.xml", SITEMAP_TEMPLATE) + + if err := s.CreatePages(); err != nil { + t.Fatalf("Unable to create pages: %s", err) + } + + if err := s.BuildSiteMeta(); err != nil { + t.Fatalf("Unable to build site metadata: %s", err) + } + + if err := s.RenderHomePage(); err != nil { + t.Fatalf("Unable to RenderHomePage: %s", err) + } + + if err := s.RenderSitemap(); err != nil { + t.Fatalf("Unable to RenderSitemap: %s", err) + } + + if _, ok := files["sitemap.xml"]; !ok { + t.Errorf("Unable to locate: sitemap.xml") + t.Logf("%q", files) + } + + sitemap, _ := files["sitemap.xml"] + if !bytes.HasPrefix(sitemap, []byte("<?xml")) { + t.Errorf("Sitemap file should start with <?xml. %s", sitemap) + } +} |