public void TestBatchOfCommands()
        {
            Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();
             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon(account.Address, "test");

             string commandSequence = "";
             for (int i = 0; i < 200; i++)
             {
            commandSequence += "A" + i.ToString() + " SELECT INBOX\r\n";
             }
             commandSequence = commandSequence.TrimEnd("\r\n".ToCharArray());

             string result = oSimulator.Send(commandSequence);
             CustomAssert.IsFalse(result.StartsWith("* BYE"));

             oSimulator.Disconnect();

             sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon(account.Address, "test");
             commandSequence = "";
             for (int i = 0; i < 500; i++)
             {
            commandSequence += "A" + i.ToString() + " SELECT INBOX\r\n";
             }
             commandSequence = commandSequence.TrimEnd("\r\n".ToCharArray());

             result = oSimulator.Send(commandSequence);
             CustomAssert.IsFalse(result.StartsWith("* BYE Excessive number of buffered commands"));
             oSimulator.Disconnect();
        }
Example #2
0
        public void FolderMarkedAsReadOnlyWhenUserHasReadOnlyRights()
        {
            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.set_Permission(eACLPermission.ePermissionRead, true);
             permission.Save();

             string selectResult = string.Empty;

             var oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.LogonWithLiteral(account1.Address, "test");
             oSimulator1.SelectFolder("#Public.Share1", out selectResult);
             oSimulator1.Disconnect();

             CustomAssert.IsTrue(selectResult.Contains("[READ-ONLY]"), selectResult);
             CustomAssert.IsFalse(selectResult.Contains("[READ-WRITE]"), selectResult);
        }
Example #3
0
        public void ExamineFolderRequiresReadPermission()
        {
            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();

             string selectResult = string.Empty;

             var oSimulator1 = new IMAPClientSimulator();
             oSimulator1.Connect();
             oSimulator1.LogonWithLiteral(account1.Address, "test");
             string examineResult = oSimulator1.ExamineFolder("#Public.Share1");
             oSimulator1.Disconnect();

             CustomAssert.IsTrue(examineResult.Contains("ACL: Read permission denied (Required for EXAMINE command)."),
                       examineResult);
        }
Example #4
0
        public void ConfirmFileAddedToCorrectAccountFolder()
        {
            TestSetup testSetup = SingletonProvider<TestSetup>.Instance;
             Account oAccount = testSetup.AddAccount(_domain, "*****@*****.**", "test");
             var oSimulator = new IMAPClientSimulator();

             // Confirm that the public folder is empty before we start our test.
             string publicDir = testSetup.GetPublicDirectory();
             testSetup.AssertFilesInDirectory(publicDir, 0);

             // Add a message to the inbox.
             oSimulator.Connect();
             oSimulator.LogonWithLiteral("*****@*****.**", "test");
             oSimulator.SendSingleCommandWithLiteral("A01 APPEND INBOX {4}", "ABCD");

             // Confirm it exists in the IMAP folder.
             CustomAssert.AreEqual(1, oSimulator.GetMessageCount("INBOX"));
             oSimulator.Disconnect();

             // The public directory should still be empty - the message was added to the user account.
             testSetup.AssertFilesInDirectory(publicDir, 0);

             // There should be a single file in the users directory.
             testSetup.AssertFilesInUserDirectory(oAccount, 1);
        }
Example #5
0
        public void TestDateSortOrder()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.LogonWithLiteral("*****@*****.**", "test");
             CustomAssert.IsTrue(oSimulator.SelectFolder("Inbox"));

             string response =
            oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 22:00:00 +0200\" {37}",
                                                    "Date: Wed, 15 Dec 2010 13:00:00 +0000");
             CustomAssert.IsTrue(response.Contains("* 1 EXISTS"), response);

             response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 21:00:00 +0200\" {37}",
                                                            "Date: Wed, 15 Dec 2010 14:00:00 +0000");
             CustomAssert.IsTrue(response.Contains("* 2 EXISTS"), response);

             response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 20:00:00 +0200\" {37}",
                                                            "Date: Wed, 15 Dec 2010 12:00:00 +0000");
             CustomAssert.IsTrue(response.Contains("* 3 EXISTS"), response);

             response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"23-Feb-2008 01:30:23 +0200\" {37}",
                                                            "Date: Wed, 15 Dec 2010 11:00:00 +0000");
             CustomAssert.IsTrue(response.Contains("* 4 EXISTS"), response);

             string sortDateResponse = oSimulator.SendSingleCommand("A10 SORT (DATE) US-ASCII ALL");

             CustomAssert.IsTrue(sortDateResponse.Contains(" 4 3 1 2"));
             oSimulator.Disconnect();
        }
