public void TestFolderDeletion() { // Create a test account // Fetch the default domain hMailServer.Account account1 = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.IMAPFolder folder = account1.IMAPFolders.Add("TestFolder1"); folder.Save(); IMAPSimulator simulator1 = new IMAPSimulator(); simulator1.ConnectAndLogon(account1.Address, "test"); string result = simulator1.List(); Assert.IsTrue(result.Contains(folder.Name)); simulator1.Disconnect(); // Delete the folder and confirm it's no longer listed. folder.Delete(); simulator1.ConnectAndLogon(account1.Address, "test"); result = simulator1.List(); Assert.IsFalse(result.Contains(folder.Name)); simulator1.Disconnect(); }
public void TestHierarchyDelimiterDelete() { hMailServer.Application application = SingletonProvider <Utilities> .Instance.GetApp(); hMailServer.Settings settings = _settings; settings.IMAPHierarchyDelimiter = "\\"; hMailServer.Account account = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); string folderName = "Test\\Test"; IMAPSimulator 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\"")); Assert.IsTrue(oSimulator.DeleteFolder("Test\\Test")); listResponse = oSimulator.List(); Assert.IsFalse(listResponse.Contains("Test\\Test")); Assert.IsTrue(listResponse.Contains("Test")); oSimulator.Disconnect(); }
public void TestListSpecial() { hMailServer.Account oAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); string response = oSimulator.List(""); Assert.IsTrue(response.StartsWith("* LIST (\\Noselect) \".\" \"\"")); oSimulator.Disconnect(); _settings.IMAPHierarchyDelimiter = "/"; oSimulator = new IMAPSimulator(); sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); response = oSimulator.List(""); Assert.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) \"\\\\\" \"\""; Assert.IsTrue(response.StartsWith(expectedResponse)); oSimulator.Disconnect(); }
public void TestListWithReference() { hMailServer.Account oAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator 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); Assert.IsFalse(response.Contains("INBOX")); Assert.IsFalse(response.Contains("SomeOtherFolder")); Assert.IsTrue(response.Contains("* LIST (\\HasChildren) \".\" \"Main.Sub1\"")); Assert.IsTrue(response.Contains("* LIST (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); Assert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); response = oSimulator.List("Main.Sub1", "*", true); Assert.IsFalse(response.Contains("INBOX")); Assert.IsFalse(response.Contains("SomeOtherFolder")); Assert.IsTrue(response.Contains("* LIST (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); Assert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); response = oSimulator.LSUB("Main", "*"); Assert.IsFalse(response.Contains("INBOX")); Assert.IsFalse(response.Contains("SomeOtherFolder")); Assert.IsTrue(response.Contains("* LSUB (\\HasChildren) \".\" \"Main.Sub1\"")); Assert.IsTrue(response.Contains("* LSUB (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); Assert.IsTrue(response.Contains("* LSUB (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); response = oSimulator.LSUB("Main.Sub1", "*"); Assert.IsFalse(response.Contains("INBOX")); Assert.IsFalse(response.Contains("SomeOtherFolder")); Assert.IsTrue(response.Contains("* LSUB (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); Assert.IsTrue(response.Contains("* LSUB (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); oSimulator.Disconnect(); }
public void TestFolderCaseInLIST() { hMailServer.Account oAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); string folderName = "ABC.def.GHI"; IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); Assert.IsTrue(oSimulator.CreateFolder(folderName)); Assert.IsFalse(oSimulator.List("ABC.DEF.*").Contains("ABC.def.GHI")); Assert.IsTrue(oSimulator.List("ABC.DEF.*").Contains("ABC.DEF.GHI")); Assert.IsFalse(oSimulator.List("ABC.def.*").Contains("ABC.DEF")); Assert.IsTrue(oSimulator.List("ABC.def.*").Contains("ABC.def.GHI")); Assert.IsTrue(oSimulator.SelectFolder(folderName)); oSimulator.Disconnect(); }
public void TestHierarchyDelimiterDelete() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); hMailServer.Settings settings = _settings; settings.IMAPHierarchyDelimiter = "\\"; hMailServer.Account account = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); string folderName = "Test\\Test"; IMAPSimulator 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\"")); Assert.IsTrue(oSimulator.DeleteFolder("Test\\Test")); listResponse = oSimulator.List(); Assert.IsFalse(listResponse.Contains("Test\\Test")); Assert.IsTrue(listResponse.Contains("Test")); oSimulator.Disconnect(); }
public void TestCreateFolderWithSlash() { hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); string folderName = "ABC\\123"; IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); Assert.IsTrue(oSimulator.CreateFolder(folderName)); Assert.IsTrue(oSimulator.List().Contains(folderName)); Assert.IsTrue(oSimulator.SelectFolder(folderName)); oSimulator.Disconnect(); }
public void TestCreateFolderWithSlash() { hMailServer.Account oAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); string folderName = "ABC\\123"; IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); Assert.IsTrue(oSimulator.CreateFolder(folderName)); Assert.IsTrue(oSimulator.List().Contains(folderName)); Assert.IsTrue(oSimulator.SelectFolder(folderName)); oSimulator.Disconnect(); }
public void TestRenameToParallelFolder() { hMailServer.Account oAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); Assert.IsTrue(oSimulator.CreateFolder("Main.Sub")); Assert.IsTrue(oSimulator.RenameFolder("Main.Sub", "Second.Sub")); string listResponse = oSimulator.List(); Assert.IsFalse(listResponse.Contains("Main.Sub")); Assert.IsTrue(listResponse.Contains("Second.Sub")); oSimulator.Disconnect(); }
public void TestListWithReferenceTestCase2() { hMailServer.Account oAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator 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); Assert.IsFalse(response.Contains("\"INBOX.MyApp\"")); Assert.IsFalse(response.Contains("\"INBOX.SomeOtherFolder\"")); Assert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"INBOX.MyApp.SubFolder1\"")); Assert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"INBOX.MyApp.SubFolder2\"")); oSimulator.Disconnect(); }
public void TestListWithReference() { hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator 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); Assert.IsFalse(response.Contains("INBOX")); Assert.IsFalse(response.Contains("SomeOtherFolder")); Assert.IsTrue(response.Contains("* LIST (\\HasChildren) \".\" \"Main.Sub1\"")); Assert.IsTrue(response.Contains("* LIST (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); Assert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); response = oSimulator.List("Main.Sub1", "*", true); Assert.IsFalse(response.Contains("INBOX")); Assert.IsFalse(response.Contains("SomeOtherFolder")); Assert.IsTrue(response.Contains("* LIST (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); Assert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); response = oSimulator.LSUB("Main", "*"); Assert.IsFalse(response.Contains("INBOX")); Assert.IsFalse(response.Contains("SomeOtherFolder")); Assert.IsTrue(response.Contains("* LSUB (\\HasChildren) \".\" \"Main.Sub1\"")); Assert.IsTrue(response.Contains("* LSUB (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); Assert.IsTrue(response.Contains("* LSUB (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); response = oSimulator.LSUB("Main.Sub1", "*"); Assert.IsFalse(response.Contains("INBOX")); Assert.IsFalse(response.Contains("SomeOtherFolder")); Assert.IsTrue(response.Contains("* LSUB (\\HasChildren) \".\" \"Main.Sub1.Sub2\"")); Assert.IsTrue(response.Contains("* LSUB (\\HasNoChildren) \".\" \"Main.Sub1.Sub2.Sub3\"")); oSimulator.Disconnect(); }
public void TestListSpecial() { hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); string response = oSimulator.List(""); Assert.IsTrue(response.StartsWith("* LIST (\\Noselect) \".\" \"\"")); oSimulator.Disconnect(); _settings.IMAPHierarchyDelimiter = "/"; oSimulator = new IMAPSimulator(); sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); response = oSimulator.List(""); Assert.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) \"\\\\\" \"\""; Assert.IsTrue(response.StartsWith(expectedResponse)); oSimulator.Disconnect(); }
public void TestFolderCaseInLIST() { hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); string folderName = "ABC.def.GHI"; IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon(oAccount.Address, "test"); Assert.IsTrue(oSimulator.CreateFolder(folderName)); Assert.IsFalse(oSimulator.List("ABC.DEF.*").Contains("ABC.def.GHI")); Assert.IsTrue(oSimulator.List("ABC.DEF.*").Contains("ABC.DEF.GHI")); Assert.IsFalse(oSimulator.List("ABC.def.*").Contains("ABC.DEF")); Assert.IsTrue(oSimulator.List("ABC.def.*").Contains("ABC.def.GHI")); Assert.IsTrue(oSimulator.SelectFolder(folderName)); oSimulator.Disconnect(); }
public void TestListPublicFolder() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); hMailServer.Account account1 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.IMAPFolders publicFolders = _settings.PublicFolders; hMailServer.IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); hMailServer.IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionAccountID = account1.ID; permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeUser; permission.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true); permission.Save(); IMAPSimulator oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.LogonWithLiteral(account1.Address, "test"); string result = oSimulator1.List(); Assert.IsTrue(result.Contains(folder.Name)); oSimulator1.Disconnect(); }
public void TestLSUB() { hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral("*****@*****.**", "test"); string result = oSimulator.List().Substring(0, 1); Assert.AreEqual("*", result); }
public void TestDuplicateConflictingGroupPermission() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); hMailServer.Account account1 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.Group group1 = SingletonProvider<Utilities>.Instance.AddGroup("TestGroup1"); SingletonProvider<Utilities>.Instance.AddGroupMember(group1, account1); hMailServer.Group group2 = SingletonProvider<Utilities>.Instance.AddGroup("TestGroup2"); SingletonProvider<Utilities>.Instance.AddGroupMember(group2, account1); hMailServer.IMAPFolders publicFolders = _settings.PublicFolders; hMailServer.IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); hMailServer.IMAPFolderPermissions permissions = folder.Permissions; hMailServer.IMAPFolderPermission permission = permissions.Add(); permission.PermissionGroupID = group1.ID; permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeGroup; permission.Save(); hMailServer.IMAPFolderPermission permission2 = permissions.Add(); permission2.PermissionGroupID = group2.ID; permission2.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeGroup; permission2.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true); permission2.Save(); string folderName = "#Public.Share1"; // The account should not have permission since the first permission doesn't give him this. IMAPSimulator oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsFalse(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); // Now delete the permissions and in the first permission give the group the rights. while (permissions.Count > 0) permissions.Delete(0); permission = permissions.Add(); permission.PermissionGroupID = group1.ID; permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeGroup; permission.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true); permission.Save(); permission2 = permissions.Add(); permission2.PermissionGroupID = group2.ID; permission2.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeGroup; permission2.Save(); // The account should not have permission since the first permission does give him this. oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsTrue(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); }
public void TestLISTPublicFolderParent() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); hMailServer.Account account1 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.IMAPFolders publicFolders = _settings.PublicFolders; hMailServer.IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); hMailServer.IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionAccountID = account1.ID; permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeUser; permission.set_Permission(hMailServer.eACLPermission.ePermissionCreate, true); permission.Save(); string folderName = "#Public.Share1"; IMAPSimulator oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsFalse(oSimulator1.List().Contains(folderName)); // Add permissions to select and lookup permission.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true); permission.Save(); Assert.IsTrue(oSimulator1.List().Contains("#Public\"\r\n")); Assert.IsTrue(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); }
public void TestBeforeLogon() { hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); Assert.IsTrue(oSimulator.ExamineFolder("NonexistantFolder").Contains("NO Authenticate first")); Assert.IsFalse(oSimulator.SelectFolder("NonexistantFolder")); Assert.IsFalse(oSimulator.Copy(1, "SomeFolder")); Assert.IsFalse(oSimulator.CheckFolder("SomeFolder")); Assert.IsTrue(oSimulator.Fetch("123 a").Contains("NO Authenticate first")); Assert.IsTrue(oSimulator.List().Contains("NO Authenticate first")); Assert.IsTrue(oSimulator.LSUB().Contains("NO Authenticate first")); Assert.IsTrue(oSimulator.GetMyRights("APA").Contains("NO Authenticate first")); Assert.IsFalse(oSimulator.RenameFolder("A", "B")); Assert.IsFalse(oSimulator.Status("SomeFolder", "MESSAGES").Contains("A01 OK")); }
public void TestRenameAndList5() { hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator 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 TestListWithReferenceTestCase2() { hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator 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); Assert.IsFalse(response.Contains("\"INBOX.MyApp\"")); Assert.IsFalse(response.Contains("\"INBOX.SomeOtherFolder\"")); Assert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"INBOX.MyApp.SubFolder1\"")); Assert.IsTrue(response.Contains("* LIST (\\HasNoChildren) \".\" \"INBOX.MyApp.SubFolder2\"")); oSimulator.Disconnect(); }
public void TestListPublicFolderGroupPermission() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); hMailServer.Account account1 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.Account account2 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.Account account3 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.Group group = SingletonProvider<Utilities>.Instance.AddGroup("TestGroup"); SingletonProvider<Utilities>.Instance.AddGroupMember(group, account2); hMailServer.IMAPFolders publicFolders = _settings.PublicFolders; hMailServer.IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); hMailServer.IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionGroupID = group.ID; permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeGroup; permission.set_Permission(hMailServer.eACLPermission.ePermissionCreate, true); permission.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true); permission.Save(); string folderName = "#Public.Share1"; // account 1 should not have permission since he's not in the group IMAPSimulator oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsFalse(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); // account 2 should have permission since he is in the group oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account2.Address, "test"); Assert.IsTrue(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); // account 3 should not have permission since he's not in the group oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account3.Address, "test"); Assert.IsFalse(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); // add account 1 to the group to give him permission. hMailServer.GroupMember member = SingletonProvider<Utilities>.Instance.AddGroupMember(group, account1); oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsTrue(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); // delete account 1 from the group again to remove permissios. group.Members.DeleteByDBID(member.ID); oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsFalse(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); }
public void TestRenameToParallelFolder() { hMailServer.Account oAccount = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPSimulator oSimulator = new IMAPSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.LogonWithLiteral(oAccount.Address, "test"); Assert.IsTrue(oSimulator.CreateFolder("Main.Sub")); Assert.IsTrue(oSimulator.RenameFolder("Main.Sub", "Second.Sub")); string listResponse = oSimulator.List(); Assert.IsFalse(listResponse.Contains("Main.Sub")); Assert.IsTrue(listResponse.Contains("Second.Sub")); oSimulator.Disconnect(); }
public void TestListPublicFolderAnyonePermission() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); hMailServer.Account account1 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.Account account2 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.Account account3 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.IMAPFolders publicFolders = _settings.PublicFolders; hMailServer.IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); string folderName = "#Public.Share1"; // account 1 should not have permission since they aren't added yet. IMAPSimulator oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsFalse(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); hMailServer.IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeAnyone; permission.set_Permission(hMailServer.eACLPermission.ePermissionCreate, true); permission.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true); permission.Save(); // account 1 should not have permission since he's not in the group oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsTrue(oSimulator1.List().Contains(folderName)); oSimulator1.Disconnect(); }
public void TestRenamePublicFolderToRootPublicFolder() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); hMailServer.Account account1 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.IMAPFolders publicFolders = _settings.PublicFolders; hMailServer.IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); hMailServer.IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionAccountID = account1.ID; permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeUser; permission.set_Permission(hMailServer.eACLPermission.ePermissionCreate, true); permission.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true); permission.set_Permission(hMailServer.eACLPermission.ePermissionDeleteMailbox, true); permission.Save(); string oldFolderName = "#Public.Share1.MySub1"; string newFolderName = "#Public.Share2"; IMAPSimulator oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsTrue(oSimulator1.CreateFolder(oldFolderName)); Assert.IsFalse(oSimulator1.RenameFolder(oldFolderName, newFolderName)); Assert.IsTrue(oSimulator1.List().Contains(oldFolderName)); Assert.IsFalse(oSimulator1.List().Contains(newFolderName)); oSimulator1.Disconnect(); }
public void TestPublicFolderNoSelectAttribute() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); ; hMailServer.Account account1 = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.IMAPFolders publicFolders = _settings.PublicFolders; hMailServer.IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); hMailServer.IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionAccountID = account1.ID; permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeUser; permission.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true); permission.Save(); IMAPSimulator oSimulator1 = new IMAPSimulator(); oSimulator1.Connect(); oSimulator1.Logon(account1.Address, "test"); Assert.IsTrue(oSimulator1.List("#Public").Contains("Noselect")); Assert.IsTrue(oSimulator1.List("#Public.Share1").Contains("#Public.Share1")); Assert.IsFalse(oSimulator1.List("#Public.Share1").Contains("Noselect")); oSimulator1.Disconnect(); }