Пример #1
0
        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();
        }
Пример #2
0
 public void TestIMAPServerLiteral()
 {
     var sim = new IMAPClientSimulator();
      sim.Connect();
      CustomAssert.IsTrue(sim.Send("a01 login " + GetUsername() + " {4}").StartsWith("+"));
      sim.Send(GetPassword());
      EnsureNoPassword();
 }
Пример #3
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();
        }
Пример #4
0
        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"));
        }
Пример #5
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();
        }
Пример #6
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();
        }
Пример #7
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();
        }
Пример #8
0
        public void TestCreateUnnamedSubFolder()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var simulator = new IMAPClientSimulator();

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

             simulator.Disconnect();
        }
Пример #9
0
        public void TestSearchORWithLiterals3()
        {
            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("*****@*****.**", "*****@*****.**", "Test1", "This is a test of IMAP Search");
             IMAPClientSimulator.AssertMessageCount("*****@*****.**", "test", "INBOX", 1);
             oSMTP.Send("*****@*****.**", "*****@*****.**", "Test2", "This is a test of IMAP Search");
             IMAPClientSimulator.AssertMessageCount("*****@*****.**", "test", "INBOX", 2);

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon("*****@*****.**", "test");

             CustomAssert.IsTrue(oSimulator.SelectFolder("INBOX"));

             string result = oSimulator.Send("A01 SEARCH ALL OR (HEADER SUBJECT {5}");
             result = oSimulator.Send("Test5) (HEADER SUBJECT {5}");
             result = oSimulator.Send("Test2)");
             CustomAssert.IsTrue(result.StartsWith("* SEARCH 2"));
        }
Пример #10
0
        public void TestHierarchyDelimiterNamespaceResponse()
        {
            Application application = SingletonProvider<TestSetup>.Instance.GetApp();
             Settings settings = _settings;
             settings.IMAPHierarchyDelimiter = "\\";
             string publicFolderName = _settings.IMAPPublicFolderName;

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

             var oSimulator = new IMAPClientSimulator();
             oSimulator.ConnectAndLogon(account.Address, "test");
             string result = oSimulator.Send("A01 NAMESPACE");
             string correctNamespaceSetting = "* NAMESPACE ((\"\" \"\\\\\")) NIL ((\"" + publicFolderName +
                                          "\" \"\\\\\"))";
             CustomAssert.IsTrue(result.Contains(correctNamespaceSetting), result);
             oSimulator.Disconnect();

             settings.IMAPHierarchyDelimiter = ".";

             oSimulator = new IMAPClientSimulator();
             oSimulator.ConnectAndLogon(account.Address, "test");

             result = oSimulator.Send("A01 NAMESPACE");
             correctNamespaceSetting = "* NAMESPACE ((\"\" \".\")) NIL ((\"" + publicFolderName + "\" \".\"))";
             CustomAssert.IsTrue(result.Contains(correctNamespaceSetting), result);
             oSimulator.Disconnect();

             settings.IMAPHierarchyDelimiter = "/";

             oSimulator = new IMAPClientSimulator();
             oSimulator.ConnectAndLogon(account.Address, "test");

             result = oSimulator.Send("A01 NAMESPACE");
             correctNamespaceSetting = "* NAMESPACE ((\"\" \"/\")) NIL ((\"" + publicFolderName + "\" \"/\"))";
             CustomAssert.IsTrue(result.Contains(correctNamespaceSetting), result);
             oSimulator.Disconnect();
        }
Пример #11
0
        public void TestFolderNamesWithUnicodeChars()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.LogonWithLiteral("*****@*****.**", "test");
             oSimulator.Send("A50 CREATE &AMQAxADEAMQAxADEAMQAxADEAMQAxADEAMQ-\r\n");
             oSimulator.Disconnect();

             string s = oAccount.IMAPFolders[1].Name;
             CustomAssert.AreEqual("ÄÄÄÄÄÄÄÄÄÄÄÄÄ", s);
        }
Пример #12
0
        public void TestOutOfBounds()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon("*****@*****.**", "test");

             string s = oSimulator.Send("A01 RENAME TEST");
             if (s.StartsWith("A01 BAD") == false)
            throw new Exception("ERROR - Out of bounds test failed");
        }
Пример #13
0
        public void TestNamespace()
        {
            string imapFolderName = _settings.IMAPPublicFolderName;

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

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon("*****@*****.**", "test");
             string result = oSimulator.Send("A01 NAMESPACE");

             string correctNamespaceSetting = "* NAMESPACE ((\"\" \".\")) NIL ((\"" + imapFolderName + "\" \".\"))";

             if (!result.Contains(correctNamespaceSetting))
             {
            CustomAssert.Fail("Namespace failed");
             }
        }
Пример #14
0
        public void TestLiterals()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon("*****@*****.**", "test");
             string result = oSimulator.Send("A01 CREATE {4}");
             result = oSimulator.Send("HEJS");

             oSimulator.Disconnect();
        }
Пример #15
0
        public void TestList()
        {
            Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test");

             var oSimulator = new IMAPClientSimulator();

             string sWelcomeMessage = oSimulator.Connect();
             oSimulator.Logon("*****@*****.**", "test");
             string result = oSimulator.Send("A01 LIST \"\" \"*\"\r\n").Substring(0, 1);
             CustomAssert.AreEqual("*", result);
        }