Search in sources :

Example 6 with FolderActionSelector

use of com.zimbra.soap.mail.type.FolderActionSelector in project zm-mailbox by Zimbra.

the class TestShareNotifications method testContactShareNotification.

public void testContactShareNotification() throws Exception {
    Account senderAccount = TestUtil.createAccount(SENDER_NAME);
    Account recipientAccount = TestUtil.createAccount(RECIPIENT_NAME);
    ZMailbox mbox = TestUtil.getZMailbox(SENDER_NAME);
    // check that there are no share notifications in the recipient's mailbox
    ZMailbox recipientMbox = TestUtil.getZMailbox(RECIPIENT_NAME);
    List<ShareNotificationInfo> shares = waitForShareNotifications(recipientMbox, 0, 100);
    assertEquals("Recipient should have exactly 0 share notification", 0, shares.size());
    // create and share the first calendar
    ZFolder newContactsFolder = TestUtil.createFolder(mbox, CAL_NAME1, ZFolder.View.contact);
    String contactsFolderId = newContactsFolder.getId();
    FolderActionSelector action = new FolderActionSelector(contactsFolderId, "grant");
    ActionGrantSelector grant = new ActionGrantSelector("r", "usr");
    grant.setDisplayName(recipientAccount.getName());
    grant.setPassword("");
    action.setGrant(grant);
    FolderActionRequest folderActionReq = new FolderActionRequest(action);
    FolderActionResponse folderActionResp = mbox.invokeJaxb(folderActionReq);
    assertNotNull("FolderActionResponse is null", folderActionResp);
    SendShareNotificationRequest shareNotificationReq = new SendShareNotificationRequest();
    shareNotificationReq.setItem(new com.zimbra.soap.type.Id(contactsFolderId));
    shareNotificationReq.addEmailAddress(new EmailAddrInfo(recipientAccount.getMail()));
    SendShareNotificationResponse resp = mbox.invokeJaxb(shareNotificationReq);
    assertNotNull("ShareNotificationResponse is null", resp);
    shares = waitForShareNotifications(recipientMbox, 1, 1000);
    assertEquals("should have exactly one share notification", 1, shares.size());
    assertNotNull("share grantor is null", shares.get(0).getGrantor());
    assertTrue("share grantor is not " + senderAccount.getMail(), senderAccount.getMail().equalsIgnoreCase(shares.get(0).getGrantor().getEmail()));
}
Also used : Account(com.zimbra.cs.account.Account) FolderActionResponse(com.zimbra.soap.mail.message.FolderActionResponse) SendShareNotificationResponse(com.zimbra.soap.mail.message.SendShareNotificationResponse) ActionGrantSelector(com.zimbra.soap.mail.type.ActionGrantSelector) FolderActionSelector(com.zimbra.soap.mail.type.FolderActionSelector) ZMailbox(com.zimbra.client.ZMailbox) ShareNotificationInfo(com.zimbra.soap.mail.type.ShareNotificationInfo) FolderActionRequest(com.zimbra.soap.mail.message.FolderActionRequest) EmailAddrInfo(com.zimbra.soap.mail.type.EmailAddrInfo) ZFolder(com.zimbra.client.ZFolder) SendShareNotificationRequest(com.zimbra.soap.mail.message.SendShareNotificationRequest)

Example 7 with FolderActionSelector

use of com.zimbra.soap.mail.type.FolderActionSelector in project zm-mailbox by Zimbra.

the class TestShareNotifications method testContactAndCalendarShareNotifications.

