package smtp import ( "testing" ) func TestParser(t *testing.T) { validReversePaths := []struct { raw, path, after string }{ {"<>", "", ""}, {"", "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", ">", " BODY=8BITMIME SIZE=12345", "a:b:c@example.org", "