Files
nabarr/util/url_test.go

98 lines
2.0 KiB
Go

package util
import (
"net/url"
"testing"
)
func TestJoinURL(t *testing.T) {
type args struct {
base string
paths []string
}
tests := []struct {
name string
args args
want string
}{
{
name: "single path",
args: args{
base: "https://www.google.co.uk/",
paths: []string{"search"},
},
want: "https://www.google.co.uk/search",
},
{
name: "multiple path",
args: args{
base: "https://www.google.co.uk",
paths: []string{"search", "string"},
},
want: "https://www.google.co.uk/search/string",
},
{
name: "multiple path with slashes",
args: args{
base: "https://www.google.co.uk/",
paths: []string{"/search/", "/string/"},
},
want: "https://www.google.co.uk/search/string",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := JoinURL(tt.args.base, tt.args.paths...); got != tt.want {
t.Errorf("JoinURL() = %v, want %v", got, tt.want)
}
})
}
}
func TestURLWithQuery(t *testing.T) {
type args struct {
base string
q url.Values
}
tests := []struct {
name string
args args
want string
wantErr bool
}{
{
name: "url with values",
args: args{
base: JoinURL("https://api.trakt.tv", "search", "tvdb", "12345"),
q: url.Values{
"extended": []string{"full"},
"type": []string{"show"},
},
},
want: "https://api.trakt.tv/search/tvdb/12345?extended=full&type=show",
wantErr: false,
},
{
name: "url without values",
args: args{
base: JoinURL("https://api.trakt.tv", "search", "tvdb", "12345"),
q: nil,
},
want: "https://api.trakt.tv/search/tvdb/12345",
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := URLWithQuery(tt.args.base, tt.args.q)
if (err != nil) != tt.wantErr {
t.Errorf("URLWithQuery() error = %v, wantErr %v", err, tt.wantErr)
return
}
if got != tt.want {
t.Errorf("URLWithQuery() got = %v, want %v", got, tt.want)
}
})
}
}