mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge pull request #3890 from daniellee/joinurlfragments
No added trailing slash if proxypath is empty in JoinUrlFragments
This commit is contained in:
@@ -27,6 +27,11 @@ func (r *UrlQueryReader) Get(name string, def string) string {
|
|||||||
func JoinUrlFragments(a, b string) string {
|
func JoinUrlFragments(a, b string) string {
|
||||||
aslash := strings.HasSuffix(a, "/")
|
aslash := strings.HasSuffix(a, "/")
|
||||||
bslash := strings.HasPrefix(b, "/")
|
bslash := strings.HasPrefix(b, "/")
|
||||||
|
|
||||||
|
if len(b) == 0 {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
case aslash && bslash:
|
case aslash && bslash:
|
||||||
return a + b[1:]
|
return a + b[1:]
|
||||||
|
|||||||
46
pkg/util/url_test.go
Normal file
46
pkg/util/url_test.go
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
package util
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
. "github.com/smartystreets/goconvey/convey"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestUrl(t *testing.T) {
|
||||||
|
|
||||||
|
Convey("When joining two urls where right hand side is empty", t, func() {
|
||||||
|
result := JoinUrlFragments("http://localhost:8080", "")
|
||||||
|
|
||||||
|
So(result, ShouldEqual, "http://localhost:8080")
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("When joining two urls where right hand side is empty and lefthand side has a trailing slash", t, func() {
|
||||||
|
result := JoinUrlFragments("http://localhost:8080/", "")
|
||||||
|
|
||||||
|
So(result, ShouldEqual, "http://localhost:8080/")
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("When joining two urls where neither has a trailing slash", t, func() {
|
||||||
|
result := JoinUrlFragments("http://localhost:8080", "api")
|
||||||
|
|
||||||
|
So(result, ShouldEqual, "http://localhost:8080/api")
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("When joining two urls where lefthand side has a trailing slash", t, func() {
|
||||||
|
result := JoinUrlFragments("http://localhost:8080/", "api")
|
||||||
|
|
||||||
|
So(result, ShouldEqual, "http://localhost:8080/api")
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("When joining two urls where righthand side has preceding slash", t, func() {
|
||||||
|
result := JoinUrlFragments("http://localhost:8080", "/api")
|
||||||
|
|
||||||
|
So(result, ShouldEqual, "http://localhost:8080/api")
|
||||||
|
})
|
||||||
|
|
||||||
|
Convey("When joining two urls where righthand side has trailing slash", t, func() {
|
||||||
|
result := JoinUrlFragments("http://localhost:8080", "api/")
|
||||||
|
|
||||||
|
So(result, ShouldEqual, "http://localhost:8080/api/")
|
||||||
|
})
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user