public void TestBatchOfCommands() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); 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 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"); IMAPSimulator.AssertMessageCount(oAccount.Address, "test", "Inbox", 1); var oSimulator = new IMAPSimulator(); 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"); Assert.IsTrue(result.StartsWith("* SEARCH 1"), result); result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR SMALLER 1 LARGER 10000"); Assert.IsTrue(result.StartsWith("* SEARCH\r\n"), result); result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR OR SMALLER 1 LARGER 10000 SMALLER 10000"); Assert.IsTrue(result.StartsWith("* SEARCH 1\r\n"), result); }
public void TestDateSortOrder() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral("*****@*****.**", "test"); Assert.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"); Assert.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"); Assert.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"); Assert.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"); Assert.IsTrue(response.Contains("* 4 EXISTS"), response); string sortDateResponse = oSimulator.SendSingleCommand("A10 SORT (DATE) US-ASCII ALL"); Assert.IsTrue(sortDateResponse.Contains(" 4 3 1 2")); oSimulator.Disconnect(); }
public void ConfirmFileAddedToCorrectAccountFolder() { TestSetup testSetup = SingletonProvider<TestSetup>.Instance; Account oAccount = testSetup.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); // 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. Assert.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 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 IMAPSimulator(); oSimulator1.Connect(); oSimulator1.LogonWithLiteral(account1.Address, "test"); oSimulator1.SelectFolder("#Public.Share1", out selectResult); oSimulator1.Disconnect(); Assert.IsTrue(selectResult.Contains("[READ-ONLY]"), selectResult); Assert.IsFalse(selectResult.Contains("[READ-WRITE]"), selectResult); }
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 IMAPSimulator(); oSimulator1.Connect(); oSimulator1.LogonWithLiteral(account1.Address, "test"); string examineResult = oSimulator1.ExamineFolder("#Public.Share1"); oSimulator1.Disconnect(); Assert.IsTrue(examineResult.Contains("ACL: Read permission denied (Required for EXAMINE command)."), examineResult); }
public void TestIMAPServerLiteral() { var sim = new IMAPSimulator(); sim.Connect(); Assert.IsTrue(sim.Send("a01 login " + GetUsername() + " {4}").StartsWith("+")); sim.Send(GetPassword()); EnsureNoPassword(); }
public void IfStartTlsNotEnabledStartTlsShouldNotBeShownInEhloResponse() { var imapSimulator = new IMAPSimulator(false, 143); imapSimulator.Connect(); var data = imapSimulator.GetCapabilities(); CustomAssert.IsFalse(data.Contains("STARTTLS")); }
public void StlsCommandShouldSwithToTls() { var imapSimulator = new IMAPSimulator(false, 14300); imapSimulator.Connect(); var data = imapSimulator.GetCapabilities(); imapSimulator.SendSingleCommand("A01 STARTTLS"); imapSimulator.Handshake(); // command is sent over TLS. imapSimulator.GetCapabilities(); }
public void TestAppendBadLiteral() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral("*****@*****.**", "test"); oSimulator.SendSingleCommandWithLiteral("A01 APPEND INBOX {TEST}", "ABCD"); Assert.AreEqual(0, oSimulator.GetMessageCount("INBOX")); oSimulator.Disconnect(); }
public void TestCreateFolderWithHash() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); CustomAssert.IsFalse(oSimulator.CreateFolder("#Test")); CustomAssert.IsTrue(oSimulator.CreateFolder("Test.#Testar")); oSimulator.Disconnect(); }
public void TestCreateDeepFolder() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); 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 TestCreateFolderWithSlash() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); const string folderName = "ABC\\123"; var oSimulator = new IMAPSimulator(); 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 TestLongCommand() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); 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 IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(account.Address, "test"); Assert.IsTrue(oSimulator.CreateFolder(folderName)); string listResponse = oSimulator.List(); Assert.IsTrue(listResponse.Contains("\"Test\\Test\"")); Assert.IsTrue(listResponse.Contains("\"Test\"")); oSimulator.Disconnect(); }
public void ConfirmFileAddedToCorrectPublicFolder() { TestSetup testSetup = SingletonProvider<TestSetup>.Instance; Account oAccount = testSetup.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); // Confirm that the public folder is empty before we start our test. string publicDir = testSetup.GetPublicDirectory(); testSetup.AssertFilesInDirectory(publicDir, 0); IMAPFolders folders = _application.Settings.PublicFolders; IMAPFolder folder = folders.Add("Share"); folder.Save(); // Give everyone access to the folder. IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionType = eACLPermissionType.ePermissionTypeAnyone; permission.set_Permission(eACLPermission.ePermissionLookup, true); permission.set_Permission(eACLPermission.ePermissionRead, true); permission.set_Permission(eACLPermission.ePermissionInsert, true); permission.Save(); // Add the message to the public folder. oSimulator.Connect(); oSimulator.LogonWithLiteral("*****@*****.**", "test"); oSimulator.SendSingleCommandWithLiteral("A01 APPEND #Public.Share {4}", "ABCD"); // Confirm that the message exists in the public folder and not in the inbox. Assert.AreEqual(1, oSimulator.GetMessageCount("#Public.Share")); Assert.AreEqual(0, oSimulator.GetMessageCount("INBOX")); oSimulator.Disconnect(); // The public directory should now contain the message. testSetup.AssertFilesInDirectory(publicDir, 1); // There users directory should still be empty. testSetup.AssertFilesInUserDirectory(oAccount, 0); }
public void TestAppendFolderNameInOctet() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon("*****@*****.**", "test"); oSimulator.SelectFolder("INBOX"); oSimulator.CreateFolder("MONK"); oSimulator.SendRaw("A01 APPEND {4}\r\n"); string result = oSimulator.Receive(); Assert.IsTrue(result.StartsWith("+ Ready for additional command text.")); oSimulator.SendRaw("MONK (\\Seen) \"20-Jan-2009 12:59:50 +0100\" {5}\r\n"); result = oSimulator.Receive(); Assert.IsTrue(result.StartsWith("+ Ready for literal data")); oSimulator.SendRaw("WOOOT\r\n"); result = oSimulator.Receive(); Assert.AreEqual("A01 OK APPEND completed\r\n", result); }
public void TestDateSortOrderNonexistantDate() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral("*****@*****.**", "test"); Assert.IsTrue(oSimulator.SelectFolder("Inbox")); string response = oSimulator.SendSingleCommandWithLiteral( "A04 APPEND INBOX \"22-Feb-2008 22:00:00 +0200\" {4}", "ABCD"); Assert.IsTrue(response.Contains("* 1 EXISTS"), response); response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 21:00:00 +0200\" {4}", "ABCD"); Assert.IsTrue(response.Contains("* 2 EXISTS"), response); response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 20:00:00 +0200\" {4}", "ABCD"); Assert.IsTrue(response.Contains("* 3 EXISTS"), response); response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"23-Feb-2008 01:30:23 +0200\" {4}", "ABCD"); Assert.IsTrue(response.Contains("* 4 EXISTS"), response); /* * RFC 5256 "2.2. Sent Date" chapter. If the sent date cannot be determined (a Date: header is missing or cannot be parsed), * the INTERNALDATE for that message is used as the sent date. */ string sortDateResponse = oSimulator.SendSingleCommand("A10 SORT (DATE) US-ASCII ALL"); string sortArivalDateResponse = oSimulator.SendSingleCommand("A10 SORT (ARRIVAL) US-ASCII ALL"); Assert.IsTrue(sortArivalDateResponse.Contains(" 3 2 1 4")); Assert.AreEqual(sortDateResponse, sortArivalDateResponse); oSimulator.Disconnect(); }
public void TestFolderLSUBUnsubscribedFolder() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); const string folderName = "ABC.def.GHI"; var oSimulator = new IMAPSimulator(); oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); CustomAssert.IsTrue(oSimulator.CreateFolder(folderName)); CustomAssert.IsFalse(oSimulator.LSUB().Contains("\r\n\r\n")); oSimulator.Disconnect(); }
public void TestCreateLongFolder() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); string folderName = ""; for (int i = 0; i < 255; i++) folderName = folderName + "A"; string result = oSimulator.Send("A01 CREATE " + folderName); CustomAssert.IsTrue(result.Contains("A01 OK")); CustomAssert.IsTrue(oSimulator.SelectFolder(folderName)); folderName = ""; for (int i = 0; i < 256; i++) folderName = folderName + "A"; result = oSimulator.Send("A01 CREATE " + folderName); CustomAssert.IsTrue(result.Contains("A01 NO")); CustomAssert.IsFalse(oSimulator.SelectFolder(folderName)); oSimulator.Disconnect(); }
public void TestTryCreateInvalidStructure() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); CustomAssert.IsTrue(oSimulator.CreateFolder("1.2.3")); CustomAssert.IsTrue(oSimulator.CreateFolder("1.2.3.4")); // Should fail because name taken. CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3.4", "1.2.3")); CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3.4", "1.2")); CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3.4", "1")); // Should fail because invalid destination name. CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3.4", "")); // Should fail because destination name taken. CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3", "1.2.3.4")); CustomAssert.IsFalse(oSimulator.RenameFolder("1.2", "1.2.3.4")); CustomAssert.IsFalse(oSimulator.RenameFolder("1", "1.2.3.4")); CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3", "1.2")); CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3", "1")); CustomAssert.IsTrue(oSimulator.RenameFolder("1.2.3", "A")); oSimulator.Disconnect(); }
public void TestRenameToSubFolder() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); CustomAssert.IsTrue(oSimulator.CreateFolder("1.2.3.4.5")); CustomAssert.IsTrue(oSimulator.CreateFolder("A")); CustomAssert.IsTrue(oSimulator.RenameFolder("1", "A.1")); CustomAssert.IsTrue(oSimulator.SelectFolder("A.1")); CustomAssert.IsTrue(oSimulator.SelectFolder("A.1.2.3.4.5")); CustomAssert.IsTrue(oSimulator.RenameFolder("A.1", "1")); CustomAssert.IsFalse(oSimulator.SelectFolder("A.1")); CustomAssert.IsFalse(oSimulator.SelectFolder("A.1.2.3.4.5")); CustomAssert.IsTrue(oSimulator.SelectFolder("1")); CustomAssert.IsTrue(oSimulator.SelectFolder("1.2.3.4.5")); oSimulator.Disconnect(); }
public void TestRenameToParallelFolder() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); CustomAssert.IsTrue(oSimulator.CreateFolder("Main.Sub")); CustomAssert.IsTrue(oSimulator.RenameFolder("Main.Sub", "Second.Sub")); string listResponse = oSimulator.List(); CustomAssert.IsFalse(listResponse.Contains("Main.Sub")); CustomAssert.IsTrue(listResponse.Contains("Second.Sub")); oSimulator.Disconnect(); }
public void TestRenameToAndFromINBOX() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); oSimulator.Send("A01 CREATE A\r\n"); CustomAssert.IsFalse(oSimulator.RenameFolder("A", "INBOX")); CustomAssert.IsFalse(oSimulator.RenameFolder("INBOX", "B")); oSimulator.Disconnect(); }
public void TestRenameLongFolder() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); CustomAssert.IsTrue(oSimulator.CreateFolder("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")); CustomAssert.IsTrue(oSimulator.CreateFolder("A")); CustomAssert.IsFalse(oSimulator.RenameFolder("1", "A.1")); CustomAssert.IsTrue(oSimulator.RenameFolder("1.2.3", "A.1")); CustomAssert.IsTrue(oSimulator.SelectFolder("A.1.4")); oSimulator.Disconnect(); }
public void TestRenameIncorrectParameters() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); string result = oSimulator.Send("A01 CREATE A"); result = oSimulator.Send("A02 RENAME A B C"); CustomAssert.IsTrue(result.Contains("A02 BAD")); oSimulator.Disconnect(); }
public void TestLsubInclusion() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); string folderName = "Folder1"; var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); CustomAssert.IsTrue(oSimulator.CreateFolder(folderName)); CustomAssert.IsFalse(oSimulator.LSUB().Contains(folderName)); CustomAssert.IsTrue(oSimulator.Subscribe(folderName)); CustomAssert.IsTrue(oSimulator.LSUB().Contains(folderName)); oSimulator.Disconnect(); }
public void TestListSpecial() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); string response = oSimulator.List(""); CustomAssert.IsTrue(response.StartsWith("* LIST (\\Noselect) \".\" \"\"")); oSimulator.Disconnect(); _settings.IMAPHierarchyDelimiter = "/"; oSimulator = new IMAPSimulator(); sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); response = oSimulator.List(""); CustomAssert.IsTrue(response.StartsWith("* LIST (\\Noselect) \"/\" \"\"")); oSimulator.Disconnect(); _settings.IMAPHierarchyDelimiter = "\\"; oSimulator = new IMAPSimulator(); sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); response = oSimulator.List("", false); string expectedResponse = "* LIST (\\Noselect) \"\\\\\" \"\""; CustomAssert.IsTrue(response.StartsWith(expectedResponse)); oSimulator.Disconnect(); }
public void TestListCommandChangedHierarchyDelimiter() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); _settings.IMAPHierarchyDelimiter = "\\"; var oSimulator = new IMAPSimulator(); oSimulator.Connect(); oSimulator.LogonWithLiteral(account.Address, "test"); oSimulator.CreateFolder("Test\\HelloWorld\\Test2"); string response = oSimulator.List("%"); CustomAssert.IsTrue(response.Contains("\"Test\""), response); response = oSimulator.List("%\\%"); CustomAssert.IsTrue(response.Contains("\"Test\\HelloWorld\""), response); response = oSimulator.List("%\\%\\%%"); CustomAssert.IsTrue(response.Contains("\"Test\\HelloWorld\\Test2\""), response); }
public void TestFolderCaseInLSUB() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); string folderName = "ABC.def.GHI"; var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); CustomAssert.IsTrue(oSimulator.CreateFolder(folderName)); CustomAssert.IsTrue(oSimulator.Subscribe(folderName)); CustomAssert.IsFalse(oSimulator.LSUB("ABC.DEF.*").Contains("ABC.def.GHI")); CustomAssert.IsTrue(oSimulator.LSUB("ABC.DEF.*").Contains("ABC.DEF.GHI")); CustomAssert.IsFalse(oSimulator.LSUB("ABC.def.*").Contains("ABC.DEF")); CustomAssert.IsTrue(oSimulator.LSUB("ABC.def.*").Contains("ABC.def.GHI")); CustomAssert.IsTrue(oSimulator.SelectFolder(folderName)); oSimulator.Disconnect(); }