X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2FWebTest%2FMailing%2FMailingTest.php;h=2c542c7bebd3252fcd258f38c8ca76329f63b122;hb=388ffbf6c3042fe4b2d70e8dbeafb19b40c2b168;hp=9a945dcda01fe67693a44cf8c5cc10f1f52bb504;hpb=29d98e1314e345f1b9044f5359c2d0a67f380d21;p=civicrm-core.git diff --git a/tests/phpunit/WebTest/Mailing/MailingTest.php b/tests/phpunit/WebTest/Mailing/MailingTest.php index 9a945dcda0..2c542c7beb 100644 --- a/tests/phpunit/WebTest/Mailing/MailingTest.php +++ b/tests/phpunit/WebTest/Mailing/MailingTest.php @@ -22,7 +22,7 @@ | GNU Affero General Public License or the licensing of CiviCRM, | | see the CiviCRM license FAQ at http://civicrm.org/licensing | +--------------------------------------------------------------------+ -*/ + */ require_once 'CiviTest/CiviSeleniumTestCase.php'; @@ -78,60 +78,69 @@ class WebTest_Mailing_MailingTest extends CiviSeleniumTestCase { // configure default mail-box $this->setupDefaultMailbox(); - $this->openCiviPage("mailing/send", "reset=1", "_qf_Group_cancel"); + $this->openCiviPage("a/#/mailing/new"); //-------select recipients---------- // fill mailing name $mailingName = substr(sha1(rand()), 0, 7); - $this->type("name", "Mailing $mailingName Webtest"); + $this->waitForElementPresent("xpath=//input[@name='mailingName']"); + $this->type("xpath=//input[@name='mailingName']", "Mailing $mailingName Webtest"); // Add the test mailing group - $this->select("includeGroups", "$groupName"); - - // click next - $this->clickLink("_qf_Group_next", "_qf_Settings_cancel", FALSE); - - //--------track and respond---------- - - // check for default settings options - $this->assertChecked("url_tracking"); - $this->assertChecked("open_tracking"); + $this->select2("s2id_crmUiId_8", $groupName, TRUE); // do check count for Recipient - $this->assertElementContainsText('css=.messages', "Total Recipients: 1"); - - // no need tracking for this test - - // click next with default settings - $this->clickLink("_qf_Settings_next", "_qf_Upload_cancel"); - - //--------Mailing content------------ - // let from email address be default + $this->waitForTextPresent("~1 recipient"); // fill subject for mailing - $this->type("subject", "Test subject {$mailingName} for Webtest"); - - // check for default option enabled - $this->assertChecked("CIVICRM_QFID_1_upload_type"); + $this->type("xpath=//input[@name='subject']", "Test subject {$mailingName} for Webtest"); // HTML format message $HTMLMessage = "This is HTML formatted content for Mailing {$mailingName} Webtest."; - $this->fillRichTextField("html_message", $HTMLMessage); + $this->fillRichTextField("crmUiId_1", $HTMLMessage); + $this->click("xpath=//div[@class='preview-popup']//a[text()='Preview as HTML']"); + $this->waitForTextPresent($HTMLMessage); + $this->waitForAjaxContent(); + $this->click("xpath=//button[@title='Close']"); // Open Plain-text Format pane and type text format msg - $this->click("//fieldset[@id='compose_id']/div[2]/div[1]"); - $this->type("text_message", "This is text formatted content for Mailing {$mailingName} Webtest."); + $this->click("//div[text()='Plain Text']"); + $this->type("xpath=//*[@name='body_text']", "This is text formatted content for Mailing {$mailingName} Webtest."); + + $this->click("xpath=//div[@class='preview-popup']//a[text()='Preview as Plain Text']"); + $this->waitForTextPresent("This is text formatted content for Mailing {$mailingName} Webtest."); + $this->waitForAjaxContent(); + $this->click("xpath=//button[@title='Close']"); // select default header and footer ( with label ) - $this->select("header_id", "label=Mailing Header"); - $this->select("footer_id", "label=Mailing Footer"); + $this->click("xpath=//ul/li/a[text()='Header and Footer']"); + $this->select2("s2id_crmUiId_10", "Mailing Header"); + $this->select2("s2id_crmUiId_11", "Mailing Footer"); - // do check count for Recipient - $this->assertElementContainsText('css=.messages', "Total Recipients: 1"); + //--------track and respond---------- + + // check for default settings options + $this->click("xpath=//ul/li/a[text()='Tracking']"); + $this->assertChecked("url_tracking"); + $this->assertChecked("open_tracking"); + + // click next with default settings + $this->click("xpath=//div[@class='crm-wizard-buttons']/button[text()='Next']"); + + $this->waitForTextPresent("Mailing $mailingName Webtest"); + $this->click("xpath=//div[@class='content']//a[text()='~1 recipient']"); + $this->webtestVerifyTabularData(array("$firstName Mailson" => "mailino$firstName@mailson.co.in")); + $this->click("xpath=//button[@title='Close']"); + $this->waitForTextPresent("(Include: $groupName)"); + + //----------Schedule or Send------------ + + // do check for default option enabled + $this->assertChecked("xpath=//input[@id='schedule-send-now']"); // click next with nominal content - $this->clickLink("_qf_Upload_upload", "_qf_Test_cancel"); + $this->click("xpath=//center/a/div[text()='Submit Mailing']"); //---------------Test------------------ @@ -150,27 +159,10 @@ class WebTest_Mailing_MailingTest extends CiviSeleniumTestCase { //////// - // do check count for Recipient - $this->assertElementContainsText('css=.messages', "Total Recipients: 1"); - - // click next - $this->clickLink("_qf_Test_next", "_qf_Schedule_cancel"); - - //----------Schedule or Send------------ - - // do check for default option enabled - $this->assertChecked("now"); - - // do check count for Recipient - $this->assertElementContainsText('css=.messages', "Total Recipients: 1"); - - // finally schedule the mail by clicking submit - $this->clickLink("_qf_Schedule_next"); - //----------end New Mailing------------- //check redirected page to Scheduled and Sent Mailings and verify for mailing name - $this->assertElementContainsText('page-title', "Find Mailings"); + $this->waitForTextPresent("Find Mailings"); $this->assertElementContainsText("xpath=//table[@class='selector row-highlight']/tbody//tr//td", "Mailing $mailingName Webtest"); //--------- mail delivery verification--------- @@ -214,10 +206,10 @@ class WebTest_Mailing_MailingTest extends CiviSeleniumTestCase { $this->clickLink("link=Successful Deliveries"); // check for open page - $this->assertElementContainsText('page-title', "Successful Deliveries"); + $this->waitForTextPresent("Successful Deliveries"); // verify email - $this->verifyText("xpath=//table[@id='mailing_event']/tbody//tr/td[2]", preg_quote("mailino$firstName@mailson.co.in")); + $this->verifyText("xpath=//table[@id='mailing_event']/tbody//tr/td[3]", preg_quote("mailino$firstName@mailson.co.in")); $eventQueue = new CRM_Mailing_Event_DAO_Queue(); $eventQueue->contact_id = $contactId; @@ -230,7 +222,7 @@ class WebTest_Mailing_MailingTest extends CiviSeleniumTestCase { // build forward url $forwardUrl = array( "mailing/forward", - "reset=1&jid={$eventQueue->job_id}&qid={$eventQueue->id}&h={$eventQueue->hash}" + "reset=1&jid={$eventQueue->job_id}&qid={$eventQueue->id}&h={$eventQueue->hash}", ); $this->openCiviPage($forwardUrl[0], $forwardUrl[1], NULL); @@ -336,79 +328,74 @@ class WebTest_Mailing_MailingTest extends CiviSeleniumTestCase { $this->select('protocol', 'value=1'); $this->clickLink('_qf_MailSettings_next-bottom'); - // Go to Schedule and Send Mailing form - $this->openCiviPage('mailing/send', 'reset=1', '_qf_Group_cancel'); + $this->openCiviPage("a/#/mailing/new"); //-------select recipients---------- // fill mailing name $mailingName = substr(sha1(rand()), 0, 7); - $this->type("name", "Mailing $mailingName Webtest"); + $this->waitForElementPresent("xpath=//input[@name='mailingName']"); + $this->type("xpath=//input[@name='mailingName']", "Mailing $mailingName Webtest"); // Add the test mailing group - $this->select("includeGroups", "$groupName"); - - // click next - $this->click("_qf_Group_next"); - $this->waitForElementPresent("_qf_Settings_cancel"); - - //--------track and respond---------- - - // check for default settings options - $this->assertChecked("url_tracking"); - $this->assertChecked("open_tracking"); + $this->select2("s2id_crmUiId_8", $groupName, TRUE); // do check count for Recipient - $this->assertElementContainsText('css=.messages', "Total Recipients: 1"); - - // click next with default settings - $this->clickLink("_qf_Settings_next"); + $this->waitForTextPresent("~1 recipient"); // fill subject for mailing - $this->type("subject", "Test subject {$mailingName} for Webtest"); - - // check for default option enabled - $this->assertChecked("CIVICRM_QFID_1_upload_type"); + $this->type("xpath=//input[@name='subject']", "Test subject {$mailingName} for Webtest"); // HTML format message $HTMLMessage = "This is HTML formatted content for Mailing {$mailingName} Webtest."; - $this->fillRichTextField("html_message", $HTMLMessage); + $this->fillRichTextField("crmUiId_1", $HTMLMessage); + $this->click("xpath=//div[@class='preview-popup']//a[text()='Preview as HTML']"); + $this->waitForElementPresent($HTMLMessage); + $this->waitForAjaxContent(); + $this->click("xpath=//button[@title='Close']"); // Open Plain-text Format pane and type text format msg - $this->click("//fieldset[@id='compose_id']/div[2]/div[1]"); - $this->type("text_message", "This is text formatted content for Mailing {$mailingName} Webtest."); + $this->click("//div[text()='Plain Text']"); + $this->type("xpath=//*[@name='body_text']", "This is text formatted content for Mailing {$mailingName} Webtest."); + + $this->click("xpath=//div[@class='preview-popup']//a[text()='Preview as Plain Text']"); + $this->waitForTextPresent("This is text formatted content for Mailing {$mailingName} Webtest."); + $this->waitForAjaxContent(); + $this->click("xpath=//button[@title='Close']"); // select default header and footer ( with label ) - $this->select("header_id", "label=Mailing Header"); - $this->select("footer_id", "label=Mailing Footer"); + $this->click("xpath=//ul/li/a[text()='Header and Footer']"); + $this->select2("s2id_crmUiId_10", "Mailing Header"); + $this->select2("s2id_crmUiId_11", "Mailing Footer"); - // do check count for Recipient - $this->assertElementContainsText('css=.messages', "Total Recipients: 1"); + //--------track and respond---------- - // click next with nominal content - $this->clickLink("_qf_Upload_upload", "_qf_Test_cancel"); + // check for default settings options + $this->click("xpath=//ul/li/a[text()='Tracking']"); + $this->assertChecked("url_tracking"); + $this->assertChecked("open_tracking"); - // do check count for Recipient - $this->assertElementContainsText('css=.messages', "Total Recipients: 1"); + // click next with default settings + $this->click("xpath=//div[@class='crm-wizard-buttons']/button[text()='Next']"); - // click next - $this->clickLink("_qf_Test_next", "_qf_Schedule_cancel"); + $this->waitForTextPresent("Mailing $mailingName Webtest"); + $this->click("xpath=//div[@class='content']//a[text()='~1 recipient']"); + $this->webtestVerifyTabularData(array("$firstName Mailson" => "mailino$firstName@mailson.co.in")); + $this->click("xpath=//button[@title='Close']"); + $this->waitForTextPresent("(Include: $groupName)"); //----------Schedule or Send------------ // do check for default option enabled - $this->assertChecked("now"); - - // do check count for Recipient - $this->assertElementContainsText('css=.messages', "Total Recipients: 1"); + $this->assertChecked("xpath=//input[@id='schedule-send-now']"); - // finally schedule the mail by clicking submit - $this->clickLink("_qf_Schedule_next"); + // click next with nominal content + $this->click("xpath=//center/a/div[text()='Submit Mailing']"); //----------end New Mailing------------- //check redirected page to Scheduled and Sent Mailings and verify for mailing name - $this->assertElementContainsText('page-title', "Find Mailings"); + $this->waitForTextPresent("Find Mailings"); $this->assertElementContainsText("xpath=//table[@class='selector row-highlight']/tbody//tr//td", "Mailing $mailingName Webtest"); // directly send schedule mailing -- not working right now @@ -433,7 +420,7 @@ class WebTest_Mailing_MailingTest extends CiviSeleniumTestCase { 'Replies', 'Bounces', 'Unsubscribe Requests', - 'Opt-out Requests' + 'Opt-out Requests', ); //check for report and adv search links @@ -448,95 +435,85 @@ class WebTest_Mailing_MailingTest extends CiviSeleniumTestCase { $this->verifyText("xpath=//table//tr[td[1]/text()='Subject']/descendant::td[2]", preg_quote("Test subject $mailingName for Webtest")); // after asserts do clicks and confirm filters - $criteriaCheck = - array( - 'Intended Recipients' => - array( - 'report' => array('report_name' => 'Mailing Details', 'Mailing' => "Mailing $mailingName Webtest"), - 'search' => array('Mailing Name IN' => "\"Mailing {$mailingName} Webtest"), - ), - 'Successful Deliveries' => - array( - 'report' => array( - 'report_name' => 'Mailing Details', - 'Mailing' => "Mailing $mailingName Webtest", - "Delivery Status" => " Successful" - ), - 'search' => array( - 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", - 'Mailing Delivery -' => "Successful" - ), - ), - 'Tracked Opens' => - array( - 'report' => array('report_name' => 'Mail Opened', 'Mailing' => "Mailing $mailingName Webtest"), - 'search' => array( - 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", - 'Mailing: Trackable Opens -' => "Opened" - ), - ), - 'Click-throughs' => - array( - 'report' => array('report_name' => 'Mail Clickthroughs', 'Mailing' => "Mailing $mailingName Webtest"), - 'search' => array( - 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", - 'Mailing: Trackable URL Clicks -' => "Clicked" - ), - ), - 'Forwards' => - array( - 'report' => array( - 'report_name' => 'Mailing Details', - 'Mailing' => "Mailing $mailingName Webtest", - 'Forwarded' => 'Is equal to Yes' - ), - 'search' => array('Mailing Name IN' => "\"Mailing {$mailingName} Webtest", 'Mailing: -' => "Forwards"), - ), - 'Replies' => - array( - 'report' => array( - 'report_name' => 'Mailing Details', - 'Mailing' => "Mailing $mailingName Webtest", - 'Replied' => 'Is equal to Yes' - ), - 'search' => array( - 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", - 'Mailing: Trackable Replies -' => "Replied" - ), - ), - 'Bounces' => - array( - 'report' => array('report_name' => 'Mail Bounces', 'Mailing' => "Mailing $mailingName Webtest"), - 'search' => array( - 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", - 'Mailing Delivery -' => "Bounced" - ), - ), - 'Unsubscribe Requests' => - array( - 'report' => array( - 'report_name' => 'Mailing Details', - 'Mailing' => "Mailing $mailingName Webtest", - 'Unsubscribed' => 'Is equal to Yes' - ), - 'search' => array( - 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", - 'Mailing: -' => "Unsubscribe Requests" - ), - ), - 'Opt-out Requests' => - array( - 'report' => array( - 'report_name' => 'Mailing Details', - 'Mailing' => "Mailing $mailingName Webtest", - 'Opted-out' => 'Is equal to Yes' - ), - 'search' => array( - 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", - 'Mailing: -' => "Opt-out Requests" - ), - ), - ); + $criteriaCheck = array( + 'Intended Recipients' => array( + 'report' => array('report_name' => 'Mailing Details', 'Mailing' => "Mailing $mailingName Webtest"), + 'search' => array('Mailing Name IN' => "\"Mailing {$mailingName} Webtest"), + ), + 'Successful Deliveries' => array( + 'report' => array( + 'report_name' => 'Mailing Details', + 'Mailing' => "Mailing $mailingName Webtest", + "Delivery Status" => " Successful", + ), + 'search' => array( + 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", + 'Mailing Delivery -' => "Successful", + ), + ), + 'Tracked Opens' => array( + 'report' => array('report_name' => 'Mail Opened', 'Mailing' => "Mailing $mailingName Webtest"), + 'search' => array( + 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", + 'Mailing: Trackable Opens -' => "Opened", + ), + ), + 'Click-throughs' => array( + 'report' => array('report_name' => 'Mail Clickthroughs', 'Mailing' => "Mailing $mailingName Webtest"), + 'search' => array( + 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", + 'Mailing: Trackable URL Clicks -' => "Clicked", + ), + ), + 'Forwards' => array( + 'report' => array( + 'report_name' => 'Mailing Details', + 'Mailing' => "Mailing $mailingName Webtest", + 'Forwarded' => 'Is equal to Yes', + ), + 'search' => array('Mailing Name IN' => "\"Mailing {$mailingName} Webtest", 'Mailing: -' => "Forwards"), + ), + 'Replies' => array( + 'report' => array( + 'report_name' => 'Mailing Details', + 'Mailing' => "Mailing $mailingName Webtest", + 'Replied' => 'Is equal to Yes', + ), + 'search' => array( + 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", + 'Mailing: Trackable Replies -' => "Replied", + ), + ), + 'Bounces' => array( + 'report' => array('report_name' => 'Mail Bounces', 'Mailing' => "Mailing $mailingName Webtest"), + 'search' => array( + 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", + 'Mailing Delivery -' => "Bounced", + ), + ), + 'Unsubscribe Requests' => array( + 'report' => array( + 'report_name' => 'Mailing Details', + 'Mailing' => "Mailing $mailingName Webtest", + 'Unsubscribed' => 'Is equal to Yes', + ), + 'search' => array( + 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", + 'Mailing: -' => "Unsubscribe Requests", + ), + ), + 'Opt-out Requests' => array( + 'report' => array( + 'report_name' => 'Mailing Details', + 'Mailing' => "Mailing $mailingName Webtest", + 'Opted-out' => 'Is equal to Yes', + ), + 'search' => array( + 'Mailing Name IN' => "\"Mailing {$mailingName} Webtest", + 'Mailing: -' => "Opt-out Requests", + ), + ), + ); $this->criteriaCheck($criteriaCheck, $mailingReportUrl); } @@ -568,13 +545,13 @@ class WebTest_Mailing_MailingTest extends CiviSeleniumTestCase { foreach ($dataToCheck as $key => $value) { if ($entity == 'report') { if ($key == 'report_name') { - $this->assertElementContainsText('page-title', "{$value}"); + $this->waitForTextPresent("{$value}"); continue; } $this->assertTrue($this->isElementPresent("xpath=//form//div[3]/table/tbody//tr/th[contains(text(),'{$key}')]/../td[contains(text(),'{$value}')]"), "Criteria check for {$key} failed for Report for {$summaryInfo}"); } else { - $this->assertElementContainsText('page-title', "Advanced Search"); + $this->waitForTextPresent("Advanced Search"); $assertedValue = $this->isElementPresent("xpath=//div[@class='crm-results-block']//div[@class='qill'][contains(text(),'{$key} {$value}')]"); if (!$assertedValue) { $assertedValue = $this->isTextPresent("{$key} {$value}"); @@ -583,4 +560,5 @@ class WebTest_Mailing_MailingTest extends CiviSeleniumTestCase { } } } + }