Example #1
0
        public void TestAttachmentEncoding()
        {
            string[] testFiles = GetTestFiles();

             SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             foreach (string testFile in testFiles)
             {
            Trace.WriteLine(testFile);

            string fileHash = TestSetup.GetFileHash(testFile);

            var mail = new MailMessage();
            mail.From = new MailAddress("*****@*****.**");
            mail.To.Add("*****@*****.**");
            mail.Subject = "Test";
            mail.Attachments.Add(new Attachment(testFile));

            TestSetup.SendMessage(mail);

            POP3ClientSimulator.AssertMessageCount("*****@*****.**", "test", 1);

            var sim = new POP3ClientSimulator();
            sim.ConnectAndLogon("*****@*****.**", "test");
            string fileContent = sim.RETR(1);
            sim.DELE(1);
            sim.QUIT();

            var message = new Message();

            try
            {
               File.WriteAllText(message.Filename, fileContent);
               message.RefreshContent();

               message.Attachments[0].SaveAs(message.Filename);
               string fileHashAfter = TestSetup.GetFileHash(message.Filename);

               CustomAssert.AreEqual(fileHash, fileHashAfter);
            }
            finally
            {
               File.Delete(message.Filename);
            }
             }
        }
Example #2
0
        public void TestReinitialize()
        {
            string @messageText =
            "From: [email protected]\r\n" +
            "\r\n" +
            "WhatTest\r\n";

             Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             CustomAssert.IsTrue(SMTPClientSimulator.StaticSend(account.Address, account.Address, "First message",
                                                      "Test message"));
             POP3ClientSimulator.AssertMessageCount(account.Address, "test", 1);

             // Create another message on disk and import it.
             string domainPath = Path.Combine(_application.Settings.Directories.DataDirectory, "test.com");
             string accountPath = Path.Combine(domainPath, "test");
             Directory.CreateDirectory(accountPath);
             string fileName = Path.Combine(accountPath, "something.eml");
             File.WriteAllText(fileName, messageText);
             CustomAssert.IsTrue(_application.Utilities.ImportMessageFromFile(fileName, account.ID));

             // Since the cache isn't refreshed, the message has not yet appeared.
             POP3ClientSimulator.AssertMessageCount(account.Address, "test", 1);

             // Reinitialize the server. Should, among other things, clear the cache.
             _application.Reinitialize();

             // Now the message should have appeared.
             POP3ClientSimulator.AssertMessageCount(account.Address, "test", 2);

             var sim = new POP3ClientSimulator();
             sim.ConnectAndLogon(account.Address, "test");
             messageText = sim.RETR(2);
             sim.QUIT();

             CustomAssert.IsTrue(messageText.Contains("WhatTest"), messageText);
        }
Example #3
0
        public void TestRETR()
        {
            Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             SMTPClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestBody1");
             POP3ClientSimulator.AssertMessageCount(account.Address, "test", 1);

             SMTPClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestBody2");
             POP3ClientSimulator.AssertMessageCount(account.Address, "test", 2);

             SMTPClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestBody3");
             POP3ClientSimulator.AssertMessageCount(account.Address, "test", 3);

             var sim = new POP3ClientSimulator();
             sim.ConnectAndLogon(account.Address, "test");
             string result = sim.RETR(1);
             CustomAssert.IsTrue(result.Contains("TestBody1"), result);
             result = sim.RETR(2);
             CustomAssert.IsTrue(result.Contains("TestBody2"), result);
             result = sim.RETR(3);
             CustomAssert.IsTrue(result.Contains("TestBody3"), result);

             CustomAssert.IsFalse(result.Contains(".\r\n."));
        }