diff options
Diffstat (limited to 'hugolib/sitemap_test.go')
-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) + } +} |