Пример #1
0
        public void TestGetACL()
        {
            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.ePermissionAdminister, true);
             permission.Save();

             string folderName = "#Public.Share1";
             IMAPSimulator oSimulator1 = new IMAPSimulator();
             oSimulator1.Connect();
             oSimulator1.LogonWithLiteral(account1.Address, "test");
             string result = oSimulator1.GetACL(folderName);
             Assert.IsTrue(result.StartsWith("* ACL \"" + folderName + "\" " + account1.Address + " ka"));

             permission.set_Permission(hMailServer.eACLPermission.ePermissionDeleteMailbox, true);
             permission.Save();
             result = oSimulator1.GetACL(folderName);
             Assert.IsTrue(result.StartsWith("* ACL \"" + folderName + "\" " + account1.Address + " kxa"));

             permission.set_Permission(hMailServer.eACLPermission.ePermissionRead, true);
             permission.Save();
             result = oSimulator1.GetACL(folderName);
             Assert.IsTrue(result.StartsWith("* ACL \"" + folderName + "\" " + account1.Address + " rkxa"));

             permission.set_Permission(hMailServer.eACLPermission.ePermissionExpunge, true);
             permission.Save();
             result = oSimulator1.GetACL(folderName);
             Assert.IsTrue(result.StartsWith("* ACL \"" + folderName + "\" " + account1.Address + " rkxea"));

             oSimulator1.Disconnect();
        }