Example #6
0
        public void TestNestedOrSearch()
        {
            Application application = SingletonProvider<TestSetup>.Instance.GetApp();

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

             // Send a message to this account.
             var oSMTP = new SMTPClientSimulator();
             oSMTP.Send("*****@*****.**", "*****@*****.**", "Search test", "This is a test of IMAP Search");

             IMAPClientSimulator.AssertMessageCount(oAccount.Address, "test", "Inbox", 1);

             var oSimulator = new IMAPClientSimulator();
             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon("*****@*****.**", "test");
             oSimulator.SelectFolder("INBOX");

             string result =
            oSimulator.SendSingleCommand("A4 SEARCH ALL OR OR SINCE 28-May-2008 SINCE 28-May-2008 SINCE 28-May-2008");
             CustomAssert.IsTrue(result.StartsWith("* SEARCH 1"), result);

             result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR SMALLER 1 LARGER 10000");
             CustomAssert.IsTrue(result.StartsWith("* SEARCH\r\n"), result);

             result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR OR SMALLER 1 LARGER 10000 SMALLER 10000");
             CustomAssert.IsTrue(result.StartsWith("* SEARCH 1\r\n"), result);
        }
 public void TestIMAPServerLiteral()
 {
     var sim = new IMAPClientSimulator();
      sim.Connect();
      CustomAssert.IsTrue(sim.Send("a01 login " + GetUsername() + " {4}").StartsWith("+"));
      sim.Send(GetPassword());
      EnsureNoPassword();
 }
        public void IfStartTlsNotEnabledStartTlsShouldNotBeShownInEhloResponse()
        {
            var imapSimulator = new IMAPClientSimulator(false, 143);
             imapSimulator.Connect();
             var data = imapSimulator.GetCapabilities();

             CustomAssert.IsFalse(data.Contains("STARTTLS"));
        }
        public void IfStlsRequiredLogonShouldFailIfNoStls()
        {
            var imapSimulator = new IMAPClientSimulator(false, 14303);
             imapSimulator.Connect();

             string errorMessage;
             CustomAssert.IsFalse(imapSimulator.Logon(_account.Address, "test", out errorMessage));

             CustomAssert.IsTrue(errorMessage.Contains("A01 BAD STARTTLS is required."));
        }
        public void IfStlsRequiredLogonShouldSucceedIfStls()
        {
            var imapSimulator = new IMAPClientSimulator(false, 14303);
             imapSimulator.Connect();
             imapSimulator.SendSingleCommand("A01 STARTTLS");
             imapSimulator.Handshake();

             // command is sent over TLS.
             imapSimulator.GetCapabilities();

             CustomAssert.IsTrue(imapSimulator.Logon(_account.Address, "test"));
        }
Example #11
0
        public void TestCreateFolderWithHash()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             oSimulator.Connect();
             oSimulator.Logon(oAccount.Address, "test");
             CustomAssert.IsFalse(oSimulator.CreateFolder("#Test"));
             CustomAssert.IsTrue(oSimulator.CreateFolder("Test.#Testar"));
             oSimulator.Disconnect();
        }
Example #12
0
        public void TestAppendBadLiteral()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.LogonWithLiteral("*****@*****.**", "test");
             oSimulator.SendSingleCommandWithLiteral("A01 APPEND INBOX {TEST}", "ABCD");
             CustomAssert.AreEqual(0, oSimulator.GetMessageCount("INBOX"));
             oSimulator.Disconnect();
        }
        public void IfStlsOptionalButSslRequiredByIpRangeForAuthThenAuthShouldFail()
        {
            var range = SingletonProvider<TestSetup>.Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer");
             range.RequireSSLTLSForAuth = true;
             range.Save();

             var imapSimulator = new IMAPClientSimulator(false, 14302);
             imapSimulator.Connect();

             string errorMessage;
             CustomAssert.IsFalse(imapSimulator.Logon(_account.Address, "test", out errorMessage));
             CustomAssert.IsTrue(errorMessage.Contains("A01 BAD A SSL/TLS-connection is required for authentication."));
        }
Example #14
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();
        }
Example #15
0
        public void TestCreateDeepFolder()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             oSimulator.Connect();
             oSimulator.LogonWithLiteral(oAccount.Address, "test");
             string result =
            oSimulator.Send("A01 CREATE 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26");
             CustomAssert.IsTrue(result.Contains("A01 NO"));

             oSimulator.Disconnect();
        }
        public void TestLongCommand()
        {
            Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();
             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon(account.Address, "test");

             var sb = new StringBuilder();

             for (int i = 0; i < 240000; i++)
             {
            sb.Append("A");
             }

             string result = oSimulator.Send("A01 " + sb);
             CustomAssert.IsTrue(result.Length == 0 || result.StartsWith("A01"));
        }
        public void TestHierarchyDelimiterListResponse()
        {
            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\""));
             oSimulator.Disconnect();
        }