public void testContactAndCalendarShareNotifications() throws Exception {
    Account senderAccount = TestUtil.createAccount(SENDER_NAME);
    Account recipientAccount = TestUtil.createAccount(RECIPIENT_NAME);
    ZMailbox mbox = TestUtil.getZMailbox(SENDER_NAME);
    // check that there are no share notifications in the recipient's mailbox
    ZMailbox recipientMbox = TestUtil.getZMailbox(RECIPIENT_NAME);
    List<ShareNotificationInfo> shares = waitForShareNotifications(recipientMbox, 0, 100);
    assertEquals("Recipient should have exactly 0 share notification", 0, shares.size());
    // create and share the first calendar
    ZFolder newCal = TestUtil.createFolder(mbox, CAL_NAME1, ZFolder.View.appointment);
    String calendarId = newCal.getId();
    FolderActionSelector action = new FolderActionSelector(calendarId, "grant");
    ActionGrantSelector grant = new ActionGrantSelector("r", "usr");
    grant.setDisplayName(recipientAccount.getName());
    grant.setPassword("");
    action.setGrant(grant);
    FolderActionRequest folderActionReq = new FolderActionRequest(action);
    FolderActionResponse folderActionResp = mbox.invokeJaxb(folderActionReq);
    assertNotNull("FolderActionResponse is null", folderActionResp);
    SendShareNotificationRequest shareNotificationReq = new SendShareNotificationRequest();
    shareNotificationReq.setItem(new com.zimbra.soap.type.Id(calendarId));
    shareNotificationReq.addEmailAddress(new EmailAddrInfo(recipientAccount.getMail()));
    SendShareNotificationResponse resp = mbox.invokeJaxb(shareNotificationReq);
    assertNotNull("ShareNotificationResponse is null", resp);
    // create and share the second calendar
    ZFolder newContactsFolder = TestUtil.createFolder(mbox, CONTACTS_NAME1, ZFolder.View.contact);
    String contactsFolderId = newContactsFolder.getId();
    action = new FolderActionSelector(contactsFolderId, "grant");
    grant = new ActionGrantSelector("r", "usr");
    grant.setDisplayName(recipientAccount.getName());
    grant.setPassword("");
    action.setGrant(grant);
    folderActionReq = new FolderActionRequest(action);
    folderActionResp = mbox.invokeJaxb(folderActionReq);
    assertNotNull("FolderActionResponse is null", folderActionResp);
    shareNotificationReq = new SendShareNotificationRequest();
    shareNotificationReq.setItem(new com.zimbra.soap.type.Id(contactsFolderId));
    shareNotificationReq.addEmailAddress(new EmailAddrInfo(recipientAccount.getMail()));
    resp = mbox.invokeJaxb(shareNotificationReq);
    assertNotNull("ShareNotificationResponse is null", resp);
    shares = waitForShareNotifications(recipientMbox, 2, 1000);
    assertEquals("should have exactly two share notification", 2, shares.size());
    assertNotNull("share grantor is null", shares.get(0).getGrantor());
    assertTrue("share grantor is not " + senderAccount.getMail(), senderAccount.getMail().equalsIgnoreCase(shares.get(0).getGrantor().getEmail()));
}
Also used : Account(com.zimbra.cs.account.Account) FolderActionResponse(com.zimbra.soap.mail.message.FolderActionResponse) SendShareNotificationResponse(com.zimbra.soap.mail.message.SendShareNotificationResponse) ActionGrantSelector(com.zimbra.soap.mail.type.ActionGrantSelector) FolderActionSelector(com.zimbra.soap.mail.type.FolderActionSelector) ZMailbox(com.zimbra.client.ZMailbox) ShareNotificationInfo(com.zimbra.soap.mail.type.ShareNotificationInfo) FolderActionRequest(com.zimbra.soap.mail.message.FolderActionRequest) EmailAddrInfo(com.zimbra.soap.mail.type.EmailAddrInfo) ZFolder(com.zimbra.client.ZFolder) SendShareNotificationRequest(com.zimbra.soap.mail.message.SendShareNotificationRequest)

Example 8 with FolderActionSelector

use of com.zimbra.soap.mail.type.FolderActionSelector in project zm-mailbox by Zimbra.

the class TestInvite method testBug86864DelegateInboxInviteLooksLikeInvite.

