fixed trailing dir slash when using slug

See testcase, dir + slug contained double slash when dir had a trailing
slash.

Signed-off-by: Noah Campbell <noahcampbell@gmail.com>
This commit is contained in:
Tim Esselens 2013-11-19 14:10:03 +01:00 committed by Noah Campbell
parent e425226a28
commit 860f982cc4
2 changed files with 16 additions and 4 deletions

View file

@ -265,7 +265,7 @@ func (p *Page) permalink() (*url.URL, error) {
if p.Site.Config != nil && p.Site.Config.UglyUrls { if p.Site.Config != nil && p.Site.Config.UglyUrls {
permalink = path.Join(dir, p.Slug, p.Extension) permalink = path.Join(dir, p.Slug, p.Extension)
} else { } else {
permalink = dir + "/" + p.Slug + "/" permalink = path.Join(dir, p.Slug) + "/"
} }
} else if len(pUrl) > 2 { } else if len(pUrl) > 2 {
permalink = pUrl permalink = pUrl

View file

@ -7,12 +7,18 @@ import (
func TestPermalink(t *testing.T) { func TestPermalink(t *testing.T) {
tests := []struct { tests := []struct {
file string
dir string
base template.URL base template.URL
slug string
expectedAbs string expectedAbs string
expectedRel string expectedRel string
}{ }{
{"", "/x/y/z/boofar", "/x/y/z/boofar"}, {"x/y/z/boofar.md", "x/y/z", "", "", "/x/y/z/boofar", "/x/y/z/boofar"},
{"http://barnew/", "http://barnew/x/y/z/boofar", "/x/y/z/boofar"}, {"x/y/z/boofar.md", "x/y/z/", "", "", "/x/y/z/boofar", "/x/y/z/boofar"},
{"x/y/z/boofar.md", "x/y/z/", "", "boofar", "/x/y/z/boofar/", "/x/y/z/boofar/"},
{"x/y/z/boofar.md", "x/y/z", "http://barnew/", "", "http://barnew/x/y/z/boofar", "/x/y/z/boofar"},
{"x/y/z/boofar.md", "x/y/z/", "http://barnew/", "boofar", "http://barnew/x/y/z/boofar/", "/x/y/z/boofar/"},
} }
for _, test := range tests { for _, test := range tests {
@ -21,7 +27,13 @@ func TestPermalink(t *testing.T) {
UrlPath: UrlPath{Section: "z"}, UrlPath: UrlPath{Section: "z"},
Site: SiteInfo{BaseUrl: test.base}, Site: SiteInfo{BaseUrl: test.base},
}, },
File: File{FileName: "x/y/z/boofar.md", Dir: "x/y/z"}, File: File{FileName: test.file, Dir: test.dir},
}
if test.slug != "" {
p.update(map[string]interface{}{
"slug": test.slug,
})
} }
u, err := p.Permalink() u, err := p.Permalink()