Commit 89298d0c by Marcus Efraimsson Committed by GitHub

Merge pull request #12815 from tariq1890/url_query_fix

Fixing bug in url query reader and added test cases
parents a6a29f0b e8dfbe94
...@@ -10,7 +10,7 @@ type UrlQueryReader struct { ...@@ -10,7 +10,7 @@ type UrlQueryReader struct {
} }
func NewUrlQueryReader(urlInfo *url.URL) (*UrlQueryReader, error) { func NewUrlQueryReader(urlInfo *url.URL) (*UrlQueryReader, error) {
u, err := url.ParseQuery(urlInfo.String()) u, err := url.ParseQuery(urlInfo.RawQuery)
if err != nil { if err != nil {
return nil, err return nil, err
} }
......
...@@ -4,6 +4,7 @@ import ( ...@@ -4,6 +4,7 @@ import (
"testing" "testing"
. "github.com/smartystreets/goconvey/convey" . "github.com/smartystreets/goconvey/convey"
"net/url"
) )
func TestUrl(t *testing.T) { func TestUrl(t *testing.T) {
...@@ -43,4 +44,30 @@ func TestUrl(t *testing.T) { ...@@ -43,4 +44,30 @@ func TestUrl(t *testing.T) {
So(result, ShouldEqual, "http://localhost:8080/api/") So(result, ShouldEqual, "http://localhost:8080/api/")
}) })
Convey("When joining two urls where lefthand side has a trailing slash and righthand side has preceding slash", t, func() {
result := JoinUrlFragments("http://localhost:8080/", "/api/")
So(result, ShouldEqual, "http://localhost:8080/api/")
})
}
func TestNewUrlQueryReader(t *testing.T) {
u, _ := url.Parse("http://www.abc.com/foo?bar=baz&bar2=baz2")
uqr, _ := NewUrlQueryReader(u)
Convey("when trying to retrieve the first query value", t, func() {
result := uqr.Get("bar", "foodef")
So(result, ShouldEqual, "baz")
})
Convey("when trying to retrieve the second query value", t, func() {
result := uqr.Get("bar2", "foodef")
So(result, ShouldEqual, "baz2")
})
Convey("when trying to retrieve from a non-existent key, the default value is returned", t, func() {
result := uqr.Get("bar3", "foodef")
So(result, ShouldEqual, "foodef")
})
} }
package util
import (
"testing"
. "github.com/smartystreets/goconvey/convey"
)
func TestIsEmail(t *testing.T) {
Convey("When validating a string that is a valid email", t, func() {
result := IsEmail("abc@def.com")
So(result, ShouldEqual, true)
})
Convey("When validating a string that is not a valid email", t, func() {
result := IsEmail("abcdef.com")
So(result, ShouldEqual, false)
})
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment