/** * Creates a test scenario in which 2 users send each other e-mails * to create a conversation. It does the following steps: * 1 - User 1 logs in and sends an e-mail; * 2 - User 2 logs in and replies the e-mail back to user 1; * 3 - User 1 logs in again and re-replies the e-mail back to user 2. * At the end of this procedures, there will be the following situation: * a) System will be at the login screen and * b) User 2 will have a 2 message conversation in his Inbox folder. * * @param ExpressoLiteTest $test The test case that will create the scenario * @param stdObj $params A object containing all the necessary parameters for this scenario. * This object must have the following fields. * "user1" => login for first user, * "password1" => password for first user, * "user2" => login for second user, * "password1" => password for second user, * "mail2" => e-mail address for the second user, * "subject" => subject of the e-mails of the conversation * "content" => content of the e-mails of the conversation */ public static function create2MessageConversation(ExpressoLiteTest $test, $params) { //testStart - part one $test->doLogin($params->user1, $params->password1); $mailPage = new MailPage($test); $mailPage->sendMail(array($params->mail2), $params->subject, $params->content); $mailPage->clickLogout(); // Second user $test->doLogin($params->user2, $params->password2); $mailPage->waitForEmailToArrive($params->subject); $mailPage->clickOnHeadlineBySubject($params->subject); $widgetMessages = $mailPage->getWidgetMessages(); $messageUnit = $widgetMessages->getSingleMessageUnitInConversation(); $messageUnit->clickMenuOptionReply(); $widgetCompose = $mailPage->getWidgetCompose(); $widgetCompose->typeMessageBodyBeforeSignature('Reply Content: ' . $params->content); $widgetCompose->clickSendMailButton(); $widgetCompose->waitForAjaxAndAnimations(); $mailPage->clickLayoutBackButton(); $mailPage->clickLogout(); // Re-login of sender $test->doLogin($params->user1, $params->password1); $reSubject = 'Re: ' . $params->subject; $mailPage->waitForEmailToArrive($reSubject); $mailPage->clickOnHeadlineBySubject($reSubject); $widgetMessages = $mailPage->getWidgetMessages(); $messageUnit = $widgetMessages->getSingleMessageUnitInConversation(); $messageUnit->clickMenuOptionReply(); $widgetCompose = $mailPage->getWidgetCompose(); $widgetCompose->typeMessageBodyBeforeSignature('Reply of Reply Content: ' . $params->content); $widgetCompose->clickSendMailButton(); $widgetCompose->waitForAjaxAndAnimations(); $mailPage->clickLayoutBackButton(); $mailPage->clickLogout(); }
/** * Overview: * - This opens a message and then clicks the "Marcar como não lida" options * of the message menu. After that, checks if the message was really marked * as unread and then checks if the system shows the correct message if * the user tries mark them as unread for a second time * * - CTV3-754 * http://comunidadeexpresso.serpro.gov.br/testlink/linkto.php?tprojectPrefix=CTV3&item=testcase&id=CTV3-754 * */ public function test_CTV3_754_MarkUnreadMail() { $mailPage = new MailPage($this); //load test data $MAIL_RECIPENT = $this->getGlobalValue('user.1.email'); $MAIL_SUBJECT = $this->getTestValue('mail.subject'); //testStart $mailPage->sendMail(array($MAIL_RECIPENT), $MAIL_SUBJECT, 'Marcando como não lido'); $this->waitForAjaxAndAnimations(); $mailPage->clickRefreshButton(); $mailPage->waitForEmailToArrive($MAIL_SUBJECT); $mailPage->clickOnHeadlineBySubject($MAIL_SUBJECT); $widgetMessages = $mailPage->getWidgetMessages(); $widgetMessages->getSingleMessageUnitInConversation(); $mailPage->clickLayoutBackButton(); $this->waitForAjaxAndAnimations(); $headlinesEntry = $mailPage->getHeadlinesEntryBySubject($MAIL_SUBJECT); $headlinesEntry->toggleCheckbox(); $mailPage->clickMenuOptionMarkUnread(); $this->waitForAjaxAndAnimations(); $headlinesEntry = $mailPage->getHeadlinesEntryBySubject($MAIL_SUBJECT); $this->assertEquals(HeadlinesEntry::UNREAD_STATUS, $headlinesEntry->getReadStatus(), 'The message was marked as "Unread", but it was not changed'); $headlinesEntry->toggleCheckbox(); $mailPage->clickMenuOptionMarkUnread(); $this->assertAlertTextEquals('Nenhuma mensagem a ser marcada como não lida.', 'System did not show message indicating no message tobe marked as unread'); $this->acceptAlert(); }
/** * Checks the forward e-mail feature. In this test, user 1 sends an e-mail * to user 2, who forward to user 3 * * CTV3-758 * http://comunidadeexpresso.serpro.gov.br/testlink/linkto.php?tprojectPrefix=CTV3&item=testcase&id=CTV3-758 */ public function test_CTV3_758_SendReceiveFowardOpenMail() { //load test data $USER_1_LOGIN = $this->getGlobalValue('user.1.login'); $USER_1_PASSWORD = $this->getGlobalValue('user.1.password'); $USER_2_LOGIN = $this->getGlobalValue('user.2.login'); $USER_2_PASSWORD = $this->getGlobalValue('user.2.password'); $USER_2_MAIL = $this->getGlobalValue('user.2.email'); $USER_3_LOGIN = $this->getGlobalValue('user.3.login'); $USER_3_PASSWORD = $this->getGlobalValue('user.3.password'); $USER_3_MAIL = $this->getGlobalValue('user.3.email'); $USER_3_BADGE = $this->getGlobalValue('user.3.badge'); $MAIL_SUBJECT = $this->getTestValue('mail.subject'); $ORIGINAL_MAIL_CONTENT = $this->getTestValue('original.mail.content'); $FORWARD_MAIL_CONTENT = $this->getTestValue('forward.mail.content'); //testStart $loginPage = new LoginPage($this); $loginPage->doLogin($USER_1_LOGIN, $USER_1_PASSWORD); $mailPage = new MailPage($this); $mailPage->sendMail(array($USER_2_MAIL), $MAIL_SUBJECT, $ORIGINAL_MAIL_CONTENT); $mailPage->clickLogout(); $loginPage->doLogin($USER_2_LOGIN, $USER_2_PASSWORD); $mailPage->waitForEmailToArrive($MAIL_SUBJECT); $mailPage->clickOnHeadlineBySubject($MAIL_SUBJECT); $widgetMessages = $mailPage->getWidgetMessages(); $messageUnit = $widgetMessages->getSingleMessageUnitInConversation(); $messageUnit->clickMenuOptionForward(); $widgetCompose = $mailPage->getWidgetCompose(); $FORWARD_SUBJECT = 'Fwd: ' . $MAIL_SUBJECT; $widgetCompose->clickOnRecipientField(); $widgetCompose->type($USER_3_MAIL); $widgetCompose->typeEnter(); $widgetCompose->typeMessageBodyBeforeSignature($FORWARD_MAIL_CONTENT); $this->assertEquals(array($USER_3_BADGE), $widgetCompose->getArrayOfCurrentBadges(), 'Forward window did not show the expected recipient'); $this->assertEquals($FORWARD_SUBJECT, $widgetCompose->getSubject(), 'Forward window did not the expected subject'); $this->assertContains($ORIGINAL_MAIL_CONTENT, $widgetCompose->getMessageBodyText()); $widgetCompose->clickSendMailButton(); $this->waitForAjaxAndAnimations(); $mailPage->clickLayoutBackButton(); $this->waitForAjaxAndAnimations(); $mailPage->clickLogout(); $loginPage->doLogin($USER_3_LOGIN, $USER_3_PASSWORD); $mailPage = new MailPage($this); $mailPage->waitForEmailToArrive($FORWARD_SUBJECT); $mailPage->clickOnHeadlineBySubject($FORWARD_SUBJECT); $widgetMessages = $mailPage->getWidgetMessages(); $messageUnit = $widgetMessages->getSingleMessageUnitInConversation(); $this->assertContains($FORWARD_MAIL_CONTENT, $messageUnit->getContent(), 'The forwarded message content was not found in the forward body'); $this->assertTrue($messageUnit->hasShowQuoteButton(), 'The forwarded message did not show the Show Quote button'); $messageUnit->clickShowQuoteButton(); $this->assertContains($ORIGINAL_MAIL_CONTENT, $messageUnit->getQuoteText(), 'The original message content was not found in the mail quote section'); }
/** * Description: * - This test checks the reading of an e-mail with a citation in its body. * It performs the following verifications: 1) checks if the message content * matches the original reply from the other user; 2) Checks if there is a * "Show Quote" button; 3) Checks if the citation content matches the content * of the original e-mail * * - CTV3-1047 * http://comunidadeexpresso.serpro.gov.br/testlink/linkto.php?tprojectPrefix=CTV3&item=testcase&id=CTV3-1047 */ public function test_CTV3_1047_ReadCitationMail() { //load test data $USER_1_LOGIN = $this->getGlobalValue('user.1.login'); $USER_1_PASSWORD = $this->getGlobalValue('user.1.password'); $USER_2_LOGIN = $this->getGlobalValue('user.2.login'); $USER_2_PASSWORD = $this->getGlobalValue('user.2.password'); $USER_2_MAIL = $this->getGlobalValue('user.2.email'); $MAIL_SUBJECT = $this->getTestValue('mail.subject'); $ORIGINAL_MAIL_CONTENT = $this->getTestValue('original.mail.content'); $REPLY_MAIL_CONTENT = $this->getTestValue('reply.mail.content'); //testStart - part one $this->doLogin($USER_1_LOGIN, $USER_1_PASSWORD); $mailPage = new MailPage($this); $mailPage->sendMail(array($USER_2_MAIL), $MAIL_SUBJECT, $ORIGINAL_MAIL_CONTENT); $mailPage->clickLogout(); // Second user $this->doLogin($USER_2_LOGIN, $USER_2_PASSWORD); $mailPage->waitForEmailToArrive($MAIL_SUBJECT); $mailPage->clickOnHeadlineBySubject($MAIL_SUBJECT); $widgetMessages = $mailPage->getWidgetMessages(); $messageUnit = $widgetMessages->getSingleMessageUnitInConversation(); $messageUnit->clickMenuOptionReply(); $widgetCompose = $mailPage->getWidgetCompose(); $REPLY_SUBJECT = 'Re: ' . $MAIL_SUBJECT; $widgetCompose->typeMessageBodyBeforeSignature($REPLY_MAIL_CONTENT); $widgetCompose->clickSendMailButton(); $this->waitForAjaxAndAnimations(); $mailPage->clickLayoutBackButton(); $mailPage->clickLogout(); $this->doLogin($USER_1_LOGIN, $USER_1_PASSWORD); $mailPage->waitForEmailToArrive($REPLY_SUBJECT); $mailPage->clickOnHeadlineBySubject($REPLY_SUBJECT); $widgetMessages = $mailPage->getWidgetMessages(); $messageUnit = $widgetMessages->getSingleMessageUnitInConversation(); $this->waitForAjaxAndAnimations(); $this->assertContains($REPLY_MAIL_CONTENT, $messageUnit->getContent(), 'The replied message content was not found in the reply body'); $this->assertTrue($messageUnit->hasShowQuoteButton(), 'The replied message did not show the Show Quote button'); $messageUnit->clickShowQuoteButton(); $this->assertContains($ORIGINAL_MAIL_CONTENT, $messageUnit->getQuoteText(), 'The original message content was not found in the mail quote section'); }
/** * Tests sending a simple e-mail,with cc and checking if the e-mail composition * screen opens and close as expected. Also checks if the recipients copy receives * the e-mail. * * CTV3-1052 * http://comunidadeexpresso.serpro.gov.br/testlink/linkto.php?tprojectPrefix=CTV3&item=testcase&id=CTV3-1052 */ public function test_CTV3_1052_Send_Bcc_Mail() { $mailPage = new MailPage($this); //load test data $MAIL_BCC_RECIPIENT = $this->getGlobalValue('user.2.email'); $MAIL_SENDER = $this->getGlobalValue('user.2.email'); $MAIL_SUBJECT = $this->getTestValue('mail.subject'); $MAIL_CONTENT = $this->getTestValue('mail.content'); //testStart $mailPage->clickWriteEmailButton(); $widgetCompose = $mailPage->getWidgetCompose(); $this->assertTrue($widgetCompose->isDisplayed(), 'Compose Window should be displayed, but it is not'); $widgetCompose->clickOnBccToggleButton(); $this->waitForAjaxAndAnimations(); $widgetCompose->type($MAIL_BCC_RECIPIENT); $widgetCompose->typeEnter(); $widgetCompose->typeSubject($MAIL_SUBJECT); $widgetCompose->typeMessageBodyBeforeSignature($MAIL_CONTENT); $widgetCompose->clickSendMailButton(); $this->waitForAjaxAndAnimations(); $this->assertFalse($widgetCompose->isDisplayed(), 'Compose Window should have been closed, but it is still visible'); $mailPage->clickRefreshButton(); $this->waitForAjaxAndAnimations(); $mailPage->waitForEmailToArrive($MAIL_SUBJECT); $headlinesEntry = $mailPage->clickOnHeadlineBySubject($MAIL_SUBJECT); $widgetMessages = $mailPage->getWidgetMessages(); $messageUnit = $widgetMessages->getSingleMessageUnitInConversation(); $this->assertContains('(ninguém)', $messageUnit->getToAddresses(), 'The to address content differs from the expected'); $this->assertFalse($messageUnit->isBccAddressesDisplayed(), 'Bcc tag should not have been displayed, but it was'); $mailPage->clickLayoutBackButton(); $this->waitForAjaxAndAnimations(); $mailPage->clickOnFolderByName('Enviados'); $this->waitForAjaxAndAnimations(); $headlinesEntry = $mailPage->getHeadlinesEntryBySubject($MAIL_SUBJECT); $this->assertNotNull($headlinesEntry, "A mail with subject {$MAIL_SUBJECT} was sent, but it could not be found on Sent folder"); $headlinesEntry->click(); $this->waitForAjaxAndAnimations(); $widgetMessages = $mailPage->getWidgetMessages(); $messageUnit = $widgetMessages->getSingleMessageUnitInConversation(); $this->assertContains('(ninguém)', $messageUnit->getToAddresses(), 'The to address content differs from the expected'); $this->assertEquals("({$MAIL_SENDER})", $messageUnit->getFromMail(), 'Message sender mail does not match'); $this->assertContains("{$MAIL_SENDER}", $messageUnit->getBccAddresses(), 'Message bcc recipient mail does not match'); }