Example #1
0
        public void TestConnectionObjectRelease()
        {
            TestSetup.DeleteCurrentDefaultLog();

             _settings.IMAPIdleEnabled = true;

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

             var simulator = new IMAPClientSimulator();

             string data;

             string sWelcomeMessage = simulator.Connect();
             simulator.Logon(account.Address, "test");
             CustomAssert.IsTrue(simulator.SelectFolder("INBOX"));
             CustomAssert.IsTrue(simulator.StartIdle());
             CustomAssert.IsTrue(simulator.EndIdle(true, out data));
             CustomAssert.IsTrue(simulator.Logout());

             string logData = TestSetup.ReadCurrentDefaultLog();

             CustomAssert.IsTrue(TestSetup.DefaultLogContains("Ending session"));
        }
Example #2
0
        public void TestIdle()
        {
            _settings.IMAPIdleEnabled = true;

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

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon(account.Address, "test");
             CustomAssert.IsTrue(oSimulator.SelectFolder("INBOX"));

             oSimulator.StartIdle();

             if (oSimulator.GetPendingDataExists())
            throw new Exception("Unexpected data exists");

             // Send a message to this account.
             var oSMTP = new SMTPClientSimulator();
             oSMTP.Send(account.Address, account.Address, "IDLE Test", "This is a test of IDLE");

             string data;
             CustomAssert.IsTrue(oSimulator.EndIdle(false, out data));
        }
Example #3
0
        public void TestNotificationOnPOP3Deletion()
        {
            _settings.IMAPIdleEnabled = true;

             Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             SMTPClientSimulator.StaticSend(account.Address, account.Address, "Message 1", "Body 1");
             SMTPClientSimulator.StaticSend(account.Address, account.Address, "Message 1", "Body 1");
             POP3ClientSimulator.AssertMessageCount(account.Address, "test", 2);

             var imapSimulator = new IMAPClientSimulator();
             string sWelcomeMessage = imapSimulator.Connect();
             CustomAssert.IsTrue(imapSimulator.Logon("*****@*****.**", "test"));
             CustomAssert.IsTrue(imapSimulator.SelectFolder("INBOX"));
             CustomAssert.IsTrue(imapSimulator.StartIdle());

             var sim = new POP3ClientSimulator();
             CustomAssert.IsTrue(sim.ConnectAndLogon(account.Address, "test"));
             CustomAssert.IsTrue(sim.DELE(1));
             sim.QUIT();

             // After a delete, the following should be sent tot he IMAP client:
             //  - EXPUNGE
             //  - EXISTS
             //  - RECENT
             CustomAssert.IsTrue(imapSimulator.AssertPendingDataExists(), "No pending data exist");

             var deadline = DateTime.Now.AddSeconds(10);
             var message = new StringBuilder();

             while (DateTime.Now < deadline)
             {
            if (imapSimulator.GetPendingDataExists())
               message.Append(imapSimulator.Receive());

            var str = message.ToString();

            if (str.Contains("* 1 EXPUNGE") &&
                str.Contains("EXISTS") &&
                str.Contains("RECENT"))
            {
               return;
            }
             }

             var receivedText = message.ToString();
             CustomAssert.IsTrue(receivedText.Contains("* 1 EXPUNGE"), receivedText);
             CustomAssert.IsTrue(receivedText.Contains("EXISTS"), receivedText);
             CustomAssert.IsTrue(receivedText.Contains("RECENT"), receivedText);
        }