public void testBug86864DelegateInboxInviteLooksLikeInvite() throws Exception {
    TestUtil.createAccount(ORGANIZER);
    Account attendee = TestUtil.createAccount(ATTENDEE);
    Account delegate = TestUtil.createAccount(DELEGATE);
    ZMailbox mboxOrganizer = TestUtil.getZMailbox(ORGANIZER);
    ZMailbox mboxAttendee = TestUtil.getZMailbox(ATTENDEE);
    ZMailbox mboxDelegate = TestUtil.getZMailbox(DELEGATE);
    String subject = NAME_PREFIX + " for testing treatment at delegate inbox";
    Date startDate = new Date(System.currentTimeMillis() + Constants.MILLIS_PER_DAY);
    Date endDate = new Date(startDate.getTime() + Constants.MILLIS_PER_HOUR);
    String calendarId = Integer.valueOf(Mailbox.ID_FOLDER_CALENDAR).toString();
    FolderActionSelector action = new FolderActionSelector(calendarId, /* id */
    "grant");
    ActionGrantSelector grant = new ActionGrantSelector("rwidxa", /* perm */
    "usr");
    grant.setDisplayName(delegate.getName());
    grant.setPassword("");
    action.setGrant(grant);
    FolderActionRequest folderActionReq = new FolderActionRequest(action);
    FolderActionResponse folderActionResp = mboxAttendee.invokeJaxb(folderActionReq);
    assertNotNull("null FolderAction Response used to share folder", folderActionResp);
    ModifyPrefsRequest modPrefsReq = new ModifyPrefsRequest();
    Pref fwdInvitesPref = Pref.createPrefWithNameAndValue(ZAttrProvisioning.A_zimbraPrefCalendarForwardInvitesTo, delegate.getName());
    modPrefsReq.addPref(fwdInvitesPref);
    Pref noAutoAddPref = Pref.createPrefWithNameAndValue(ZAttrProvisioning.A_zimbraPrefCalendarAutoAddInvites, Boolean.FALSE.toString().toUpperCase());
    modPrefsReq.addPref(noAutoAddPref);
    ModifyPrefsResponse modPrefsResp = mboxAttendee.invokeJaxb(modPrefsReq);
    assertNotNull("null ModifyPrefs Response for forwarding calendar invites/no auto-add", modPrefsResp);
    NewMountpointSpec mpSpec = new NewMountpointSpec("Shared Calendar");
    mpSpec.setFlags("#");
    mpSpec.setRemoteId(Mailbox.ID_FOLDER_CALENDAR);
    mpSpec.setColor((byte) 4);
    mpSpec.setOwnerId(attendee.getId());
    mpSpec.setFolderId(Integer.valueOf(Mailbox.ID_FOLDER_USER_ROOT).toString());
    mpSpec.setDefaultView(MailItem.Type.APPOINTMENT.toString());
    CreateMountpointRequest createMpReq = new CreateMountpointRequest(mpSpec);
    CreateMountpointResponse createMpResp = mboxDelegate.invokeJaxb(createMpReq);
    assertNotNull("null ModifyPrefs Response for forwarding calendar invites", createMpResp);
    TestUtil.createAppointment(mboxOrganizer, subject, attendee.getName(), startDate, endDate);
    ZMessage inviteMsg = TestUtil.waitForMessage(mboxDelegate, "in:inbox " + subject);
    assertNotNull("null inviteMsg in delegate inbox", inviteMsg);
    MsgSpec msgSpec = new MsgSpec(inviteMsg.getId());
    msgSpec.setWantHtml(true);
    msgSpec.setNeedCanExpand(true);
    msgSpec.setMaxInlinedLength(250000);
    GetMsgRequest getMsgReq = new GetMsgRequest(msgSpec);
    GetMsgResponse getMsgResp = mboxDelegate.invokeJaxb(getMsgReq);
    assertNotNull("null GetMsgResponse in delegate inbox", getMsgResp);
    MsgWithGroupInfo msg = getMsgResp.getMsg();
    assertNotNull("null message in GetMsgResponse in delegate inbox", msg);
    InviteWithGroupInfo invite = msg.getInvite();
    assertNotNull("null invite in message in GetMsgResponse in delegate inbox regression to Bug 86864?", invite);
}
Also used : ZMessage(com.zimbra.client.ZMessage) Account(com.zimbra.cs.account.Account) CreateMountpointRequest(com.zimbra.soap.mail.message.CreateMountpointRequest) Pref(com.zimbra.soap.account.type.Pref) FolderActionResponse(com.zimbra.soap.mail.message.FolderActionResponse) GetMsgRequest(com.zimbra.soap.mail.message.GetMsgRequest) InviteWithGroupInfo(com.zimbra.soap.mail.type.InviteWithGroupInfo) ModifyPrefsRequest(com.zimbra.soap.account.message.ModifyPrefsRequest) MsgSpec(com.zimbra.soap.mail.type.MsgSpec) Date(java.util.Date) ActionGrantSelector(com.zimbra.soap.mail.type.ActionGrantSelector) FolderActionSelector(com.zimbra.soap.mail.type.FolderActionSelector) CreateMountpointResponse(com.zimbra.soap.mail.message.CreateMountpointResponse) ZMailbox(com.zimbra.client.ZMailbox) FolderActionRequest(com.zimbra.soap.mail.message.FolderActionRequest) MsgWithGroupInfo(com.zimbra.soap.mail.type.MsgWithGroupInfo) GetMsgResponse(com.zimbra.soap.mail.message.GetMsgResponse) ModifyPrefsResponse(com.zimbra.soap.account.message.ModifyPrefsResponse) NewMountpointSpec(com.zimbra.soap.mail.type.NewMountpointSpec)

Aggregations

FolderActionRequest (com.zimbra.soap.mail.message.FolderActionRequest)8 FolderActionSelector (com.zimbra.soap.mail.type.FolderActionSelector)8 ZMailbox (com.zimbra.client.ZMailbox)7 FolderActionResponse (com.zimbra.soap.mail.message.FolderActionResponse)7 Account (com.zimbra.cs.account.Account)6 ActionGrantSelector (com.zimbra.soap.mail.type.ActionGrantSelector)6 ZFolder (com.zimbra.client.ZFolder)5 SendShareNotificationRequest (com.zimbra.soap.mail.message.SendShareNotificationRequest)4 SendShareNotificationResponse (com.zimbra.soap.mail.message.SendShareNotificationResponse)4 EmailAddrInfo (com.zimbra.soap.mail.type.EmailAddrInfo)4 ShareNotificationInfo (com.zimbra.soap.mail.type.ShareNotificationInfo)4 ServiceException (com.zimbra.common.service.ServiceException)2 ZMessage (com.zimbra.client.ZMessage)1 ZMountpoint (com.zimbra.client.ZMountpoint)1 AuthToken (com.zimbra.cs.account.AuthToken)1 AuthTokenException (com.zimbra.cs.account.AuthTokenException)1 Domain (com.zimbra.cs.account.Domain)1 GuestAccount (com.zimbra.cs.account.GuestAccount)1 Provisioning (com.zimbra.cs.account.Provisioning)1 SearchAccountsOptions (com.zimbra.cs.account.SearchAccountsOptions)1