version fixes
[civicrm-core.git] / tests / phpunit / WebTest / Contact / TaskActionSendMassMailing.php
CommitLineData
6a488035
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
81621fee 4 | CiviCRM version 4.7 |
6a488035 5 +--------------------------------------------------------------------+
e7112fa7 6 | Copyright CiviCRM LLC (c) 2004-2015 |
6a488035
TO
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License along with this program; if not, contact CiviCRM LLC |
21 | at info[AT]civicrm[DOT]org. If you have questions about the |
22 | GNU Affero General Public License or the licensing of CiviCRM, |
23 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
24 +--------------------------------------------------------------------+
d25dd0ee 25 */
6a488035 26
6a488035 27require_once 'CiviTest/CiviSeleniumTestCase.php';
e9479dcf
EM
28
29/**
30 * Class WebTest_Contact_TaskActionSendMassMailing
31 */
6a488035
TO
32class WebTest_Contact_TaskActionSendMassMailing extends CiviSeleniumTestCase {
33
34 protected function setUp() {
35 parent::setUp();
36 }
37
00be9182 38 public function testSelectedContacts() {
6a488035
TO
39 $this->webtestLogin();
40
225a8648 41 // make group
6a488035 42 $groupName = 'group_' . substr(sha1(rand()), 0, 7);
225a8648 43 $this->WebtestAddGroup($groupName);
6a488035
TO
44
45 // Use class names for menu items since li array can change based on which components are enabled
46 $this->click("css=ul#civicrm-menu li.crm-Search");
225a8648 47 $this->clickLink("css=ul#civicrm-menu li.crm-Advanced_Search a", "email");
6a488035 48
6a488035
TO
49 $this->click("_qf_Advanced_refresh");
50 $this->waitForPageToLoad($this->getTimeoutMsec());
51
6a488035
TO
52 // Click "check all" box and act on "Add to group" action
53 $this->click("//form[@id='Advanced']/div[3]/div/div[2]/table/thead/tr/th[1]/input");
2053a3e9 54 $this->waitForText('search-status', "50 Selected records only");
6a488035 55 $this->select("task", "label=Schedule/Send a Mass Mailing");
2053a3e9 56 $this->clickLink("Go");
6a488035
TO
57
58 //-------select recipients----------
59
60 $mailingName = 'Selected Contact Mailing Test ' . substr(sha1(rand()), 0, 7);
61
62 $this->waitForElementPresent("name");
63 $this->type("name", "$mailingName");
64 $this->select("baseGroup", "label=$groupName");
65 $this->click("//option[@value='4']");
66 $this->click("_qf_Group_next");
67
68 //--------track and respond----------
69
70 $this->waitForElementPresent("_qf_Settings_next");
71
72 // check for default settings options
73 $this->assertChecked("url_tracking");
74 $this->assertChecked("open_tracking");
75
76 $this->click("_qf_Settings_next");
77
78 //--------Mailing content------------
79 // fill subject for mailing
80 $this->waitForElementPresent("subject");
81 $this->type("subject", "Test subject {$mailingName} for Webtest");
82
83 // check for default option enabled
2053a3e9 84 $this->assertChecked("CIVICRM_QFID_1_upload_type");
6a488035
TO
85
86 // HTML format message
87 $HTMLMessage = "This is HTML formatted content for Mailing {$mailingName} Webtest.";
88 $this->fillRichTextField("html_message", $HTMLMessage);
89
90 // Open Plain-text Format pane and type text format msg
91 $this->click("//fieldset[@id='compose_id']/div[2]/div[1]");
92 $this->type("text_message", "This is text formatted content for Mailing {$mailingName} Webtest.");
93
94 // select default header and footer ( with label )
95 $this->select("header_id", "label=Mailing Header");
96 $this->select("footer_id", "label=Mailing Footer");
97 $this->click("_qf_Upload_upload");
98
99 $this->waitForElementPresent("_qf_Test_next");
100 $this->click("_qf_Test_next");
101
102 //----------Schedule or Send------------
103
104 $this->waitForElementPresent("_qf_Schedule_next");
105
106 $this->assertChecked("now");
107
108 $this->click("_qf_Schedule_next");
109 $this->waitForPageToLoad($this->getTimeoutMsec());
110
111 //----------end New Mailing-------------
112
113 //check redirected page to Scheduled and Sent Mailings and verify for mailing name
2053a3e9
RN
114 $this->waitForText('page-title', "Scheduled and Sent Mailings");
115 $this->waitForText('css=.selector', "$mailingName");
6a488035
TO
116
117 //--------- mail delivery verification---------
118
119 // test undelivered report
120
121 // click report link of created mailing
122 $this->click("xpath=//table//tbody/tr[td[1]/text()='$mailingName']/descendant::a[text()='Report']");
123 $this->waitForPageToLoad($this->getTimeoutMsec());
124
125 // verify undelivered status message
2053a3e9 126 $this->waitForText("css=.messages", "Delivery has not yet begun for this mailing. If the scheduled delivery date and time is past, ask the system administrator or technical support contact for your site to verify that the automated mailer task \('cron job'\) is running - and how frequently.");
6a488035
TO
127
128 // directly send schedule mailing -- not working right now
071a6d2e 129 $this->openCiviPage("mailing/queue", "reset=1");
6a488035
TO
130
131 //click report link of created mailing
132 $this->click("xpath=//table//tbody/tr[td[1]/text()='$mailingName']/descendant::a[text()='Report']");
133 $this->waitForPageToLoad($this->getTimeoutMsec());
134 }
96025800 135
6a488035 136}