Fix RSS Title regression

And add tests to make sure it doesn't happen again.

Fixes #2645
This commit is contained in:
Bjørn Erik Pedersen 2016-10-28 14:46:33 +02:00
parent 342b6fe8a5
commit 6a3d1037b3
3 changed files with 12 additions and 26 deletions

View file

@ -20,44 +20,27 @@ import (
"github.com/spf13/viper" "github.com/spf13/viper"
) )
const rssTemplate = `<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ .Title }} on {{ .Site.Title }} </title>
<link>{{ .Permalink }}</link>
<language>en-us</language>
<author>Steve Francia</author>
<rights>Francia; all rights reserved.</rights>
<updated>{{ .Date }}</updated>
{{ range .Data.Pages }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 MST" }}</pubDate>
<author>Steve Francia</author>
<guid>{{ .Permalink }}</guid>
<description>{{ .Content | html }}</description>
</item>
{{ end }}
</channel>
</rss>`
func TestRSSOutput(t *testing.T) { func TestRSSOutput(t *testing.T) {
testCommonResetState() testCommonResetState()
rssURI := "public/customrss.xml" rssURI := "customrss.xml"
viper.Set("baseURL", "http://auth/bub/") viper.Set("baseURL", "http://auth/bub/")
viper.Set("rssURI", rssURI) viper.Set("rssURI", rssURI)
viper.Set("title", "RSSTest")
for _, s := range weightedSources { for _, s := range weightedSources {
writeSource(t, filepath.Join("content", s.Name), string(s.Content)) writeSource(t, filepath.Join("content", "sect", s.Name), string(s.Content))
} }
writeSource(t, filepath.Join("layouts", "rss.xml"), rssTemplate)
if err := buildAndRenderSite(newSiteDefaultLang()); err != nil { if err := buildAndRenderSite(newSiteDefaultLang()); err != nil {
t.Fatalf("Failed to build site: %s", err) t.Fatalf("Failed to build site: %s", err)
} }
assertFileContent(t, filepath.Join("public", rssURI), true, "<?xml", "rss version") // Home RSS
assertFileContent(t, filepath.Join("public", rssURI), true, "<?xml", "rss version", "RSSTest")
// Section RSS
assertFileContent(t, filepath.Join("public", "sect", rssURI), true, "<?xml", "rss version", "Sects on RSSTest")
// Taxonomy RSS
assertFileContent(t, filepath.Join("public", "categories", "hugo", rssURI), true, "<?xml", "rss version", "Hugo on RSSTest")
} }

View file

@ -1883,6 +1883,7 @@ func taxonomyRenderer(prepare bool, s *Site, taxes <-chan taxRenderInfo, results
if !viper.GetBool("disableRSS") { if !viper.GetBool("disableRSS") {
// XML Feed // XML Feed
rssNode := s.newNode(fmt.Sprintf("%s-%s-rss", t.plural, t.key)) rssNode := s.newNode(fmt.Sprintf("%s-%s-rss", t.plural, t.key))
rssNode.Title = n.Title
rssURI := viper.GetString("rssURI") rssURI := viper.GetString("rssURI")
s.setURLs(rssNode, base+"/"+rssURI) s.setURLs(rssNode, base+"/"+rssURI)
rssNode.Data = n.Data rssNode.Data = n.Data
@ -2016,6 +2017,7 @@ func (s *Site) renderSectionLists(prepare bool) error {
// XML Feed // XML Feed
rssURI := viper.GetString("rssURI") rssURI := viper.GetString("rssURI")
rssNode := s.newSectionListNode(true, sectionName+"-rss", section, data, 0) rssNode := s.newSectionListNode(true, sectionName+"-rss", section, data, 0)
rssNode.Title = n.Title
s.setURLs(rssNode, section+"/"+rssURI) s.setURLs(rssNode, section+"/"+rssURI)
rssLayouts := []string{"section/" + section + ".rss.xml", "_default/rss.xml", "rss.xml", "_internal/_default/rss.xml"} rssLayouts := []string{"section/" + section + ".rss.xml", "_default/rss.xml", "rss.xml", "_internal/_default/rss.xml"}
if err := s.renderAndWriteXML("section "+section+" rss", rssNode.addLangPathPrefix(section+"/"+rssURI), rssNode, s.appendThemeTemplates(rssLayouts)...); err != nil { if err := s.renderAndWriteXML("section "+section+" rss", rssNode.addLangPathPrefix(section+"/"+rssURI), rssNode, s.appendThemeTemplates(rssLayouts)...); err != nil {

View file

@ -623,6 +623,7 @@ date = "2012-01-01"
publishdate = "2012-01-01" publishdate = "2012-01-01"
my_param = "baz" my_param = "baz"
my_date = 2010-05-27T07:32:00Z my_date = 2010-05-27T07:32:00Z
categories = [ "hugo" ]
+++ +++
Front Matter with Ordered Pages 4. This is longer content`) Front Matter with Ordered Pages 4. This is longer content`)