Example #1
0
        public void TestCreateFolderWithSlash()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             const string folderName = "ABC\\123";

             var oSimulator = new IMAPClientSimulator();
             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 TestHierarchyDelimiterDelete()
        {
            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 IMAPClientSimulator();
             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon(account.Address, "test");
             CustomAssert.IsTrue(oSimulator.CreateFolder(folderName));
             string listResponse = oSimulator.List();
             CustomAssert.IsTrue(listResponse.Contains("\"Test\\Test\""));
             CustomAssert.IsTrue(listResponse.Contains("\"Test\""));
             CustomAssert.IsTrue(oSimulator.DeleteFolder("Test\\Test"));
             listResponse = oSimulator.List();
             CustomAssert.IsFalse(listResponse.Contains("Test\\Test"));
             CustomAssert.IsTrue(listResponse.Contains("Test"));
             oSimulator.Disconnect();
        }
Example #3
0
        public void TestRenameToParallelFolder()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             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();
        }
Example #4
0
        public void TestListWithReferenceTestCase2()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();
             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();
        }
Example #5
0
        public void TestListWithReference()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();
             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();
        }
Example #6
0
        public void TestListSpecial()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();
             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon(oAccount.Address, "test");
             string response = oSimulator.List("");
             CustomAssert.IsTrue(response.StartsWith("* LIST (\\Noselect) \".\" \"\""));
             oSimulator.Disconnect();

             _settings.IMAPHierarchyDelimiter = "/";

             oSimulator = new IMAPClientSimulator();
             sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon(oAccount.Address, "test");
             response = oSimulator.List("");
             CustomAssert.IsTrue(response.StartsWith("* LIST (\\Noselect) \"/\" \"\""));
             oSimulator.Disconnect();

             _settings.IMAPHierarchyDelimiter = "\\";

             oSimulator = new IMAPClientSimulator();
             sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon(oAccount.Address, "test");
             response = oSimulator.List("", false);
             string expectedResponse = "* LIST (\\Noselect) \"\\\\\" \"\"";
             CustomAssert.IsTrue(response.StartsWith(expectedResponse));
             oSimulator.Disconnect();
        }
Example #7
0
        public void TestListCommandChangedHierarchyDelimiter()
        {
            Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             _settings.IMAPHierarchyDelimiter = "\\";

             var oSimulator = new IMAPClientSimulator();

             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);
        }
Example #8
0
        public void TestFolderCaseInLIST()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             string folderName = "ABC.def.GHI";

             var oSimulator = new IMAPClientSimulator();
             oSimulator.Connect();
             oSimulator.Logon(oAccount.Address, "test");
             CustomAssert.IsTrue(oSimulator.CreateFolder(folderName));
             CustomAssert.IsFalse(oSimulator.List("ABC.DEF.*").Contains("ABC.def.GHI"));
             CustomAssert.IsTrue(oSimulator.List("ABC.DEF.*").Contains("ABC.DEF.GHI"));
             CustomAssert.IsFalse(oSimulator.List("ABC.def.*").Contains("ABC.DEF"));
             CustomAssert.IsTrue(oSimulator.List("ABC.def.*").Contains("ABC.def.GHI"));
             CustomAssert.IsTrue(oSimulator.SelectFolder(folderName));
             oSimulator.Disconnect();
        }
Example #9
0
        public void TestRenameAndList5()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             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();

             CustomAssert.IsFalse(result.Contains(" Root1\r\n"));
             CustomAssert.IsTrue(result.Contains("Root2.Root4.Root1\"\r\n"));

             CustomAssert.IsFalse(oSimulator.SelectFolder("Root1"));
             CustomAssert.IsTrue(oSimulator.SelectFolder("Root2.Root4.Root1"));

             oSimulator.Disconnect();
        }
Example #10
0
        public void TestPublicFolderNoSelectAttribute()
        {
            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.ePermissionLookup, true);
             permission.Save();

             var oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account1.Address, "test");

             CustomAssert.IsTrue(oSimulator1.List("#Public").Contains("Noselect"));
             CustomAssert.IsTrue(oSimulator1.List("#Public.Share1").Contains("#Public.Share1"));
             CustomAssert.IsFalse(oSimulator1.List("#Public.Share1").Contains("Noselect"));

             oSimulator1.Disconnect();
        }
