Ejemplo n.º 1
0
        public void TestFolderUpdateNotification()
        {
            hMailServer.Account account = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test");

              SMTPClientSimulator.StaticSend(account.Address, account.Address, "TestSubject", "TestBody");

              IMAPSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1);

              IMAPSimulator simulator1 = new IMAPSimulator();
              IMAPSimulator simulator2 = new IMAPSimulator();

              simulator1.ConnectAndLogon(account.Address, "test");
              simulator2.ConnectAndLogon(account.Address, "test");

              simulator1.SelectFolder("Inbox");
              simulator2.SelectFolder("Inbox");

              string result = simulator2.NOOP() + simulator2.NOOP();
              Assert.IsFalse(result.Contains("Deleted"));
              Assert.IsFalse(result.Contains("Seen"));

              simulator1.SetDeletedFlag(1);
              simulator1.SetSeenFlag(1);

              result = simulator2.NOOP() + simulator2.NOOP();
              Assert.IsTrue(result.Contains("Deleted"));
              Assert.IsTrue(result.Contains("Seen"));

              simulator1.Disconnect();
              simulator2.Disconnect();
        }
Ejemplo n.º 2
0
        public void TestFolderExpungeNotification()
        {
            hMailServer.Account account = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test");

              SMTPClientSimulator.StaticSend(account.Address, account.Address, "TestSubject", "TestBody");
              IMAPSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1);

              IMAPSimulator simulator1 = new IMAPSimulator();
              IMAPSimulator simulator2 = new IMAPSimulator();

              simulator1.ConnectAndLogon(account.Address, "test");
              simulator2.ConnectAndLogon(account.Address, "test");

              simulator1.SelectFolder("Inbox");
              simulator2.SelectFolder("Inbox");

              string result = simulator2.NOOP();
              Assert.IsFalse(result.Contains("Deleted"));
              Assert.IsFalse(result.Contains("Seen"));

              simulator1.SetDeletedFlag(1);
              simulator1.Expunge();

              // the result may (should) come after the first NOOP response stream so do noop twice.
              result = simulator2.NOOP() + simulator2.NOOP();
              Assert.IsTrue(result.Contains("* 1 EXPUNGE"));

              simulator1.Disconnect();
              simulator2.Disconnect();
        }
Ejemplo n.º 3
0
        public void TestDeleteIMAPFolderNotifications()
        {
            _settings.IMAPIdleEnabled = true;

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

              IMAPSimulator oSimulator1 = new IMAPSimulator();
              IMAPSimulator oSimulator2 = new IMAPSimulator();
              oSimulator1.ConnectAndLogon(oAccount.Address, "test");
              oSimulator2.ConnectAndLogon(oAccount.Address, "test");

              oSimulator1.SelectFolder("Inbox");
              oSimulator2.CreateFolder("Mailbox");
              oSimulator2.DeleteFolder("Mailbox");

              SMTPClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test");

              POP3Simulator.AssertMessageCount(oAccount.Address, "test", 1);

              string noopResponse = oSimulator1.NOOP() + oSimulator1.NOOP();

              // confirm that the client is notified about this message even though another
              // folder has been dropped by another client.
              Assert.IsTrue(noopResponse.Contains(@"* 1 EXISTS"), noopResponse);
        }
Ejemplo n.º 4
0
        public void TestExpungeNotification()
        {
            _settings.IMAPIdleEnabled = true;

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

              for (int i = 0; i < 5; i++ )
              SMTPClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test");

              POP3Simulator.AssertMessageCount(oAccount.Address, "test", 5);

              IMAPSimulator oSimulator1 = new IMAPSimulator();
              IMAPSimulator oSimulator2 = new IMAPSimulator();
              oSimulator1.ConnectAndLogon(oAccount.Address, "test");
              oSimulator2.ConnectAndLogon(oAccount.Address, "test");

              oSimulator1.SelectFolder("Inbox");
              oSimulator2.SelectFolder("Inbox");

              for (int i = 1; i <= 5; i++)
              {
             Assert.IsTrue(oSimulator1.SetFlagOnMessage(i, true, @"\Deleted"));
              }

              string noopResponse = oSimulator2.NOOP()+ oSimulator2.NOOP();

              Assert.IsTrue(noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)") &&
                        noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)") &&
                        noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)") &&
                        noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)") &&
                        noopResponse.Contains(@"* 1 FETCH (FLAGS (\Deleted)"), noopResponse);

              bool result = oSimulator1.Expunge();

              string expungeResult = oSimulator2.NOOP() + oSimulator2.NOOP();

              Assert.IsTrue(expungeResult.Contains("* 1 EXPUNGE\r\n* 1 EXPUNGE\r\n* 1 EXPUNGE\r\n* 1 EXPUNGE\r\n* 1 EXPUNGE"), expungeResult);
        }
Ejemplo n.º 5
0
        public void TestPublicFolderUpdateNotification()
        {
            hMailServer.IMAPFolders folders = _application.Settings.PublicFolders;
             hMailServer.IMAPFolder folder = folders.Add("Share");
             folder.Save();

             hMailServer.IMAPFolderPermission permission = folder.Permissions.Add();
             permission.PermissionType = hMailServer.eACLPermissionType.ePermissionTypeAnyone;
             permission.set_Permission(hMailServer.eACLPermission.ePermissionLookup, true);
             permission.set_Permission(hMailServer.eACLPermission.ePermissionRead, true);
             permission.set_Permission(hMailServer.eACLPermission.ePermissionWriteOthers, true);
             permission.set_Permission(hMailServer.eACLPermission.ePermissionWriteSeen, true);
             permission.set_Permission(hMailServer.eACLPermission.ePermissionWriteDeleted, true);
             permission.set_Permission(hMailServer.eACLPermission.ePermissionInsert, true);
             permission.Save();

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

             SMTPClientSimulator.StaticSend(account.Address, account.Address, "TestSubject", "TestBody");
             IMAPSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1);

             IMAPSimulator simulator1 = new IMAPSimulator();
             IMAPSimulator simulator2 = new IMAPSimulator();

             simulator1.ConnectAndLogon(account.Address, "test");
             simulator2.ConnectAndLogon(account.Address, "test");

             simulator1.SelectFolder("Inbox");
             simulator2.SelectFolder("Inbox");

             Assert.IsTrue(simulator1.Copy(1, "#Public.Share"));

             simulator1.SelectFolder("#Public.Share");
             simulator2.SelectFolder("#Public.Share");

             string result = simulator2.NOOP() + simulator2.NOOP();
             Assert.IsFalse(result.Contains("Deleted"));
             Assert.IsFalse(result.Contains("Seen"));

             simulator1.SetDeletedFlag(1);
             simulator1.SetSeenFlag(1);

             result = simulator2.NOOP() + simulator2.NOOP();
             Assert.IsTrue(result.Contains("Deleted"));
             Assert.IsTrue(result.Contains("Seen"));

             simulator1.Disconnect();
             simulator2.Disconnect();
        }