Merge pull request #1949 from lewurm/fixtype
[mono.git] / mcs / class / System / Test / System.Net.Mail / SmtpClientTest.cs
index f01686794194b0420b6c0a5b515029a02a906c6b..7f276c19d9b851f052e5413e015a6db604cc9e4e 100644 (file)
@@ -6,7 +6,6 @@
 //
 // (C) 2006 John Luke
 //
-#if NET_2_0
 using NUnit.Framework;
 using System;
 using System.IO;
@@ -371,6 +370,44 @@ namespace MonoTests.System.Net.Mail
                        Assert.AreEqual ("<foo@example.com>", server.mail_from);
                        Assert.AreEqual ("<bar@example.com>", server.rcpt_to);
                }
+
+               [Test]
+               public void Deliver_Envelope ()
+               {
+                       var server = new SmtpServer ();
+                       var client = new SmtpClient ("localhost", server.EndPoint.Port);
+                       var msg = new MailMessage ("foo@example.com", "bar@example.com", "hello", "howdydoo\r\n");
+
+                       msg.Sender = new MailAddress ("baz@example.com");
+
+                       Thread t = new Thread (server.Run);
+                       t.Start ();
+                       client.Send (msg);
+                       t.Join ();
+
+                       Assert.AreEqual ("<baz@example.com>", server.mail_from);
+                       Assert.AreEqual ("<bar@example.com>", server.rcpt_to);
+               }
+
+               [Test]
+               public void Deliver_Async ()
+               {
+                       var server = new SmtpServer ();
+                       var client = new SmtpClient ("localhost", server.EndPoint.Port);
+                       var msg = new MailMessage ("foo@example.com", "bar@example.com", "hello", "howdydoo\r\n");
+
+                       Thread t = new Thread (server.Run);
+                       t.Start ();
+                       var task = client.SendMailAsync (msg);
+                       t.Join ();
+
+                       Assert.AreEqual ("<foo@example.com>", server.mail_from);
+                       Assert.AreEqual ("<bar@example.com>", server.rcpt_to);
+
+                       task.Wait (10);
+
+                       Assert.IsTrue (task.IsCompleted, "task");
+               }
+
        }
 }
-#endif