mirror of
https://github.com/emersion/go-smtp
synced 2026-07-02 01:04:40 +00:00
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package smtp
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestParser(t *testing.T) {
|
|
validReversePaths := []struct {
|
|
raw, path, after string
|
|
}{
|
|
{"<>", "", ""},
|
|
{"<root@nsa.gov>", "root@nsa.gov", ""},
|
|
{"root@nsa.gov", "root@nsa.gov", ""},
|
|
{"<root@nsa.gov> AUTH=asdf@example.org", "root@nsa.gov", " AUTH=asdf@example.org"},
|
|
{"root@nsa.gov AUTH=asdf@example.org", "root@nsa.gov", " AUTH=asdf@example.org"},
|
|
}
|
|
for _, tc := range validReversePaths {
|
|
p := parser{tc.raw}
|
|
path, err := p.parseReversePath()
|
|
if err != nil {
|
|
t.Errorf("parser.parseReversePath(%q) = %v", tc.raw, err)
|
|
} else if path != tc.path {
|
|
t.Errorf("parser.parseReversePath(%q) = %q, want %q", tc.raw, path, tc.path)
|
|
} else if p.s != tc.after {
|
|
t.Errorf("parser.parseReversePath(%q): got after = %q, want %q", tc.raw, p.s, tc.after)
|
|
}
|
|
}
|
|
|
|
invalidReversePaths := []string{
|
|
"",
|
|
" ",
|
|
"asdf",
|
|
"<Foo Bar <root@nsa.gov>>",
|
|
" BODY=8BITMIME SIZE=12345",
|
|
"a:b:c@example.org",
|
|
"<root@nsa.gov",
|
|
}
|
|
for _, tc := range invalidReversePaths {
|
|
p := parser{tc}
|
|
if path, err := p.parseReversePath(); err == nil {
|
|
t.Errorf("parser.parseReversePath(%q) = %q, want error", tc, path)
|
|
}
|
|
}
|
|
}
|