From 6441050e005a0886188eb5422c46eb028d527c31 Mon Sep 17 00:00:00 2001 From: Christian Joergensen Date: Wed, 26 Sep 2018 21:10:58 +0200 Subject: [PATCH] Added extra and cleaned old test cases for pull request #3. --- smtpd_test.go | 62 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/smtpd_test.go b/smtpd_test.go index 3b7a5b7..8d7ae70 100644 --- a/smtpd_test.go +++ b/smtpd_test.go @@ -1003,19 +1003,19 @@ func TestHELO(t *testing.T) { } if err := cmd(c.Text, 502, "MAIL FROM:"); err != nil { - t.Fatalf("MAIL didn't fail: %v", err) + t.Fatalf("MAIL before HELO didn't fail: %v", err) } if err := cmd(c.Text, 250, "HELO localhost"); err != nil { t.Fatalf("HELO failed: %v", err) } - if err := cmd(c.Text, 502, "MAIL FROM:christian@technobabble.dk"); err != nil { - t.Fatalf("MAIL didn't fail: %v", err) + if err := cmd(c.Text, 250, "MAIL FROM:"); err != nil { + t.Fatalf("MAIL after HELO failed: %v", err) } if err := cmd(c.Text, 250, "HELO localhost"); err != nil { - t.Fatalf("HELO failed: %v", err) + t.Fatalf("double HELO failed: %v", err) } if err := c.Quit(); err != nil { @@ -1079,6 +1079,56 @@ func TestLOGINAuth(t *testing.T) { } +func TestNullSender(t *testing.T) { + + addr, closer := runserver(t, &smtpd.Server{}) + + defer closer() + + c, err := smtp.Dial(addr) + if err != nil { + t.Fatalf("Dial failed: %v", err) + } + + if err := cmd(c.Text, 250, "HELO localhost"); err != nil { + t.Fatalf("HELO failed: %v", err) + } + + if err := cmd(c.Text, 250, "MAIL FROM:<>"); err != nil { + t.Fatalf("MAIL with null sender failed: %v", err) + } + + if err := c.Quit(); err != nil { + t.Fatalf("Quit failed: %v", err) + } + +} + +func TestNoBracketsSender(t *testing.T) { + + addr, closer := runserver(t, &smtpd.Server{}) + + defer closer() + + c, err := smtp.Dial(addr) + if err != nil { + t.Fatalf("Dial failed: %v", err) + } + + if err := cmd(c.Text, 250, "HELO localhost"); err != nil { + t.Fatalf("HELO failed: %v", err) + } + + if err := cmd(c.Text, 250, "MAIL FROM:christian@technobabble.dk"); err != nil { + t.Fatalf("MAIL without brackets failed: %v", err) + } + + if err := c.Quit(); err != nil { + t.Fatalf("Quit failed: %v", err) + } + +} + func TestErrors(t *testing.T) { cert, err := tls.X509KeyPair(localhostCert, localhostKey) @@ -1111,10 +1161,6 @@ func TestErrors(t *testing.T) { t.Fatalf("AUTH didn't fail: %v", err) } - if err := cmd(c.Text, 502, "MAIL FROM:christian@technobabble.dk"); err != nil { - t.Fatalf("MAIL didn't fail: %v", err) - } - if err := c.Mail("sender@example.org"); err != nil { t.Fatalf("MAIL failed: %v", err) }