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

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

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

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

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

             oSimulator1.Disconnect();
        }