59 lines
1.7 KiB
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)
|
|
}
|
|
}
|
|
}
|