mirror of
https://github.com/replicatedhq/troubleshoot.git
synced 2026-04-15 07:16:34 +00:00
109 lines
2.6 KiB
Go
109 lines
2.6 KiB
Go
package collect
|
||
|
||
import (
|
||
"testing"
|
||
)
|
||
|
||
func Test_isValidLoadBalancerAddress(t *testing.T) {
|
||
type args struct {
|
||
address string
|
||
}
|
||
tests := []struct {
|
||
name string
|
||
args args
|
||
want bool
|
||
}{
|
||
{
|
||
name: "Valid IP and Port",
|
||
args: args{address: "1.2.3.4:6443"},
|
||
want: true,
|
||
},
|
||
{
|
||
name: "Too many :'s in address",
|
||
args: args{address: "1.2.3.4:64:6443"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Valid domain and Port ",
|
||
args: args{address: "replicated.com:80"},
|
||
want: true,
|
||
},
|
||
{
|
||
name: "Valid subdomain and Port ",
|
||
args: args{address: "sub.replicated.com:80"},
|
||
want: true,
|
||
},
|
||
{
|
||
name: "Valid subdomain with '-' and Port ",
|
||
args: args{address: "sub-domain.replicated.com:80"},
|
||
want: true,
|
||
},
|
||
{
|
||
name: "Special Character",
|
||
args: args{address: "sw!$$.com:80"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Valid long DNS domain but less than 255 characters, RFC1123 compliant",
|
||
args: args{address: "howlongcanwemakethiswithoutrunningoutofwordsbecasueweneedtohitatleast64.com:80"},
|
||
want: true,
|
||
},
|
||
{
|
||
name: "Non-valid long DNS domain but more than 255 characters, RFC1123 not compliant",
|
||
args: args{address: "howlongcanwemakethiswithouthowlongcanwemakethiswithouthowlongcanwemakethiswithoutrunningoutofwordsbecasueweneedtohitatleast64howlongcanwemakethiswithouthowlongcanwemakethiswithouthowlongcanwemakethiswithoutrunningoutofwordsbecasueweneedtohitatleast64dssdfasdffs.com:80"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Capital Letters",
|
||
args: args{address: "testDomain.com:80"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Invalid IP",
|
||
args: args{address: "55.555.51.23:80"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Too many consecutive .",
|
||
args: args{address: "55..55.51.23:80"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Invalid Port too low",
|
||
args: args{address: "55.55.51.23:0"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Invalid Port too large",
|
||
args: args{address: "55.55.51.23:999990"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Invalid Port Character",
|
||
args: args{address: "55.55.51.23:port"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Invalid Port Number",
|
||
args: args{address: "55.55.51.23:32.5"},
|
||
want: false,
|
||
},
|
||
{
|
||
name: "Codes in addresses",
|
||
args: args{address: "[34m192.168.0.1[00m"},
|
||
want: false,
|
||
}, {
|
||
name: "Codes in addresses",
|
||
args: args{address: "\033[34m192.168.0.1\033[00m\n "},
|
||
want: false,
|
||
},
|
||
}
|
||
for _, tt := range tests {
|
||
t.Run(tt.name, func(t *testing.T) {
|
||
if got := isValidLoadBalancerAddress(tt.args.address); got != tt.want {
|
||
t.Errorf("checkValidTCPAddress() = %v, want %v for %v", got, tt.want, tt.args.address)
|
||
}
|
||
})
|
||
}
|
||
}
|