summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbep <bjorn.erik.pedersen@gmail.com>2015-05-05 16:02:52 +0200
committerbep <bjorn.erik.pedersen@gmail.com>2015-05-05 16:02:44 +0200
commitbea9280fb35b156062e63afffd9d85ac5aac88f5 (patch)
tree4b70a598d06bdcefb2b2aba295c19c111b65235e
parentbef3df7481027254a6711965828cd120fa5deb7c (diff)
Do not add trailing slash to baseURL
Fixes #1105
-rw-r--r--helpers/url.go2
-rw-r--r--helpers/url_test.go9
-rw-r--r--hugolib/site_url_test.go25
3 files changed, 30 insertions, 6 deletions
diff --git a/helpers/url.go b/helpers/url.go
index 13421632f..c780579d6 100644
--- a/helpers/url.go
+++ b/helpers/url.go
@@ -77,7 +77,7 @@ func sanitizeURLWithFlags(in string, f purell.NormalizationFlags) string {
if err != nil {
panic(err)
}
- if !strings.HasPrefix(u.Path, "/") {
+ if len(u.Path) > 0 && !strings.HasPrefix(u.Path, "/") {
u.Path = "/" + u.Path
}
return u.String()
diff --git a/helpers/url_test.go b/helpers/url_test.go
index b11be3521..1dabda273 100644
--- a/helpers/url_test.go
+++ b/helpers/url_test.go
@@ -31,11 +31,12 @@ func TestSanitizeURL(t *testing.T) {
input string
expected string
}{
- {"http://foo.bar/", "http://foo.bar/"},
+ {"http://foo.bar/", "http://foo.bar"},
+ {"http://foo.bar", "http://foo.bar"}, // issue #1105
{"http://foo.bar/zoo/", "http://foo.bar/zoo"}, // issue #931
}
- for _, test := range tests {
+ for i, test := range tests {
o1 := SanitizeURL(test.input)
o2 := SanitizeURLKeepTrailingSlash(test.input)
@@ -46,10 +47,10 @@ func TestSanitizeURL(t *testing.T) {
}
if o1 != test.expected {
- t.Errorf("Expected %#v, got %#v\n", test.expected, o1)
+ t.Errorf("[%d] 1: Expected %#v, got %#v\n", i, test.expected, o1)
}
if o2 != expected2 {
- t.Errorf("Expected %#v, got %#v\n", expected2, o2)
+ t.Errorf("[%d] 2: Expected %#v, got %#v\n", i, expected2, o2)
}
}
}
diff --git a/hugolib/site_url_test.go b/hugolib/site_url_test.go
index f2f25f80d..c7fc64e44 100644
--- a/hugolib/site_url_test.go
+++ b/hugolib/site_url_test.go
@@ -1,7 +1,6 @@
package hugolib
import (
- "html/template"
"path/filepath"
"testing"
@@ -10,6 +9,7 @@ import (
"github.com/spf13/hugo/source"
"github.com/spf13/hugo/target"
"github.com/spf13/viper"
+ "html/template"
)
const SLUG_DOC_1 = "---\ntitle: slug doc 1\nslug: slug-doc-1\naliases:\n - sd1/foo/\n - sd2\n - sd3/\n - sd4.html\n---\nslug doc 1 content\n"
@@ -52,6 +52,29 @@ var urlFakeSource = []source.ByteSource{
{filepath.FromSlash("content/blue/doc2.md"), []byte(SLUG_DOC_2)},
}
+// Issue #1105
+func TestShouldNotAddTrailingSlashToBaseURL(t *testing.T) {
+
+ for i, this := range []struct {
+ in string
+ expected string
+ }{
+ {"http://base.com/", "http://base.com/"},
+ {"http://base.com/sub/", "http://base.com/sub/"},
+ {"http://base.com/sub", "http://base.com/sub"},
+ {"http://base.com", "http://base.com"}} {
+
+ viper.Set("BaseURL", this.in)
+ s := &Site{}
+ s.initializeSiteInfo()
+
+ if s.Info.BaseURL != template.URL(this.expected) {
+ t.Errorf("[%d] got %s expected %s", i, s.Info.BaseURL, this.expected)
+ }
+ }
+
+}
+
func TestPageCount(t *testing.T) {
hugofs.DestinationFS = new(afero.MemMapFs)