public void TestMetaDataSortCC() { Application application = SingletonProvider<TestSetup>.Instance.GetApp(); Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "meta'*****@*****.**", "test"); // disable... SendMessage("Test C", "Body", "", "ÄÄÄ"); IMAPClientSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1); SendMessage("Test B", "Body", "", "ÖÖÖ"); IMAPClientSimulator.AssertMessageCount(account.Address, "test", "Inbox", 2); SendMessage("Test A", "Body", "", "ÅÅÅ"); IMAPClientSimulator.AssertMessageCount(account.Address, "test", "Inbox", 3); AssertAllMessagesIndexed(); var sim = new IMAPClientSimulator(account.Address, "test", "Inbox"); string result = sim.Sort("(CC) UTF-8 ALL"); CustomAssert.AreEqual("3 1 2", result); // Disable the indexing functionality _indexing.Enabled = false; _indexing.Clear(); // Make sure the sort order is the same. string resultAfter = sim.Sort("(CC) UTF-8 ALL"); CustomAssert.AreEqual(result, resultAfter); }
public void TestBodyStructureWithNonLatinCharacter() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); string attachmentName = "本本本.zip"; string filename = Path.Combine(Path.GetTempPath(), attachmentName); File.WriteAllText(filename, "tjena moss"); var message = new Message(); message.Charset = "utf-8"; message.AddRecipient("test", account.Address); message.From = "Test"; message.FromAddress = account.Address; message.Body = "hejsan"; message.Attachments.Add(filename); message.Save(); TestSetup.AssertFolderMessageCount(account.IMAPFolders[0], 1); var oSimulator = new IMAPClientSimulator(); oSimulator.ConnectAndLogon(account.Address, "test"); oSimulator.SelectFolder("INBOX"); string result = oSimulator.Fetch("1 BODYSTRUCTURE"); oSimulator.Disconnect(); // utf-8 representation of 本本本.zip: CustomAssert.IsTrue(result.Contains("=?utf-8?B?5pys5pys5pys?=.zip")); }
public void TestDistributionListAnnouncementFromDomainAlias() { var oIMAP = new IMAPClientSimulator(); var oSMTP = new SMTPClientSimulator(); Application application = SingletonProvider<TestSetup>.Instance.GetApp(); // // TEST LIST SECURITY IN COMBINATION WITH DOMAIN NAME ALIASES // Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oRecipients = new List<string>(); oRecipients.Add("*****@*****.**"); DistributionList oList3 = SingletonProvider<TestSetup>.Instance.AddDistributionList(_domain, "*****@*****.**", oRecipients); oList3.Mode = eDistributionListMode.eLMAnnouncement; oList3.RequireSenderAddress = "*****@*****.**"; oList3.Save(); // THIS MESSAGE SHOULD FAIL CustomAssert.IsFalse(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1")); DomainAlias oDA = _domain.DomainAliases.Add(); oDA.AliasName = "dummy-example.com"; oDA.Save(); // THIS MESSAGE SHOULD SUCCEED CustomAssert.IsTrue(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1")); IMAPClientSimulator.AssertMessageCount("*****@*****.**", "test", "Inbox", 1); }
public void TestIMAPServer() { TestSetup.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"); CustomAssert.IsTrue(imapSim.SelectFolder("Inbox"), "SelectInbox"); imapSim.CreateFolder("Test"); CustomAssert.IsTrue(imapSim.SelectFolder("Test"), "SelectTest"); CustomAssert.IsTrue(imapSim.Logout(), "Logout"); imapSim.Disconnect(); break; } catch (Exception) { if (i == 29) throw; } } }
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 TestNestedOrSearch() { Application application = SingletonProvider<TestSetup>.Instance.GetApp(); Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); // Send a message to this account. var oSMTP = new SMTPClientSimulator(); oSMTP.Send("*****@*****.**", "*****@*****.**", "Search test", "This is a test of IMAP Search"); IMAPClientSimulator.AssertMessageCount(oAccount.Address, "test", "Inbox", 1); var oSimulator = new IMAPClientSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon("*****@*****.**", "test"); oSimulator.SelectFolder("INBOX"); string result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR OR SINCE 28-May-2008 SINCE 28-May-2008 SINCE 28-May-2008"); CustomAssert.IsTrue(result.StartsWith("* SEARCH 1"), result); result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR SMALLER 1 LARGER 10000"); CustomAssert.IsTrue(result.StartsWith("* SEARCH\r\n"), result); result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR OR SMALLER 1 LARGER 10000 SMALLER 10000"); CustomAssert.IsTrue(result.StartsWith("* SEARCH 1\r\n"), result); }
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 TestBatchOfCommands() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPClientSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(account.Address, "test"); string commandSequence = ""; for (int i = 0; i < 200; i++) { commandSequence += "A" + i.ToString() + " SELECT INBOX\r\n"; } commandSequence = commandSequence.TrimEnd("\r\n".ToCharArray()); string result = oSimulator.Send(commandSequence); CustomAssert.IsFalse(result.StartsWith("* BYE")); oSimulator.Disconnect(); sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(account.Address, "test"); commandSequence = ""; for (int i = 0; i < 500; i++) { commandSequence += "A" + i.ToString() + " SELECT INBOX\r\n"; } commandSequence = commandSequence.TrimEnd("\r\n".ToCharArray()); result = oSimulator.Send(commandSequence); CustomAssert.IsFalse(result.StartsWith("* BYE Excessive number of buffered commands")); oSimulator.Disconnect(); }
public void TestDateSortOrder() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPClientSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral("*****@*****.**", "test"); CustomAssert.IsTrue(oSimulator.SelectFolder("Inbox")); string response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 22:00:00 +0200\" {37}", "Date: Wed, 15 Dec 2010 13:00:00 +0000"); CustomAssert.IsTrue(response.Contains("* 1 EXISTS"), response); response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 21:00:00 +0200\" {37}", "Date: Wed, 15 Dec 2010 14:00:00 +0000"); CustomAssert.IsTrue(response.Contains("* 2 EXISTS"), response); response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 20:00:00 +0200\" {37}", "Date: Wed, 15 Dec 2010 12:00:00 +0000"); CustomAssert.IsTrue(response.Contains("* 3 EXISTS"), response); response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"23-Feb-2008 01:30:23 +0200\" {37}", "Date: Wed, 15 Dec 2010 11:00:00 +0000"); CustomAssert.IsTrue(response.Contains("* 4 EXISTS"), response); string sortDateResponse = oSimulator.SendSingleCommand("A10 SORT (DATE) US-ASCII ALL"); CustomAssert.IsTrue(sortDateResponse.Contains(" 4 3 1 2")); oSimulator.Disconnect(); }
public void TestIMAPLogonFailure() { _settings.AutoBanOnLogonFailure = true; _settings.MaxInvalidLogonAttempts = 4; _settings.MaxInvalidLogonAttemptsWithin = 5; _settings.AutoBanMinutes = 3; Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var sim = new IMAPClientSimulator(); CustomAssert.IsTrue(sim.ConnectAndLogon(account.Address, "test")); sim.Disconnect(); // confirm that we can retrieve welcome message. CustomAssert.IsTrue(sim.GetWelcomeMessage().StartsWith("* OK")); // fail to log on 3 times. for (int i = 0; i < 4; i++) { string errorMessage; CustomAssert.IsFalse(sim.ConnectAndLogon(account.Address, "testA", out errorMessage)); sim.Disconnect(); if (i == 3) { CustomAssert.IsTrue(errorMessage.Contains("Too many invalid logon attempts.")); } } CustomAssert.IsTrue(sim.GetWelcomeMessage().Length == 0); string logText = TestSetup.ReadCurrentDefaultLog(); CustomAssert.IsTrue(logText.Contains("Blocked either by IP range or by connection limit."), logText); }
public void ExamineFolderRequiresReadPermission() { Application application = SingletonProvider<TestSetup>.Instance.GetApp(); Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPFolders publicFolders = _settings.PublicFolders; IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionAccountID = account1.ID; permission.PermissionType = eACLPermissionType.ePermissionTypeUser; permission.set_Permission(eACLPermission.ePermissionLookup, true); permission.Save(); string selectResult = string.Empty; var oSimulator1 = new IMAPClientSimulator(); oSimulator1.Connect(); oSimulator1.LogonWithLiteral(account1.Address, "test"); string examineResult = oSimulator1.ExamineFolder("#Public.Share1"); oSimulator1.Disconnect(); CustomAssert.IsTrue(examineResult.Contains("ACL: Read permission denied (Required for EXAMINE command)."), examineResult); }
public void FolderMarkedAsReadOnlyWhenUserHasReadOnlyRights() { Application application = SingletonProvider<TestSetup>.Instance.GetApp(); Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPFolders publicFolders = _settings.PublicFolders; IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionAccountID = account1.ID; permission.PermissionType = eACLPermissionType.ePermissionTypeUser; permission.set_Permission(eACLPermission.ePermissionLookup, true); permission.set_Permission(eACLPermission.ePermissionRead, true); permission.Save(); string selectResult = string.Empty; var oSimulator1 = new IMAPClientSimulator(); oSimulator1.Connect(); oSimulator1.LogonWithLiteral(account1.Address, "test"); oSimulator1.SelectFolder("#Public.Share1", out selectResult); oSimulator1.Disconnect(); CustomAssert.IsTrue(selectResult.Contains("[READ-ONLY]"), selectResult); CustomAssert.IsFalse(selectResult.Contains("[READ-WRITE]"), selectResult); }
public void ConfirmFileAddedToCorrectAccountFolder() { TestSetup testSetup = SingletonProvider<TestSetup>.Instance; Account oAccount = testSetup.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPClientSimulator(); // Confirm that the public folder is empty before we start our test. string publicDir = testSetup.GetPublicDirectory(); testSetup.AssertFilesInDirectory(publicDir, 0); // Add a message to the inbox. oSimulator.Connect(); oSimulator.LogonWithLiteral("*****@*****.**", "test"); oSimulator.SendSingleCommandWithLiteral("A01 APPEND INBOX {4}", "ABCD"); // Confirm it exists in the IMAP folder. CustomAssert.AreEqual(1, oSimulator.GetMessageCount("INBOX")); oSimulator.Disconnect(); // The public directory should still be empty - the message was added to the user account. testSetup.AssertFilesInDirectory(publicDir, 0); // There should be a single file in the users directory. testSetup.AssertFilesInUserDirectory(oAccount, 1); }
public void TestAddMessage() { Application app = SingletonProvider<TestSetup>.Instance.GetApp(); Utilities utilities = app.Utilities; Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); // Create a new folder. IMAPFolder folder = account.IMAPFolders.get_ItemByName("INBOX"); folder.Save(); for (int i = 0; i < 3; i++) { hMailServer.Message message = folder.Messages.Add(); message.set_Flag(eMessageFlag.eMFSeen, true); message.Save(); POP3ClientSimulator.AssertMessageCount(account.Address, "test", ((i + 1)*2) - 1); SMTPClientSimulator.StaticSend("*****@*****.**", account.Address, "Test", "Test"); POP3ClientSimulator.AssertMessageCount(account.Address, "test", (i + 1)*2); } POP3ClientSimulator.AssertMessageCount(account.Address, "test", 6); var sim = new IMAPClientSimulator(); sim.ConnectAndLogon(account.Address, "test"); sim.SelectFolder("Inbox"); string response = sim.Fetch("1:6 UID"); string[] lines = Strings.Split(response, Environment.NewLine, -1, CompareMethod.Text); var uids = new List<string>(); foreach (string line in lines) { int paraPos = line.IndexOf("("); int paraEndPos = line.IndexOf(")"); if (paraPos < 0 || paraEndPos < 0) continue; string paraContent = line.Substring(paraPos + 1, paraEndPos - paraPos - 1); if (!uids.Contains(paraContent)) uids.Add(paraContent); } CustomAssert.AreEqual(6, uids.Count); // Make sure the UIDS are sorted properly by creating a copy, sort the copy // and then compare to original. var copy = new List<string>(); copy.InsertRange(0, uids); copy.Sort(); CustomAssert.AreEqual(copy, uids); }
public void IfStartTlsNotEnabledStartTlsShouldNotBeShownInEhloResponse() { var imapSimulator = new IMAPClientSimulator(false, 143); imapSimulator.Connect(); var data = imapSimulator.GetCapabilities(); CustomAssert.IsFalse(data.Contains("STARTTLS")); }
public void TestIMAPServerLiteral() { var sim = new IMAPClientSimulator(); sim.Connect(); CustomAssert.IsTrue(sim.Send("a01 login " + GetUsername() + " {4}").StartsWith("+")); sim.Send(GetPassword()); EnsureNoPassword(); }
public void IfStlsRequiredLogonShouldFailIfNoStls() { var imapSimulator = new IMAPClientSimulator(false, 14303); imapSimulator.Connect(); string errorMessage; CustomAssert.IsFalse(imapSimulator.Logon(_account.Address, "test", out errorMessage)); CustomAssert.IsTrue(errorMessage.Contains("A01 BAD STARTTLS is required.")); }
public void TestChangeFlags() { 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"); CustomAssert.IsFalse(simulator.SetFlagOnMessage(1, true, @"\Deleted")); }
public void IfStlsRequiredLogonShouldSucceedIfStls() { var imapSimulator = new IMAPClientSimulator(false, 14303); imapSimulator.Connect(); imapSimulator.SendSingleCommand("A01 STARTTLS"); imapSimulator.Handshake(); // command is sent over TLS. imapSimulator.GetCapabilities(); CustomAssert.IsTrue(imapSimulator.Logon(_account.Address, "test")); }
public void TestAppendBadLiteral() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPClientSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral("*****@*****.**", "test"); oSimulator.SendSingleCommandWithLiteral("A01 APPEND INBOX {TEST}", "ABCD"); CustomAssert.AreEqual(0, oSimulator.GetMessageCount("INBOX")); oSimulator.Disconnect(); }
public void TestCreateFolderWithHash() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPClientSimulator(); oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); CustomAssert.IsFalse(oSimulator.CreateFolder("#Test")); CustomAssert.IsTrue(oSimulator.CreateFolder("Test.#Testar")); oSimulator.Disconnect(); }
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 IfStlsOptionalButSslRequiredByIpRangeForAuthThenAuthShouldFail() { var range = SingletonProvider<TestSetup>.Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSSLTLSForAuth = true; range.Save(); var imapSimulator = new IMAPClientSimulator(false, 14302); imapSimulator.Connect(); string errorMessage; CustomAssert.IsFalse(imapSimulator.Logon(_account.Address, "test", out errorMessage)); CustomAssert.IsTrue(errorMessage.Contains("A01 BAD A SSL/TLS-connection is required for authentication.")); }
public void TestCreateFolderWithSlash() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); const string folderName = "ABC\\123"; var oSimulator = new IMAPClientSimulator(); oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); CustomAssert.IsTrue(oSimulator.CreateFolder(folderName)); CustomAssert.IsTrue(oSimulator.List().Contains(folderName)); CustomAssert.IsTrue(oSimulator.SelectFolder(folderName)); oSimulator.Disconnect(); }
public void TestCreateDeepFolder() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPClientSimulator(); oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); string result = oSimulator.Send("A01 CREATE 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26"); CustomAssert.IsTrue(result.Contains("A01 NO")); oSimulator.Disconnect(); }
public void TestEmptyPassword() { Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", ""); string message; var sim = new POP3ClientSimulator(); CustomAssert.IsFalse(sim.ConnectAndLogon(account1.Address, "", out message)); var simIMAP = new IMAPClientSimulator(); CustomAssert.IsFalse(simIMAP.ConnectAndLogon(account1.Address, "", out message)); CustomAssert.AreEqual("A01 NO Invalid user name or password.\r\n", message); var simSMTP = new SMTPClientSimulator(); CustomAssert.IsFalse(simSMTP.ConnectAndLogon("dGVzdEB0ZXN0LmNvbQ==", "", out message)); CustomAssert.AreEqual("535 Authentication failed. Restarting authentication process.\r\n", message); }
public static void AssertMessageCount(string accountName, string accountPassword, string folderName, int expectedCount) { if (expectedCount == 0) { // make sure that we aren't currently delivering messages. TestSetup.AssertRecipientsInDeliveryQueue(0); } var oIMAP = new IMAPClientSimulator(); CustomAssert.IsTrue(oIMAP.ConnectAndLogon(accountName, accountPassword)); if (expectedCount != 0) { oIMAP.AssertFolderExists(folderName); } int currentCount = 0; int timeout = 1000; // 1000 * 25 = 25 seconds. while (timeout > 0) { currentCount = oIMAP.GetMessageCount(folderName); if (currentCount > expectedCount) { break; } if (currentCount == expectedCount) { oIMAP.Disconnect(); return; } timeout--; Thread.Sleep(25); } oIMAP.Disconnect(); string error = "Wrong number of messages in mailbox " + folderName + " in account " + accountName + " Actual: " + currentCount.ToString() + " Expected: " + expectedCount.ToString(); CustomAssert.Fail(error); }
public void TestFetchCharsetInQuotesWithoutSpace() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SMTPClientSimulator.StaticSendRaw(account.Address, account.Address, "From: [email protected]\r\n" + "Content-Type: text/plain; charset =\"iso-8859-1\"\r\n" + "\r\n" + "Test\r\n"); IMAPClientSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1); var sim = new IMAPClientSimulator(account.Address, "test", "Inbox"); string result = sim.Fetch("1 BODYSTRUCTURE"); sim.Disconnect(); CustomAssert.IsTrue(result.Contains("(\"CHARSET\" \"iso-8859-1\")"), result); }
public void TestLongCommand() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPClientSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(account.Address, "test"); var sb = new StringBuilder(); for (int i = 0; i < 240000; i++) { sb.Append("A"); } string result = oSimulator.Send("A01 " + sb); CustomAssert.IsTrue(result.Length == 0 || result.StartsWith("A01")); }
public void TestHierarchyDelimiterListResponse() { Application application = SingletonProvider<TestSetup>.Instance.GetApp(); Settings settings = _settings; settings.IMAPHierarchyDelimiter = "\\"; Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); string folderName = "Test\\Test"; var oSimulator = new IMAPClientSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(account.Address, "test"); CustomAssert.IsTrue(oSimulator.CreateFolder(folderName)); string listResponse = oSimulator.List(); CustomAssert.IsTrue(listResponse.Contains("\"Test\\Test\"")); CustomAssert.IsTrue(listResponse.Contains("\"Test\"")); oSimulator.Disconnect(); }
public static void AssertMessageCount(string accountName, string accountPassword, string folderName, int expectedCount) { if (expectedCount == 0) { // make sure that we aren't currently delivering messages. TestSetup.AssertRecipientsInDeliveryQueue(0); } var oIMAP = new IMAPClientSimulator(); CustomAssert.IsTrue(oIMAP.ConnectAndLogon(accountName, accountPassword)); if (expectedCount != 0) oIMAP.AssertFolderExists(folderName); int currentCount = 0; int timeout = 1000; // 1000 * 25 = 25 seconds. while (timeout > 0) { currentCount = oIMAP.GetMessageCount(folderName); if (currentCount > expectedCount) break; if (currentCount == expectedCount) { oIMAP.Disconnect(); return; } timeout--; Thread.Sleep(25); } oIMAP.Disconnect(); string error = "Wrong number of messages in mailbox " + folderName + " in account " + accountName + " Actual: " + currentCount.ToString() + " Expected: " + expectedCount.ToString(); CustomAssert.Fail(error); }