package smtp import ( "github.com/stretchr/testify/assert" "testing" ) func TestMAILParsing(t *testing.T) { from, err := ParseMAIL("From:<foo@bar>") assert.Equal(t, from, "foo@bar") assert.Nil(t, err) from, err = ParseMAIL("From:<foo@bar.com>") assert.Equal(t, from, "foo@bar.com") assert.Nil(t, err) from, err = ParseMAIL("From:<foo>") assert.Equal(t, from, "foo") assert.Nil(t, err) from, err = ParseMAIL("To:<foo@bar>") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid sender") from, err = ParseMAIL("To:<foo@bar.com>") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid sender") from, err = ParseMAIL("To:<foo>") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid sender") from, err = ParseMAIL("INVALID") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid sender") from, err = ParseMAIL("From:INVALID") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid sender") from, err = ParseMAIL("From:foo") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid sender") from, err = ParseMAIL("From:foo@bar") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid sender") from, err = ParseMAIL("From: <foo@bar>") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid sender") } func TestRCPTParsing(t *testing.T) { from, err := ParseRCPT("To:<foo@bar>") assert.Equal(t, from, "foo@bar") assert.Nil(t, err) from, err = ParseRCPT("To:<foo@bar.com>") assert.Equal(t, from, "foo@bar.com") assert.Nil(t, err) from, err = ParseRCPT("To:<foo>") assert.Equal(t, from, "foo") assert.Nil(t, err) from, err = ParseRCPT("From:<foo@bar>") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid recipient") from, err = ParseRCPT("From:<foo@bar.com>") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid recipient") from, err = ParseRCPT("From:<foo>") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid recipient") from, err = ParseRCPT("INVALID") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid recipient") from, err = ParseRCPT("To:INVALID") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid recipient") from, err = ParseRCPT("To:foo") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid recipient") from, err = ParseRCPT("To:foo@bar") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid recipient") from, err = ParseRCPT("To: <foo@bar>") assert.Equal(t, from, "") assert.NotNil(t, err) assert.Equal(t, err.Error(), "Invalid recipient") }