public void TestFolderUpdateNotification() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SmtpClientSimulator.StaticSend(account.Address, account.Address, "TestSubject", "TestBody"); ImapClientSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1); var simulator1 = new ImapClientSimulator(); var simulator2 = new ImapClientSimulator(); 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(); }
public void TestFolderExpungeNotification() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SmtpClientSimulator.StaticSend(account.Address, account.Address, "TestSubject", "TestBody"); ImapClientSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1); var simulator1 = new ImapClientSimulator(); var simulator2 = new ImapClientSimulator(); 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(); }
public void TestDeleteIMAPFolderNotifications() { _settings.IMAPIdleEnabled = true; Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var imapClientSimulator = new ImapClientSimulator(); var oSimulator2 = new ImapClientSimulator(); imapClientSimulator.ConnectAndLogon(oAccount.Address, "test"); oSimulator2.ConnectAndLogon(oAccount.Address, "test"); imapClientSimulator.SelectFolder("Inbox"); oSimulator2.CreateFolder("Mailbox"); oSimulator2.DeleteFolder("Mailbox"); SmtpClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test"); Pop3ClientSimulator.AssertMessageCount(oAccount.Address, "test", 1); string noopResponse = imapClientSimulator.NOOP() + imapClientSimulator.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); }
public void TestExpungeNotification() { _settings.IMAPIdleEnabled = true; Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); for (int i = 0; i < 5; i++) SmtpClientSimulator.StaticSend("*****@*****.**", oAccount.Address, "Test", "test"); Pop3ClientSimulator.AssertMessageCount(oAccount.Address, "test", 5); var imapClientSimulator = new ImapClientSimulator(); var oSimulator2 = new ImapClientSimulator(); imapClientSimulator.ConnectAndLogon(oAccount.Address, "test"); oSimulator2.ConnectAndLogon(oAccount.Address, "test"); imapClientSimulator.SelectFolder("Inbox"); oSimulator2.SelectFolder("Inbox"); for (int i = 1; i <= 5; i++) { Assert.IsTrue(imapClientSimulator.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 = imapClientSimulator.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); }
public void TestPublicFolderUpdateNotification() { IMAPFolders folders = _application.Settings.PublicFolders; IMAPFolder folder = folders.Add("Share"); folder.Save(); 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.ePermissionWriteOthers, true); permission.set_Permission(eACLPermission.ePermissionWriteSeen, true); permission.set_Permission(eACLPermission.ePermissionWriteDeleted, true); permission.set_Permission(eACLPermission.ePermissionInsert, true); permission.Save(); Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); SmtpClientSimulator.StaticSend(account.Address, account.Address, "TestSubject", "TestBody"); ImapClientSimulator.AssertMessageCount(account.Address, "test", "Inbox", 1); var simulator1 = new ImapClientSimulator(); var simulator2 = new ImapClientSimulator(); 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(); }