public void TestIMAPServer() { LogHandler.DeleteCurrentDefaultLog(); Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); for (int i = 0; i < 30; i++) { try { var imapSim = new ImapClientSimulator(true, 14301); imapSim.ConnectAndLogon(account.Address, "test"); Assert.IsTrue(imapSim.SelectFolder("Inbox"), "SelectInbox"); imapSim.CreateFolder("Test"); Assert.IsTrue(imapSim.SelectFolder("Test"), "SelectTest"); Assert.IsTrue(imapSim.Logout(), "Logout"); imapSim.Disconnect(); break; } catch (Exception) { if (i == 29) throw; } } }
public void TestParseMultipartNoBody() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); string body = TestSetup.GetResource("Messages.MultipartMessageWithNoMainBodyText.txt"); SmtpClientSimulator.StaticSendRaw(account.Address, account.Address, body); Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 1); var imapSim = new ImapClientSimulator("*****@*****.**", "test", "INBOX"); string result = imapSim.Fetch("1 (BODY.PEEK[HEADER] BODY.PEEK[TEXT])"); imapSim.Logout(); }
public void TestConnectionObjectRelease() { LogHandler.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"); Assert.IsTrue(simulator.SelectFolder("INBOX")); Assert.IsTrue(simulator.StartIdle()); Assert.IsTrue(simulator.EndIdle(true, out data)); Assert.IsTrue(simulator.Logout()); string logData = LogHandler.ReadCurrentDefaultLog(); Assert.IsTrue(LogHandler.DefaultLogContains("Ending session")); }
public void TestRecentRemovedOnMailboxClose() { 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(); Assert.IsTrue(sim.ConnectAndLogon(account.Address, "test")); Assert.IsTrue(sim.SelectFolder("Inbox")); Assert.IsTrue(sim.CreateFolder("Dummy")); Assert.IsTrue(sim.Copy(1, "Dummy")); string result = sim.SendSingleCommand("a01 select Dummy"); Assert.IsTrue(result.Contains("* 1 EXISTS\r\n* 1 RECENT"), result); Assert.IsTrue(sim.Logout()); sim = new ImapClientSimulator(); Assert.IsTrue(sim.ConnectAndLogon(account.Address, "test")); result = sim.SendSingleCommand("a01 select Dummy"); Assert.IsFalse(result.Contains("* 1 EXISTS\r\n* 1 RECENT"), result); Assert.IsTrue(sim.Logout()); }
public void TestGlobalMaxMessageSizeLimitEnabled() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test", 0); var message = new StringBuilder(); // ~2 kb string for (int i = 0; i < 25; i++) message.AppendLine( "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"); _settings.MaxMessageSize = 1; var imapSim = new ImapClientSimulator("*****@*****.**", "test", "INBOX"); string result = imapSim.SendSingleCommandWithLiteral("A01 APPEND INBOX {" + message.Length + "}", message.ToString()); imapSim.Logout(); Assert.IsTrue(result.StartsWith("A01 NO Message size exceeds fixed maximum message size.")); }