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 {
permalink = path.Join(dir, p.Slug, p.Extension)
} else {
permalink = dir + "/" + p.Slug + "/"
permalink = path.Join(dir, p.Slug) + "/"
}
} else if len(pUrl) > 2 {
permalink = pUrl

View file

@ -7,12 +7,18 @@ import (
func TestPermalink(t *testing.T) {
tests := []struct {
file string
dir string
base template.URL
slug string
expectedAbs string
expectedRel string
}{
{"", "/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/", "", "", "/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 {
@ -21,7 +27,13 @@ func TestPermalink(t *testing.T) {
UrlPath: UrlPath{Section: "z"},
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()