Example #11
0
        public void TestListPublicFolderGroupPermission()
        {
            Application application = SingletonProvider<TestSetup>.Instance.GetApp();

             Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             Account account2 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             Account account3 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             Group group = SingletonProvider<TestSetup>.Instance.AddGroup("TestGroup");
             SingletonProvider<TestSetup>.Instance.AddGroupMember(group, account2);

             IMAPFolders publicFolders = _settings.PublicFolders;
             IMAPFolder folder = publicFolders.Add("Share1");
             folder.Save();

             IMAPFolderPermission permission = folder.Permissions.Add();
             permission.PermissionGroupID = group.ID;
             permission.PermissionType = eACLPermissionType.ePermissionTypeGroup;
             permission.set_Permission(eACLPermission.ePermissionCreate, true);
             permission.set_Permission(eACLPermission.ePermissionLookup, true);
             permission.Save();

             string folderName = "#Public.Share1";

             // account 1 should not have permission since he's not in the group
             var oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account1.Address, "test");
             CustomAssert.IsFalse(oSimulator1.List().Contains(folderName));
             oSimulator1.Disconnect();

             // account 2 should have permission since he is in the group
             oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account2.Address, "test");
             CustomAssert.IsTrue(oSimulator1.List().Contains(folderName));
             oSimulator1.Disconnect();

             // account 3 should not have permission since he's not in the group
             oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account3.Address, "test");
             CustomAssert.IsFalse(oSimulator1.List().Contains(folderName));
             oSimulator1.Disconnect();

             // add account 1 to the group to give him permission.
             GroupMember member = SingletonProvider<TestSetup>.Instance.AddGroupMember(group, account1);
             oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account1.Address, "test");
             CustomAssert.IsTrue(oSimulator1.List().Contains(folderName));
             oSimulator1.Disconnect();

             // delete account 1 from the group again to remove permissios.
             group.Members.DeleteByDBID(member.ID);
             oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account1.Address, "test");
             CustomAssert.IsFalse(oSimulator1.List().Contains(folderName));
             oSimulator1.Disconnect();
        }
Example #12
0
        public void TestListPublicFolderAnyonePermission()
        {
            Application application = SingletonProvider<TestSetup>.Instance.GetApp();

             Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             Account account2 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             Account account3 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             IMAPFolders publicFolders = _settings.PublicFolders;
             IMAPFolder folder = publicFolders.Add("Share1");
             folder.Save();

             string folderName = "#Public.Share1";

             // account 1 should not have permission since they aren't added yet.
             var oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account1.Address, "test");
             CustomAssert.IsFalse(oSimulator1.List().Contains(folderName));
             oSimulator1.Disconnect();

             IMAPFolderPermission permission = folder.Permissions.Add();
             permission.PermissionType = eACLPermissionType.ePermissionTypeAnyone;
             permission.set_Permission(eACLPermission.ePermissionCreate, true);
             permission.set_Permission(eACLPermission.ePermissionLookup, true);
             permission.Save();

             // account 1 should not have permission since he's not in the group
             oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account1.Address, "test");
             CustomAssert.IsTrue(oSimulator1.List().Contains(folderName));
             oSimulator1.Disconnect();
        }
Example #13
0
        public void TestListPublicFolder()
        {
            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.ePermissionLookup, true);
             permission.Save();

             var oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.LogonWithLiteral(account1.Address, "test");

             string result = oSimulator1.List();

             CustomAssert.IsTrue(result.Contains(folder.Name));

             oSimulator1.Disconnect();
        }