Example #18
0
        public void ConfirmFileAddedToCorrectPublicFolder()
        {
            TestSetup testSetup = SingletonProvider<TestSetup>.Instance;
             Account oAccount = testSetup.AddAccount(_domain, "*****@*****.**", "test");
             var oSimulator = new IMAPClientSimulator();

             // Confirm that the public folder is empty before we start our test.
             string publicDir = testSetup.GetPublicDirectory();
             testSetup.AssertFilesInDirectory(publicDir, 0);

             IMAPFolders folders = _application.Settings.PublicFolders;
             IMAPFolder folder = folders.Add("Share");
             folder.Save();

             // Give everyone access to the folder.
             IMAPFolderPermission permission = folder.Permissions.Add();
             permission.PermissionType = eACLPermissionType.ePermissionTypeAnyone;
             permission.set_Permission(eACLPermission.ePermissionLookup, true);
             permission.set_Permission(eACLPermission.ePermissionRead, true);
             permission.set_Permission(eACLPermission.ePermissionInsert, true);
             permission.Save();

             // Add the message to the public folder.
             oSimulator.Connect();
             oSimulator.LogonWithLiteral("*****@*****.**", "test");
             oSimulator.SendSingleCommandWithLiteral("A01 APPEND #Public.Share {4}", "ABCD");

             // Confirm that the message exists in the public folder and not in the inbox.
             CustomAssert.AreEqual(1, oSimulator.GetMessageCount("#Public.Share"));
             CustomAssert.AreEqual(0, oSimulator.GetMessageCount("INBOX"));
             oSimulator.Disconnect();

             // The public directory should now contain the message.
             testSetup.AssertFilesInDirectory(publicDir, 1);

             // There users directory should still be empty.
             testSetup.AssertFilesInUserDirectory(oAccount, 0);
        }
Example #19
0
        public void TestAppendFolderNameInOctet()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon("*****@*****.**", "test");
             oSimulator.SelectFolder("INBOX");
             oSimulator.CreateFolder("MONK");
             oSimulator.SendRaw("A01 APPEND {4}\r\n");
             string result = oSimulator.Receive();
             CustomAssert.IsTrue(result.StartsWith("+ Ready for additional command text."));

             oSimulator.SendRaw("MONK (\\Seen) \"20-Jan-2009 12:59:50 +0100\" {5}\r\n");
             result = oSimulator.Receive();
             CustomAssert.IsTrue(result.StartsWith("+ Ready for literal data"));

             oSimulator.SendRaw("WOOOT\r\n");
             result = oSimulator.Receive();

             CustomAssert.AreEqual("A01 OK APPEND completed\r\n", result);
        }
Example #20
0
        public void TestDateSortOrderNonexistantDate()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");
             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.LogonWithLiteral("*****@*****.**", "test");
             CustomAssert.IsTrue(oSimulator.SelectFolder("Inbox"));

             string response = oSimulator.SendSingleCommandWithLiteral(
            "A04 APPEND INBOX \"22-Feb-2008 22:00:00 +0200\" {4}", "ABCD");
             CustomAssert.IsTrue(response.Contains("* 1 EXISTS"), response);

             response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 21:00:00 +0200\" {4}",
                                                            "ABCD");
             CustomAssert.IsTrue(response.Contains("* 2 EXISTS"), response);

             response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"22-Feb-2008 20:00:00 +0200\" {4}",
                                                            "ABCD");
             CustomAssert.IsTrue(response.Contains("* 3 EXISTS"), response);

             response = oSimulator.SendSingleCommandWithLiteral("A04 APPEND INBOX \"23-Feb-2008 01:30:23 +0200\" {4}",
                                                            "ABCD");
             CustomAssert.IsTrue(response.Contains("* 4 EXISTS"), response);

             /*
              * RFC 5256 "2.2. Sent Date" chapter. If the sent date cannot be determined (a Date: header is missing or cannot be parsed),
              * the INTERNALDATE for that message is used as the sent date.
              */

             string sortDateResponse = oSimulator.SendSingleCommand("A10 SORT (DATE) US-ASCII ALL");
             string sortArivalDateResponse = oSimulator.SendSingleCommand("A10 SORT (ARRIVAL) US-ASCII ALL");

             CustomAssert.IsTrue(sortArivalDateResponse.Contains(" 3 2 1 4"));
             CustomAssert.AreEqual(sortDateResponse, sortArivalDateResponse);
             oSimulator.Disconnect();
        }
