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 TestIMAPServer() { TestSetup.DeleteCurrentDefaultLog(); Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); for (int i = 0; i < 30; i++) { try { var imapSim = new IMAPSimulator(true, 14300); 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 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 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 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 TestListWithReference() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); oSimulator.ConnectAndLogon(oAccount.Address, "test"); oSimulator.CreateFolder("Main.Sub1.Sub2.Sub3"); oSimulator.CreateFolder("SomeOtherFolder"); oSimulator.Subscribe("Main"); oSimulator.Subscribe("Main.Sub1"); oSimulator.Subscribe("Main.Sub1.Sub2"); oSimulator.Subscribe("Main.Sub1.Sub2.Sub3"); oSimulator.Subscribe("SomeOtherFolder"); string response = oSimulator.List("Main", "*", true); CustomAssert.IsFalse(response.Contains("INBOX")); CustomAssert.IsFalse(response.Contains("SomeOtherFolder")); CustomAssert.IsTrue(response.Contains("* LIST (\\HasChildren) \".\" \"Main.Sub1\"")); CustomAssert.IsTrue(response.Contains("* LIST (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); CustomAssert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); response = oSimulator.List("Main.Sub1", "*", true); CustomAssert.IsFalse(response.Contains("INBOX")); CustomAssert.IsFalse(response.Contains("SomeOtherFolder")); CustomAssert.IsTrue(response.Contains("* LIST (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); CustomAssert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); response = oSimulator.LSUB("Main", "*"); CustomAssert.IsFalse(response.Contains("INBOX")); CustomAssert.IsFalse(response.Contains("SomeOtherFolder")); CustomAssert.IsTrue(response.Contains("* LSUB (\\HasChildren) \".\" \"Main.Sub1\"")); CustomAssert.IsTrue(response.Contains("* LSUB (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); CustomAssert.IsTrue(response.Contains("* LSUB (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); response = oSimulator.LSUB("Main.Sub1", "*"); CustomAssert.IsFalse(response.Contains("INBOX")); CustomAssert.IsFalse(response.Contains("SomeOtherFolder")); CustomAssert.IsTrue(response.Contains("* LSUB (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); CustomAssert.IsTrue(response.Contains("* LSUB (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); 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 TestRecentRemovedOnMailboxClose() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SMTPClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestMessage"); IMAPSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1); var sim = new IMAPSimulator(); 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 IMAPSimulator(); 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 TestFolderQuote() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); const string folderName = "Test*"; var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); Assert.IsTrue(oSimulator.CreateFolder(folderName)); Assert.IsTrue(oSimulator.Subscribe(folderName)); Assert.IsTrue(oSimulator.LSUB().Contains("\"" + folderName + "\"")); 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 TestRenameSubFolderToMatchingName() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); CustomAssert.IsTrue(oSimulator.ConnectAndLogon(account.Address, "test")); CustomAssert.IsTrue(oSimulator.CreateFolder("Folder1")); CustomAssert.IsTrue(oSimulator.SelectFolder("Folder1")); string result = string.Empty; CustomAssert.IsFalse(oSimulator.RenameFolder("Folder1", "Folder1.Sub1", out result)); CustomAssert.IsTrue(result.Contains("A folder cannot be moved into one of its subfolders.")); CustomAssert.IsTrue(oSimulator.SelectFolder("Folder1")); result = string.Empty; CustomAssert.IsTrue(oSimulator.RenameFolder("Folder1", "Folder1Test", out result)); CustomAssert.IsTrue(oSimulator.SelectFolder("Folder1Test")); oSimulator.Disconnect(); }
public void TestRenameSubFolderToChildSub() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); Assert.IsTrue(oSimulator.ConnectAndLogon(account.Address, "test")); Assert.IsTrue(oSimulator.CreateFolder("A.B")); string result; Assert.IsFalse(oSimulator.RenameFolder("A.B", "A.B.C", out result)); Assert.IsTrue(result.Contains("A folder cannot be moved into one of its subfolders.")); Assert.IsTrue(oSimulator.SelectFolder("A.B")); oSimulator.Disconnect(); }
public void TestDelete() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon("*****@*****.**", "test"); Assert.IsFalse(oSimulator.DeleteFolder("DoesNotExist")); Assert.IsTrue(oSimulator.CreateFolder("DoesExist")); Assert.IsTrue(oSimulator.SelectFolder("DoesExist")); oSimulator.Close(); Assert.IsTrue(oSimulator.DeleteFolder("DoesExist")); Assert.IsFalse(oSimulator.SelectFolder("DoesExist")); }
public void TestCheck() { SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon("*****@*****.**", "test"); Assert.IsTrue(oSimulator.CreateFolder("TestFolder")); Assert.IsTrue(oSimulator.CheckFolder("TestFolder")); oSimulator.Disconnect(); }
public void TestUnsubscribe() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon("*****@*****.**", "test"); Assert.IsTrue(oSimulator.CreateFolder("TestFolder1")); Assert.IsTrue(oSimulator.CreateFolder("TestFolder2")); if (!oSimulator.Subscribe("TestFolder1")) Assert.Fail("Subscribe on existent folder failed"); if (!oSimulator.Subscribe("TestFolder2")) Assert.Fail("Subscribe on existent folder failed"); if (!oSimulator.Unsubscribe("TestFolder1")) Assert.Fail("Unsubscribe on existent folder failed"); if (!oSimulator.Unsubscribe("TestFolder2")) Assert.Fail("Unsubscribe on existent folder failed"); }
public void TestUnseenResponseInSelect() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SMTPClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestMessage"); IMAPSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1); var sim = new IMAPSimulator(); 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); string searchResponse = sim.SendSingleCommand("srch1 SEARCH ALL UNSEEN"); // We should have at least one message here. Assert.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"); Assert.IsTrue(searchResponse.Contains("* SEARCH\r\n"), searchResponse); // Close the messages to mark them as no longer recent. Assert.IsTrue(sim.Close()); result = sim.SendSingleCommand("a01 select Dummy"); Assert.IsTrue(result.Contains("* 1 EXISTS\r\n* 0 RECENT"), result); }
public void TestRenameAndList5() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon("*****@*****.**", "test"); oSimulator.CreateFolder("Root1"); oSimulator.CreateFolder("Root2.Root3"); oSimulator.RenameFolder("Root2.Root3", "Root2.Root4"); oSimulator.RenameFolder("Root1", "Root2.Root4.Root1"); string result = oSimulator.List(); Assert.IsFalse(result.Contains(" Root1\r\n")); Assert.IsTrue(result.Contains("Root2.Root4.Root1\"\r\n")); Assert.IsFalse(oSimulator.SelectFolder("Root1")); Assert.IsTrue(oSimulator.SelectFolder("Root2.Root4.Root1")); oSimulator.Disconnect(); }
public void TestRename() { Application application = SingletonProvider<TestSetup>.Instance.GetApp(); Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon("*****@*****.**", "test"); Assert.IsTrue(oSimulator.CreateFolder("Root1")); Assert.IsTrue(oSimulator.CreateFolder("Root1.Sub1")); Assert.IsTrue(oSimulator.CreateFolder("Root1.Sub2")); Assert.IsTrue(oSimulator.CreateFolder("Root1.Sub3")); Assert.IsTrue(oSimulator.SelectFolder("Root1")); Assert.IsTrue(oSimulator.SelectFolder("Root1.Sub1")); Assert.IsTrue(oSimulator.SelectFolder("Root1.Sub2")); Assert.IsTrue(oSimulator.SelectFolder("Root1.Sub3")); Assert.IsTrue(oSimulator.RenameFolder("Root1", "Root2")); Assert.IsTrue(oSimulator.SelectFolder("Root2")); Assert.IsTrue(oSimulator.SelectFolder("Root2.Sub1")); Assert.IsTrue(oSimulator.SelectFolder("Root2.Sub2")); Assert.IsTrue(oSimulator.SelectFolder("Root2.Sub3")); oSimulator.Disconnect(); }
public void TestListWithReferenceTestCase2() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); oSimulator.ConnectAndLogon(oAccount.Address, "test"); oSimulator.CreateFolder("INBOX.MyApp.SubFolder1"); oSimulator.CreateFolder("INBOX.MyApp.SubFolder2"); oSimulator.CreateFolder("INBOX.SomeOtherFolder"); string response = oSimulator.List("INBOX.MyApp", "%.%", true); CustomAssert.IsFalse(response.Contains("\"INBOX.MyApp\"")); CustomAssert.IsFalse(response.Contains("\"INBOX.SomeOtherFolder\"")); CustomAssert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"INBOX.MyApp.SubFolder1\"")); CustomAssert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"INBOX.MyApp.SubFolder2\"")); oSimulator.Disconnect(); }
public void TestDeleteIMAPFolderNotifications() { _settings.IMAPIdleEnabled = true; Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator1 = new IMAPSimulator(); var oSimulator2 = new IMAPSimulator(); oSimulator1.ConnectAndLogon(oAccount.Address, "test"); oSimulator2.ConnectAndLogon(oAccount.Address, "test"); oSimulator1.SelectFolder("Inbox"); oSimulator2.CreateFolder("Mailbox"); oSimulator2.DeleteFolder("Mailbox"); SMTPClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test"); POP3Simulator.AssertMessageCount(oAccount.Address, "test", 1); string noopResponse = oSimulator1.NOOP() + oSimulator1.NOOP(); // confirm that the client is notified about this message even though another // folder has been dropped by another client. Assert.IsTrue(noopResponse.Contains(@"* 1 EXISTS"), noopResponse); }
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 TestAppendFolderNameInOctetNoFlagList() { 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 \"12-Jan-2009 12:12:12 +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); DateTime date = Convert.ToDateTime(oAccount.IMAPFolders.get_ItemByName("MONK").Messages[0].InternalDate); Assert.AreEqual(2009, date.Year); Assert.AreEqual(12, date.Day); Assert.AreEqual(1, date.Month); }
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 TestRenameFolderToAndFromPublic() { 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.ePermissionCreate, true); permission.set_Permission(eACLPermission.ePermissionDeleteMailbox, true); permission.set_Permission(eACLPermission.ePermissionLookup, true); permission.Save(); string oldFolderName = "#Public.Share1"; string newFolderName = "AccountLevelFolder"; // Test renaming from local folder name to shared folder. var oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsFalse(oSimulator1.RenameFolder(oldFolderName, newFolderName)); oSimulator1.Disconnect(); // Test renaming from local folder name to shared folder. oldFolderName = "LocalFolder"; newFolderName = "#Public.Share1"; oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); oSimulator1.CreateFolder(oldFolderName); Assert.IsFalse(oSimulator1.RenameFolder(oldFolderName, newFolderName)); oSimulator1.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 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(); }
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 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 TestPublicFolderSubscriptionCreate() { Application application = SingletonProvider<TestSetup>.Instance.GetApp(); Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); Account account2 = 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.ePermissionCreate, true); permission.set_Permission(eACLPermission.ePermissionAdminister, true); permission.set_Permission(eACLPermission.ePermissionExpunge, true); permission.set_Permission(eACLPermission.ePermissionDeleteMailbox, true); permission.set_Permission(eACLPermission.ePermissionRead, true); permission.Save(); var oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); string folderName = "#Public.Share1.MySub"; oSimulator1.CreateFolder(folderName); IMAPFolder theNewFolder = folder.SubFolders[0]; Assert.IsTrue(theNewFolder.Name.Equals("MySub")); Assert.IsTrue(theNewFolder.Subscribed); oSimulator1.Disconnect(); }
public void TestExamine() { Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); Assert.IsTrue(oSimulator.CreateFolder("TestFolder")); string result = oSimulator.ExamineFolder("TestFolder"); Assert.IsTrue(result.Contains("[PERMANENTFLAGS ()]"), result); Assert.IsTrue(result.Contains("[READ-ONLY]"), result); }