Example #14
0
        public void TestDuplicateConflictingGroupPermission()
        {
            Application application = SingletonProvider<TestSetup>.Instance.GetApp();

             Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             Group group1 = SingletonProvider<TestSetup>.Instance.AddGroup("TestGroup1");
             SingletonProvider<TestSetup>.Instance.AddGroupMember(group1, account1);

             Group group2 = SingletonProvider<TestSetup>.Instance.AddGroup("TestGroup2");
             SingletonProvider<TestSetup>.Instance.AddGroupMember(group2, account1);

             IMAPFolders publicFolders = _settings.PublicFolders;
             IMAPFolder folder = publicFolders.Add("Share1");
             folder.Save();

             IMAPFolderPermissions permissions = folder.Permissions;

             IMAPFolderPermission permission = permissions.Add();
             permission.PermissionGroupID = group1.ID;
             permission.PermissionType = eACLPermissionType.ePermissionTypeGroup;
             permission.Save();

             IMAPFolderPermission permission2 = permissions.Add();
             permission2.PermissionGroupID = group2.ID;
             permission2.PermissionType = eACLPermissionType.ePermissionTypeGroup;
             permission2.set_Permission(eACLPermission.ePermissionLookup, true);
             permission2.Save();

             string folderName = "#Public.Share1";

             // The account should not have permission since the first permission doesn't give him this.
             var oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account1.Address, "test");
             CustomAssert.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 = eACLPermissionType.ePermissionTypeGroup;
             permission.set_Permission(eACLPermission.ePermissionLookup, true);
             permission.Save();

             permission2 = permissions.Add();
             permission2.PermissionGroupID = group2.ID;
             permission2.PermissionType = eACLPermissionType.ePermissionTypeGroup;
             permission2.Save();

             // The account should not have permission since the first permission does give him this.
             oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account1.Address, "test");
             CustomAssert.IsTrue(oSimulator1.List().Contains(folderName));
             oSimulator1.Disconnect();
        }
Example #15
0
        public void TestRenamePublicFolderToRootPublicFolder()
        {
            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.ePermissionLookup, true);
             permission.set_Permission(eACLPermission.ePermissionDeleteMailbox, true);
             permission.Save();

             string oldFolderName = "#Public.Share1.MySub1";
             string newFolderName = "#Public.Share2";

             var oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.Logon(account1.Address, "test");
             CustomAssert.IsTrue(oSimulator1.CreateFolder(oldFolderName));
             CustomAssert.IsFalse(oSimulator1.RenameFolder(oldFolderName, newFolderName));

             CustomAssert.IsTrue(oSimulator1.List().Contains(oldFolderName));
             CustomAssert.IsFalse(oSimulator1.List().Contains(newFolderName));

             oSimulator1.Disconnect();
        }
Example #16
0
        public void TestBeforeLogon()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();

             CustomAssert.IsTrue(oSimulator.ExamineFolder("NonexistantFolder").Contains("NO Authenticate first"));
             CustomAssert.IsFalse(oSimulator.SelectFolder("NonexistantFolder"));
             CustomAssert.IsFalse(oSimulator.Copy(1, "SomeFolder"));
             CustomAssert.IsFalse(oSimulator.CheckFolder("SomeFolder"));
             CustomAssert.IsTrue(oSimulator.Fetch("123 a").Contains("NO Authenticate first"));
             CustomAssert.IsTrue(oSimulator.List().Contains("NO Authenticate first"));
             CustomAssert.IsTrue(oSimulator.LSUB().Contains("NO Authenticate first"));
             CustomAssert.IsTrue(oSimulator.GetMyRights("APA").Contains("NO Authenticate first"));
             CustomAssert.IsFalse(oSimulator.RenameFolder("A", "B"));
             CustomAssert.IsFalse(oSimulator.Status("SomeFolder", "MESSAGES").Contains("A01 OK"));
        }
Example #17
0
        public void TestFolderDeletion()
        {
            // Create a test account
             // Fetch the default domain
             Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             IMAPFolder folder = account1.IMAPFolders.Add("TestFolder1");
             folder.Save();

             var simulator1 = new IMAPClientSimulator();
             simulator1.ConnectAndLogon(account1.Address, "test");
             string result = simulator1.List();
             CustomAssert.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();
             CustomAssert.IsFalse(result.Contains(folder.Name));
             simulator1.Disconnect();
        }
Example #18
0
        public void TestLSUB()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.LogonWithLiteral("*****@*****.**", "test");
             string result = oSimulator.List().Substring(0, 1);
             CustomAssert.AreEqual("*", result);
        }