Example #21
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 #22
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 #23
0
        public void TestCreateLongFolder()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             oSimulator.Connect();
             oSimulator.LogonWithLiteral(oAccount.Address, "test");

             string folderName = "";
             for (int i = 0; i < 255; i++)
            folderName = folderName + "A";

             string result = oSimulator.Send("A01 CREATE " + folderName);
             CustomAssert.IsTrue(result.Contains("A01 OK"));
             CustomAssert.IsTrue(oSimulator.SelectFolder(folderName));

             folderName = "";
             for (int i = 0; i < 256; i++)
            folderName = folderName + "A";

             result = oSimulator.Send("A01 CREATE " + folderName);
             CustomAssert.IsTrue(result.Contains("A01 NO"));
             CustomAssert.IsFalse(oSimulator.SelectFolder(folderName));

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

             var oSimulator = new IMAPClientSimulator();

             oSimulator.Connect();
             oSimulator.LogonWithLiteral(oAccount.Address, "test");
             CustomAssert.IsTrue(oSimulator.CreateFolder("1.2.3.4.5"));
             CustomAssert.IsTrue(oSimulator.CreateFolder("A"));
             CustomAssert.IsTrue(oSimulator.RenameFolder("1", "A.1"));
             CustomAssert.IsTrue(oSimulator.SelectFolder("A.1"));
             CustomAssert.IsTrue(oSimulator.SelectFolder("A.1.2.3.4.5"));
             CustomAssert.IsTrue(oSimulator.RenameFolder("A.1", "1"));
             CustomAssert.IsFalse(oSimulator.SelectFolder("A.1"));
             CustomAssert.IsFalse(oSimulator.SelectFolder("A.1.2.3.4.5"));
             CustomAssert.IsTrue(oSimulator.SelectFolder("1"));
             CustomAssert.IsTrue(oSimulator.SelectFolder("1.2.3.4.5"));

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

             var oSimulator = new IMAPClientSimulator();

             oSimulator.Connect();
             oSimulator.LogonWithLiteral(oAccount.Address, "test");
             CustomAssert.IsTrue(oSimulator.CreateFolder("1.2.3"));
             CustomAssert.IsTrue(oSimulator.CreateFolder("1.2.3.4"));

             // Should fail because name taken.
             CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3.4", "1.2.3"));
             CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3.4", "1.2"));
             CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3.4", "1"));

             // Should fail because invalid destination name.
             CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3.4", ""));

             // Should fail because destination name taken.
             CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3", "1.2.3.4"));
             CustomAssert.IsFalse(oSimulator.RenameFolder("1.2", "1.2.3.4"));
             CustomAssert.IsFalse(oSimulator.RenameFolder("1", "1.2.3.4"));

             CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3", "1.2"));
             CustomAssert.IsFalse(oSimulator.RenameFolder("1.2.3", "1"));

             CustomAssert.IsTrue(oSimulator.RenameFolder("1.2.3", "A"));

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

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.LogonWithLiteral(oAccount.Address, "test");
             oSimulator.Send("A01 CREATE A\r\n");
             CustomAssert.IsFalse(oSimulator.RenameFolder("A", "INBOX"));
             CustomAssert.IsFalse(oSimulator.RenameFolder("INBOX", "B"));

             oSimulator.Disconnect();
        }
Example #28
0
        public void TestRenameLongFolder()
        {
            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("1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25"));
             CustomAssert.IsTrue(oSimulator.CreateFolder("A"));

             CustomAssert.IsFalse(oSimulator.RenameFolder("1", "A.1"));
             CustomAssert.IsTrue(oSimulator.RenameFolder("1.2.3", "A.1"));
             CustomAssert.IsTrue(oSimulator.SelectFolder("A.1.4"));

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

             string folderName = "Folder1";

             var oSimulator = new IMAPClientSimulator();
             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon(oAccount.Address, "test");
             CustomAssert.IsTrue(oSimulator.CreateFolder(folderName));
             CustomAssert.IsFalse(oSimulator.LSUB().Contains(folderName));
             CustomAssert.IsTrue(oSimulator.Subscribe(folderName));
             CustomAssert.IsTrue(oSimulator.LSUB().Contains(folderName));

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

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.LogonWithLiteral(oAccount.Address, "test");
             string result = oSimulator.Send("A01 CREATE A");

             result = oSimulator.Send("A02 RENAME A B C");
             CustomAssert.IsTrue(result.Contains("A02 BAD"));

             oSimulator.Disconnect();
        }