1
0
Fork 0
email-collector/checkmail/checkmail_test.go

59 lines
1.7 KiB
Go

package checkmail_test
import (
"testing"
"github.com/badoux/checkmail"
)
var (
samples = []struct {
mail string
format bool
account bool //host+user
}{
{mail: "florian@carrere.cc", format: true, account: true},
{mail: " florian@carrere.cc", format: false, account: false},
{mail: "florian@carrere.cc ", format: false, account: false},
{mail: "test@912-wrong-domain902.com", format: true, account: false},
{mail: "0932910-qsdcqozuioqkdmqpeidj8793@gmail.com", format: true, account: false},
{mail: "@gmail.com", format: false, account: false},
{mail: "test@gmail@gmail.com", format: false, account: false},
{mail: "test test@gmail.com", format: false, account: false},
{mail: " test@gmail.com", format: false, account: false},
{mail: "test@wrong domain.com", format: false, account: false},
{mail: "é&ààà@gmail.com", format: false, account: false},
{mail: "admin@jalopyjournal.com", format: true, account: true},
{mail: "admin@busyboo.com", format: true, account: true},
{mail: "a@gmail.fi", format: true, account: false},
}
)
func TestValidateHost(t *testing.T) {
for _, s := range samples {
if !s.format {
continue
}
err := checkmail.ValidateHost(s.mail)
if err != nil && s.account == true {
t.Errorf(`"%s" => unexpected error: "%v"`, s.mail, err)
}
if err == nil && s.account == false {
t.Errorf(`"%s" => expected error`, s.mail)
}
}
}
func TestValidateFormat(t *testing.T) {
for _, s := range samples {
err := checkmail.ValidateFormat(s.mail)
if err != nil && s.format == true {
t.Errorf(`"%s" => unexpected error: "%v"`, s.mail, err)
}
if err == nil && s.format == false {
t.Errorf(`"%s" => expected error`, s.mail)
}
}
}