@Test( description = "Delete contact + contact group at once", groups = {"functional"}) public void DeleteMixOfContactAndGroup() throws HarnessException { // Create a contact group via Soap ContactGroupItem group = ContactGroupItem.createContactGroupItem(app.zGetActiveAccount()); group.setId( app.zGetActiveAccount().soapSelectValue("//mail:CreateContactResponse/mail:cn", "id")); String[] dlist = app.zGetActiveAccount() .soapSelectValue("//mail:CreateContactResponse/mail:cn/mail:a[@n='dlist']", null) .split(","); // a[2] for (int i = 0; i < dlist.length; i++) { group.addDListMember(dlist[i]); } // Create a contact via Soap ContactItem contactItem = ContactItem.createContactItem(app.zGetActiveAccount()); contactItem.setId( app.zGetActiveAccount().soapSelectValue("//mail:CreateContactResponse/mail:cn", "id")); GeneralUtility.syncDesktopToZcsWithSoap(app.zGetActiveAccount()); app.zPageAddressbook.zWaitForDesktopLoadingSpinner(5000); // Refresh the view, to pick up the newly created ones FolderItem contactFolder = FolderItem.importFromSOAP(app.zGetActiveAccount(), "Contacts"); app.zTreeContacts.zTreeItem(Action.A_LEFTCLICK, contactFolder); // Select the items app.zPageAddressbook.zListItem(Action.A_CHECKBOX, group.fileAs); app.zPageAddressbook.zListItem(Action.A_CHECKBOX, contactItem.fileAs); // delete contact + group by click Delete button on toolbar app.zPageAddressbook.zToolbarPressButton(Button.B_DELETE); // verify toasted message 2 contacts moved to Trash String expectedMsg = "2 contacts moved to Trash"; ZAssert.assertStringContains( app.zPageMain.zGetToaster().zGetToastMessage(), expectedMsg, "Verify toast message '" + expectedMsg + "'"); // verify deleted contact + group not displayed List<ContactItem> contacts = app.zPageAddressbook.zListGetContacts(); int count = 0; for (ContactItem ci : contacts) { if (ci.fileAs.equals(group.groupName) || ci.fileAs.equals(contactItem.fileAs)) { count++; } } ZAssert.assertTrue( count == 0, "Verify contact + group " + contactItem.fileAs + "," + group.groupName + " deleted"); }
@Test( description = "Delete a task by selecting and typing 'delete' keyboard-Verify Toast message through GUI", groups = {"smoke"}, dataProvider = "DataProviderDeleteKeys") public void DeleteTaskToastMsg_03(String name, int keyEvent) throws HarnessException { FolderItem taskFolder = FolderItem.importFromSOAP(app.zGetActiveAccount(), SystemFolder.Tasks); // Create a basic task to delete String subject = "task" + ZimbraSeleniumProperties.getUniqueString(); app.zGetActiveAccount() .soapSend( "<CreateTaskRequest xmlns='urn:zimbraMail'>" + "<m >" + "<inv>" + "<comp name='" + subject + "'>" + "<or a='" + app.zGetActiveAccount().EmailAddress + "'/>" + "</comp>" + "</inv>" + "<su>" + subject + "</su>" + "<mp ct='text/plain'>" + "<content>content" + ZimbraSeleniumProperties.getUniqueString() + "</content>" + "</mp>" + "</m>" + "</CreateTaskRequest>"); GeneralUtility.syncDesktopToZcsWithSoap(app.zGetActiveAccount()); TaskItem task = TaskItem.importFromSOAP(app.zGetActiveAccount(), subject); ZAssert.assertNotNull(task, "Verify the task is created"); // Refresh the tasks view app.zPageTasks.zToolbarPressButton(Button.B_REFRESH); app.zTreeTasks.zTreeItem(Action.A_LEFTCLICK, taskFolder); // Select the item app.zPageTasks.zListItem(Action.A_MAIL_CHECKBOX, subject); // Click delete keyboard logger.info("Typing shortcut key " + name + " KeyEvent: " + keyEvent); app.zPageMail.zKeyboardKeyEvent(keyEvent); // Verifying the toaster message Toaster toast = app.zPageMain.zGetToaster(); String toastMsg = toast.zGetToastMessage(); ZAssert.assertStringContains( toastMsg, "1 task moved to Trash", "Verify toast message: Task Moved To trash"); }
@Test( description = "Create task through SOAP - delete using Backspace Key & verify Toast message through GUI", groups = {"functional"}) public void DeleteTaskToastMsg_07() throws HarnessException { FolderItem taskFolder = FolderItem.importFromSOAP(app.zGetActiveAccount(), SystemFolder.Tasks); // Create a basic task to delete String subject = "task" + ZimbraSeleniumProperties.getUniqueString(); app.zGetActiveAccount() .soapSend( "<CreateTaskRequest xmlns='urn:zimbraMail'>" + "<m >" + "<inv>" + "<comp name='" + subject + "'>" + "<or a='" + app.zGetActiveAccount().EmailAddress + "'/>" + "</comp>" + "</inv>" + "<su>" + subject + "</su>" + "<mp ct='text/plain'>" + "<content>content" + ZimbraSeleniumProperties.getUniqueString() + "</content>" + "</mp>" + "</m>" + "</CreateTaskRequest>"); GeneralUtility.syncDesktopToZcsWithSoap(app.zGetActiveAccount()); TaskItem task = TaskItem.importFromSOAP(app.zGetActiveAccount(), subject); ZAssert.assertNotNull(task, "Verify the task is created"); // Refresh the tasks view app.zPageTasks.zToolbarPressButton(Button.B_REFRESH); app.zTreeTasks.zTreeItem(Action.A_LEFTCLICK, taskFolder); // Select the item app.zPageTasks.zListItem(Action.A_MAIL_CHECKBOX, subject); // Use Backspace Keyboard Shortcut app.zPageTasks.zKeyboardShortcut(Shortcut.S_BACKSPACE); // Verifying the toaster message Toaster toast = app.zPageMain.zGetToaster(); String toastMsg = toast.zGetToastMessage(); ZAssert.assertStringContains( toastMsg, "1 task moved to Trash", "Verify toast message: Task Moved to Trash"); }
@Test( description = "Mark a message as unread by clicking on it, then using 'mu' hotkeys", groups = {"smoke"}) public void MarkUnReadMail_01() throws HarnessException { // Create the message data to be sent String subject = "subject" + ZimbraSeleniumProperties.getUniqueString(); FolderItem inboxFolder = FolderItem.importFromSOAP(app.zGetActiveAccount(), SystemFolder.Inbox); app.zGetActiveAccount() .soapSend( "<AddMsgRequest xmlns='urn:zimbraMail'>" + "<m l='" + inboxFolder.getId() + "' f=''>" + "<content>From: [email protected]\n" + "To: [email protected] \n" + "Subject: " + subject + "\n" + "MIME-Version: 1.0 \n" + "Content-Type: text/plain; charset=utf-8 \n" + "Content-Transfer-Encoding: 7bit\n" + "\n" + "simple text string in the body\n" + "</content>" + "</m>" + "</AddMsgRequest>"); // Create a mail item to represent the message MailItem mail = MailItem.importFromSOAP(app.zGetActiveAccount(), "subject:(" + subject + ")"); ZAssert.assertStringDoesNotContain(mail.getFlags(), "u", "Verify message is initially unread"); // Click Get Mail button app.zPageMail.zToolbarPressButton(Button.B_GETMAIL); // Select the item app.zPageMail.zListItem(Action.A_LEFTCLICK, mail.dSubject); // TODO: need to L10N this app.zPageMail.zKeyboardShortcut(Shortcut.S_MAIL_MARKUNREAD); GeneralUtility.syncDesktopToZcsWithSoap(app.zGetActiveAccount()); // Verify the message is marked read in the server (flags attribute should not contain (u)nread) mail = MailItem.importFromSOAP(app.zGetActiveAccount(), "subject:(" + subject + ")"); ZAssert.assertStringContains( mail.getFlags(), "u", "Verify the message is marked read in the server"); // TODO: Verify the message is not marked unread in the list }
@Test( description = "Delete multiple tasks (3) by select and toolbar delete : Verify Toast message through GUI", groups = {"functional"}) public void DeleteTaskToastMsg_05() throws HarnessException { FolderItem taskFolder = FolderItem.importFromSOAP(app.zGetActiveAccount(), SystemFolder.Tasks); // Create the message data to be sent String subject1 = "task" + ZimbraSeleniumProperties.getUniqueString(); String subject2 = "task" + ZimbraSeleniumProperties.getUniqueString(); String subject3 = "task" + ZimbraSeleniumProperties.getUniqueString(); app.zGetActiveAccount() .soapSend( "<CreateTaskRequest xmlns='urn:zimbraMail'>" + "<m >" + "<inv>" + "<comp name='" + subject1 + "'>" + "<or a='" + app.zGetActiveAccount().EmailAddress + "'/>" + "</comp>" + "</inv>" + "<su>" + subject1 + "</su>" + "<mp ct='text/plain'>" + "<content>content" + ZimbraSeleniumProperties.getUniqueString() + "</content>" + "</mp>" + "</m>" + "</CreateTaskRequest>"); app.zGetActiveAccount() .soapSend( "<CreateTaskRequest xmlns='urn:zimbraMail'>" + "<m >" + "<inv>" + "<comp name='" + subject2 + "'>" + "<or a='" + app.zGetActiveAccount().EmailAddress + "'/>" + "</comp>" + "</inv>" + "<su>" + subject2 + "</su>" + "<mp ct='text/plain'>" + "<content>content" + ZimbraSeleniumProperties.getUniqueString() + "</content>" + "</mp>" + "</m>" + "</CreateTaskRequest>"); app.zGetActiveAccount() .soapSend( "<CreateTaskRequest xmlns='urn:zimbraMail'>" + "<m >" + "<inv>" + "<comp name='" + subject3 + "'>" + "<or a='" + app.zGetActiveAccount().EmailAddress + "'/>" + "</comp>" + "</inv>" + "<su>" + subject3 + "</su>" + "<mp ct='text/plain'>" + "<content>content" + ZimbraSeleniumProperties.getUniqueString() + "</content>" + "</mp>" + "</m>" + "</CreateTaskRequest>"); GeneralUtility.syncDesktopToZcsWithSoap(app.zGetActiveAccount()); // Import each message into MailItem objects TaskItem task1 = TaskItem.importFromSOAP(app.zGetActiveAccount(), subject1); ZAssert.assertNotNull(task1, "Verify the task is created"); TaskItem task2 = TaskItem.importFromSOAP(app.zGetActiveAccount(), subject2); ZAssert.assertNotNull(task2, "Verify the task is created"); TaskItem task3 = TaskItem.importFromSOAP(app.zGetActiveAccount(), subject3); ZAssert.assertNotNull(task3, "Verify the task is created"); // Refresh the tasks view app.zPageTasks.zToolbarPressButton(Button.B_REFRESH); app.zTreeTasks.zTreeItem(Action.A_LEFTCLICK, taskFolder); // Select the items app.zPageTasks.zListItem(Action.A_MAIL_CHECKBOX, subject1); app.zPageTasks.zListItem(Action.A_MAIL_CHECKBOX, subject2); app.zPageTasks.zListItem(Action.A_MAIL_CHECKBOX, subject3); // Click toolbar delete button app.zPageTasks.zToolbarPressButton(Button.B_DELETE); // Verifying the toaster message Toaster toast = app.zPageMain.zGetToaster(); String toastMsg = toast.zGetToastMessage(); ZAssert.assertStringContains( toastMsg, "3 tasks moved to Trash", "Verify toast message: N Tasks Moved to Trash"); }
@Test( description = "Flag a mail by using shortcut 'mf'", groups = {"functional"}) public void FlagMail_02() throws HarnessException { // Create the message data to be sent String subject = "subject" + ZimbraSeleniumProperties.getUniqueString(); ZimbraAccount.AccountA() .soapSend( "<SendMsgRequest xmlns='urn:zimbraMail'>" + "<m>" + "<e t='t' a='" + app.zGetActiveAccount().EmailAddress + "'/>" + "<su>" + subject + "</su>" + "<mp ct='text/plain'>" + "<content>content" + ZimbraSeleniumProperties.getUniqueString() + "</content>" + "</mp>" + "</m>" + "</SendMsgRequest>"); // Create a mail item to represent the message MailItem mail = MailItem.importFromSOAP(app.zGetActiveAccount(), "subject:(" + subject + ")"); // Click Get Mail button app.zPageMail.zToolbarPressButton(Button.B_GETMAIL); // Select the item app.zPageMail.zListItem(Action.A_LEFTCLICK, mail.dSubject); // Flag the item app.zPageMail.zKeyboardShortcut(Shortcut.S_MAIL_MARKFLAG); // Get the item from the list List<MailItem> messages = app.zPageMail.zListGetMessages(); ZAssert.assertNotNull(messages, "Verify the message list exists"); MailItem listmail = null; for (MailItem m : messages) { logger.info("Subject: looking for " + mail.dSubject + " found: " + m.gSubject); if (mail.dSubject.equals(m.gSubject)) { listmail = m; break; } } GeneralUtility.syncDesktopToZcsWithSoap(app.zGetActiveAccount()); // Make sure the GUI shows "flagged" ZAssert.assertNotNull(listmail, "Verify the message is in the list"); ZAssert.assertTrue(listmail.gIsFlagged, "Verify the message is flagged in the list"); // Make sure the server shows "flagged" mail = MailItem.importFromSOAP(app.zGetActiveAccount(), "subject:(" + subject + ")"); ZAssert.assertStringContains( mail.getFlags(), "f", "Verify the message is flagged in the server"); }