Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }
Example #4
0
        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();
        }
Example #5
0
        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();
        }
Example #7
0
        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();
        }
Example #8
0
        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();
        }
Example #9
0
        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();
        }
Example #10
0
        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();
        }
Example #11
0
        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();
        }
Example #12
0
        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();
        }
Example #13
0
        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();
        }
Example #14
0
        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();
        }
Example #15
0
        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);
        }
Example #16
0
        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();
        }
Example #17
0
        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();
        }
Example #18
0
        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"));
        }
Example #19
0
        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();
        }
Example #20
0
        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();
        }
Example #21
0
        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();
        }
Example #22
0
        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();
        }
Example #23
0
        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();
        }
Example #24
0
        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();
        }
Example #25
0
        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();
        }