9 5e70998a 2022-04-12 o func TestParse(t *testing.T) {
10 5e70998a 2022-04-12 o var r io.Reader
11 5e70998a 2022-04-12 o valid := map[string]string{
12 5e70998a 2022-04-12 o "foo: bar@example.com": "parse valid line",
13 5e70998a 2022-04-12 o "# some comment": "parse valid commented line",
14 5e70998a 2022-04-12 o " ": "parse empty line",
16 5e70998a 2022-04-12 o for line, msg := range valid {
17 5e70998a 2022-04-12 o r = strings.NewReader(line)
18 5e70998a 2022-04-12 o _, err := Parse(r)
19 5e70998a 2022-04-12 o if err != nil {
20 5e70998a 2022-04-12 o t.Errorf("%s %q: %v", msg, line, err)
24 5e70998a 2022-04-12 o invalid := map[string]string{
25 5e70998a 2022-04-12 o "oops:": "missing destination",
26 5e70998a 2022-04-12 o " : asdfhjkl": "missing recipient",
27 5e70998a 2022-04-12 o ":": "missing recipient and destination",
28 5e70998a 2022-04-12 o "::: alex@example.com": "too many colons",
29 5e70998a 2022-04-12 o "1 2 3 4 5": "too many fields",
31 5e70998a 2022-04-12 o for line, problem := range invalid {
32 5e70998a 2022-04-12 o r = strings.NewReader(line)
33 5e70998a 2022-04-12 o _, err := Parse(r)
34 5e70998a 2022-04-12 o if err == nil {
35 5e70998a 2022-04-12 o t.Errorf("no error parsing %q (%s)", line, problem)