ovpn-admin/validation_test.go

145 lines
2.6 KiB
Go

package main
import (
"testing"
)
func Test_validator_validateUsername(t *testing.T) {
type args struct {
username string
}
tests := []struct {
name string
args args
wantErr bool
}{
{
name: "success (qwerty)",
args: args{"qwerty"},
wantErr: false,
},
{
name: "success (qwerty@gmail.com)",
args: args{"qwerty@gmail.com"},
wantErr: false,
},
{
name: "success (luck.cage)",
args: args{"luck.cage"},
wantErr: false,
},
{
name: "error (empty)",
args: args{""},
wantErr: true,
},
{
name: "error (/bin/bash)",
args: args{"/bin/bash"},
wantErr: true,
},
{
name: "error (./exploit.sh)",
args: args{"./exploit.sh"},
wantErr: true,
},
{
name: "error (rm rf /)",
args: args{"rm rf /"},
wantErr: true,
},
{
name: "error (; ls)",
args: args{"; ls"},
wantErr: true,
},
{
name: "error (&echo>passwd)",
args: args{"&echo>passwd"},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
v, err := newValidator()
if err != nil {
t.Error(err)
}
if err := v.validateUsername(tt.args.username); (err != nil) != tt.wantErr {
t.Errorf("validateUsername() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}
func Test_validator_validatePassword(t *testing.T) {
type args struct {
passwd string
}
tests := []struct {
name string
args args
wantErr bool
}{
{
name: "success (qwe1239%$0123924qw)",
args: args{"qwe1239%$0123924qw"},
wantErr: false,
},
{
name: "success (pa$$w0rd)",
args: args{"pa$$w0rd"},
wantErr: false,
},
{
name: "short (qwe)",
args: args{"qwe"},
wantErr: true,
},
{
name: "error (empty)",
args: args{""},
wantErr: true,
},
{
name: "error (/bin/bash)",
args: args{"/bin/bash"},
wantErr: true,
},
{
name: "error (./exploit.sh)",
args: args{"./exploit.sh"},
wantErr: true,
},
{
name: "error (rm rf /)",
args: args{"rm rf /"},
wantErr: true,
},
{
name: "error (; ls)",
args: args{"; ls"},
wantErr: true,
},
{
name: "error (&echo>passwd)",
args: args{"&echo>passwd"},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
v, err := newValidator()
if err != nil {
t.Error(err)
}
if err := v.validatePassword(tt.args.passwd); (err != nil) != tt.wantErr {
t.Errorf("validatePassword() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}