@Test( description = "Tag a contact by dnd on an existing tag", groups = {"functional"}) public void DnDOnExistingTag() throws HarnessException { // Create a contact via Soap then select ContactItem contactItem = app.zPageAddressbook.createUsingSOAPSelectContact(app, Action.A_LEFTCLICK); // Create a new tag via soap TagItem tagItem = TagItem.CreateUsingSoap(app); // Refresh to display the new tag app.zPageMain.zToolbarPressButton(Button.B_REFRESH); // Dnd on the new tag app.zPageAddressbook.zDragAndDrop( "css=td#zlif__CNS-main__" + contactItem.getId() + "__fileas:contains(" + contactItem.fileAs + ")", "css=div[id=main_Contacts-parent-TAG] div[id=ztih__main_Contacts__TAG] td[id^=zti__main_Contacts__][id$=_textCell]:contains(" + tagItem.getName() + ")"); Verify(contactItem, tagItem.getName()); }
// verify contact tagged with tag and toasted message private void Verify(ContactItem contactItem, String tagName) throws HarnessException { // Make sure the tag was created on the server (get the tag ID) app.zGetActiveAccount().soapSend("<GetTagRequest xmlns='urn:zimbraMail'/>"); ; String tagID = app.zGetActiveAccount() .soapSelectValue("//mail:GetTagResponse//mail:tag[@name='" + tagName + "']", "id"); // Make sure the tag was applied to the contact app.zGetActiveAccount() .soapSend( "<GetContactsRequest xmlns='urn:zimbraMail'>" + "<cn id='" + contactItem.getId() + "'/>" + "</GetContactsRequest>"); String contactTags = app.zGetActiveAccount().soapSelectValue("//mail:GetContactsResponse//mail:cn", "t"); // if multi-tagged if (contactTags.contains(",")) { ZAssert.assertStringContains( contactTags, tagID, "Verify the tag appears on the contact id=" + contactItem.getId()); } else { ZAssert.assertEquals( contactTags, tagID, "Verify the tag appears on the contact id=" + contactItem.getId()); } // verify toasted message '1 contact tagged ...' Toaster toast = app.zPageMain.zGetToaster(); String toastMsg = toast.zGetToastMessage(); ZAssert.assertStringContains( toastMsg, "1 contact tagged \"" + tagName + "\"", "Verify toast message '" + "1 contact tagged \"" + tagName + "\"'"); }