summaryrefslogtreecommitdiffstats
path: root/hugolib/sitemap_test.go
diff options
context:
space:
mode:
authorVincent Batoufflet <vincent@batoufflet.info>2014-05-07 08:57:37 +0200
committerspf13 <steve.francia@gmail.com>2014-05-09 23:11:42 -0400
commit35926dcf3742df915a9d535d7178a363c666e840 (patch)
tree70fb7f0564c0dbcb8463da29f2e6189cf8a43a1b /hugolib/sitemap_test.go
parent6049c3a10cedd4b05a23130811671ce8712b76f9 (diff)
Add Sitemap testing
Diffstat (limited to 'hugolib/sitemap_test.go')
-rw-r--r--hugolib/sitemap_test.go64
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)
+ }
+}