public void TestChangeSeenFlag() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); CustomAssert.IsTrue(SMTPClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test")); POP3ClientSimulator.AssertMessageCount(oAccount.Address, "test", 1); var simulator = new IMAPClientSimulator(); simulator.ConnectAndLogon(oAccount.Address, "test"); simulator.ExamineFolder("Inbox"); string flags = simulator.GetFlags(1); string body = simulator.Fetch("1 RFC822"); string flagsAfter = simulator.GetFlags(1); simulator.Close(); simulator.Disconnect(); CustomAssert.AreEqual(flags, flagsAfter); var secondSimulator = new IMAPClientSimulator(); secondSimulator.ConnectAndLogon(oAccount.Address, "test"); secondSimulator.SelectFolder("Inbox"); string secondFlags = secondSimulator.GetFlags(1); string secondBody = secondSimulator.Fetch("1 RFC822"); string secondFlagsAfter = secondSimulator.GetFlags(1); secondSimulator.Close(); secondSimulator.Disconnect(); CustomAssert.AreNotEqual(secondFlags, secondFlagsAfter); }
public void TestChangeRecentFlag() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); CustomAssert.IsTrue(SMTPClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test")); POP3ClientSimulator.AssertMessageCount(oAccount.Address, "test", 1); var simulator = new IMAPClientSimulator(); simulator.ConnectAndLogon(oAccount.Address, "test"); string result = simulator.ExamineFolder("Inbox"); CustomAssert.IsTrue(result.Contains("* 1 RECENT"), result); simulator.Close(); simulator.Disconnect(); simulator = new IMAPClientSimulator(); simulator.ConnectAndLogon(oAccount.Address, "test"); CustomAssert.IsTrue(simulator.SelectFolder("Inbox", out result)); CustomAssert.IsTrue(result.Contains("* 1 RECENT"), result); simulator.Close(); simulator.Disconnect(); simulator = new IMAPClientSimulator(); simulator.ConnectAndLogon(oAccount.Address, "test"); result = simulator.ExamineFolder("Inbox"); CustomAssert.IsTrue(result.Contains("* 0 RECENT"), result); simulator.Close(); simulator.Disconnect(); }
public void TestSearchLargeBody() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var body = new StringBuilder(); body.AppendLine("From: [email protected]"); body.AppendLine("Subject: Test"); body.AppendLine(); for (int i = 0; i < 20000; i++) // One megabye body. body.AppendLine("12345678901234567890123456789012345678901234567890"); body.AppendLine("TestString"); body.AppendLine(); SMTPClientSimulator.StaticSendRaw(account.Address, account.Address, body.ToString()); POP3ClientSimulator.AssertMessageCount(account.Address, "test", 1); var oSimulator = new IMAPClientSimulator(); CustomAssert.IsTrue(oSimulator.ConnectAndLogon(account.Address, "test")); CustomAssert.IsTrue(oSimulator.SelectFolder("INBOX")); string result = oSimulator.Search("CHARSET UTF-8 ALL TEXT InvalidText"); CustomAssert.AreEqual("", result); result = oSimulator.Search("CHARSET UTF-8 ALL TEXT TestStringA"); CustomAssert.AreEqual("", result); result = oSimulator.Search("CHARSET UTF-8 ALL TEXT TestString"); CustomAssert.AreEqual("1", result); result = oSimulator.Search("CHARSET UTF-8 ALL TEXT TestStr"); CustomAssert.AreEqual("1", result); result = oSimulator.Search("UNDELETED BODY \"TestString\""); CustomAssert.AreEqual("1", result); oSimulator.Close(); }
public void TestExpunge() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); CustomAssert.IsTrue(SMTPClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test")); POP3ClientSimulator.AssertMessageCount(oAccount.Address, "test", 1); var simulator = new IMAPClientSimulator(); simulator.ConnectAndLogon(oAccount.Address, "test"); simulator.SelectFolder("Inbox"); CustomAssert.IsTrue(simulator.SetFlagOnMessage(1, true, @"\Deleted")); var secondSimulator = new IMAPClientSimulator(); secondSimulator.ConnectAndLogon(oAccount.Address, "test"); string result = secondSimulator.ExamineFolder("INBOX"); CustomAssert.IsTrue(result.Contains("1 EXISTS"), result); CustomAssert.IsFalse(secondSimulator.Expunge()); simulator.SelectFolder("INBOX"); CustomAssert.IsTrue(simulator.Expunge()); simulator.Close(); secondSimulator.Close(); }
public void TestDelete() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPClientSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon("*****@*****.**", "test"); CustomAssert.IsFalse(oSimulator.DeleteFolder("DoesNotExist")); CustomAssert.IsTrue(oSimulator.CreateFolder("DoesExist")); CustomAssert.IsTrue(oSimulator.SelectFolder("DoesExist")); oSimulator.Close(); CustomAssert.IsTrue(oSimulator.DeleteFolder("DoesExist")); CustomAssert.IsFalse(oSimulator.SelectFolder("DoesExist")); }
public void TestUnseenResponseInSelect() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SMTPClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestMessage"); IMAPClientSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1); var sim = new IMAPClientSimulator(); CustomAssert.IsTrue(sim.ConnectAndLogon(account.Address, "test")); CustomAssert.IsTrue(sim.SelectFolder("Inbox")); CustomAssert.IsTrue(sim.CreateFolder("Dummy")); CustomAssert.IsTrue(sim.Copy(1, "Dummy")); string result = sim.SendSingleCommand("a01 select Dummy"); CustomAssert.IsTrue(result.Contains("* 1 EXISTS\r\n* 1 RECENT"), result); string searchResponse = sim.SendSingleCommand("srch1 SEARCH ALL UNSEEN"); // We should have at least one message here. CustomAssert.IsTrue(searchResponse.Contains("* SEARCH 1\r\n"), searchResponse); // Now fetch the body. string bodyText = sim.Fetch("1 BODY[TEXT]"); // Now the message is no longer unseen. Confirm this. searchResponse = sim.SendSingleCommand("srch1 SEARCH ALL UNSEEN"); CustomAssert.IsTrue(searchResponse.Contains("* SEARCH\r\n"), searchResponse); // Close the messages to mark them as no longer recent. CustomAssert.IsTrue(sim.Close()); result = sim.SendSingleCommand("a01 select Dummy"); CustomAssert.IsTrue(result.Contains("* 1 EXISTS\r\n* 0 RECENT"), result); }