Files
token-go/util/url_test.go
2023-06-09 19:41:30 +08:00

145 lines
3.6 KiB
Go

package util
import (
"log"
"testing"
)
func TestSpliceUrl(t *testing.T) {
type args struct {
u1 string
u2 string
}
tests := []struct {
name string
args args
want string
}{
{
name: "success1",
args: args{
u1: "http://domain.com",
u2: "/sso/auth",
},
want: "http://domain.com/sso/auth",
},
{
name: "success2",
args: args{
u1: "",
u2: "http://domain.com/sso/auth",
},
want: "http://domain.com/sso/auth",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := SpliceUrl(tt.args.u1, tt.args.u2); got != tt.want {
t.Errorf("SpliceUrl() = %v, want %v", got, tt.want)
}
})
}
}
func TestHasUrl(t *testing.T) {
strings := []string{"1", "2", "3"}
hasUrl := HasUrl(strings, "2")
if !hasUrl {
t.Errorf("HasUrl() = %v, want %v", false, true)
}
}
func TestMatchUrl(t *testing.T) {
all := "*"
if !MatchUrl(all, "123") {
t.Errorf("HasUrl() = %v, want %v", false, true)
}
}
func TestIsValidUrl(t *testing.T) {
type args struct {
u1 string
}
tests := []struct {
name string
args args
want bool
}{
{
name: "error url1",
args: args{u1: "htp:23/asd"},
want: false,
},
{
name: "validated",
args: args{u1: "http://123.com:90//ac"},
want: true,
},
{
name: "error url2",
args: args{u1: "http:/123.com:90//ac"},
want: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := IsValidUrl(tt.args.u1); got != tt.want {
t.Errorf("IsValidUrl() = %v, want %v", got, tt.want)
}
})
}
}
func TestAddQueryMap(t *testing.T) {
m := make(map[string]string)
m["1"] = "2"
m["2"] = "3"
if got := AddQueryMap("/sso/auth", m); got != "/sso/auth?1=2&2=3" && got != "/sso/auth?2=3&1=2" {
t.Errorf("AddQueryMap() = %v, want %v", got, "/sso/auth?1=2&2=3")
}
if got := AddQueryMap("/sso/auth?", m); got != "/sso/auth?1=2&2=3" && got != "/sso/auth?2=3&1=2" {
t.Errorf("AddQueryMap() = %v, want %v", got, "/sso/auth?1=2&2=3")
}
}
func TestAddQuery(t *testing.T) {
if got := AddQuery("/sso", "1", "2"); got != "/sso?1=2" {
t.Errorf("AddQuery() = %v, want %v", got, "/sso?1=2")
}
if got := AddQuery("/sso?", "1", "2"); got != "/sso?1=2" {
t.Errorf("AddQuery() = %v, want %v", got, "/sso?1=2")
}
}
func TestMapToQuery(t *testing.T) {
m := make(map[string]string)
m["1"] = "2"
query := MapToQuery(m)
if query != "1=2" {
t.Errorf("MapToQuery() = %v, want %v", query, "1=2")
}
}
func TestEncode(t *testing.T) {
encode := Encode("abc123==123")
log.Print("Encode(\"abc123==123\") = " + encode)
}
func TestAddQueryValue(t *testing.T) {
if got := AddQueryValue("/sso/auth?back=http://123.com/login", "ticket=23324"); got != "/sso/auth?back=http://123.com/login&ticket=23324" {
t.Errorf("AddQueryValue() = %v, want %v", got, "/sso/auth?back=http://123.com/login&ticket=23324")
}
if got := AddQueryValue("/sso/auth?back=http://123.com/login?", "ticket=23324"); got != "/sso/auth?back=http://123.com/login?ticket=23324" {
t.Errorf("AddQueryValue() = %v, want %v", got, "/sso/auth?back=http://123.com/login?ticket=23324")
}
if got := AddQueryValue("/sso/auth?back=http://123.com/login?ticket=123", "redirect=23324"); got != "/sso/auth?back=http://123.com/login?ticket=123&redirect=23324" {
t.Errorf("AddQueryValue() = %v, want %v", got, "/sso/auth?back=http://123.com/login?ticket=123&redirect=23324")
}
if got := AddQueryValue("/sso/auth?back=http://123.com/login?ticket=123&", "redirect=23324"); got != "/sso/auth?back=http://123.com/login?ticket=123&redirect=23324" {
t.Errorf("AddQueryValue() = %v, want %v", got, "/sso/auth?back=http://123.com/login?ticket=123&redirect=23324")
}
}