Add Sitemap testing

This commit is contained in:
Vincent Batoufflet 2014-05-07 08:57:37 +02:00 committed by spf13
parent 6049c3a10c
commit 35926dcf37

64
hugolib/sitemap_test.go Normal file
View file

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