145 lines
2.6 KiB
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)
|
|
}
|
|
})
|
|
}
|
|
}
|