3 +--------------------------------------------------------------------+
4 | CiviCRM version 4.7 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2016 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
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. |
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. |
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 +--------------------------------------------------------------------+
27 require_once 'CiviTest/CiviSeleniumTestCase.php';
30 * Class WebTest_Event_ParticipantSearchTest
32 class WebTest_Event_ParticipantSearchTest
extends CiviSeleniumTestCase
{
34 protected function setUp() {
41 public function _checkStrings(&$strings) {
42 // search for elements
43 foreach ($strings as $string) {
44 $this->assertTrue($this->isTextPresent($string), "Could not find $string on page");
48 public function testParticipantSearchForm() {
49 $this->webtestLogin();
51 // visit event search page
52 $this->openCiviPage("event/search", "reset=1");
54 $stringsToCheck = array(
60 'Participant is a Test?',
61 'Participant is Pay Later?',
64 // check that the custom data is also there
68 $this->_checkStrings($stringsToCheck);
71 public function testParticipantSearchForce() {
72 $this->webtestLogin();
74 // visit event search page
75 $this->openCiviPage("event/search", "reset=1&force=1");
77 // assume generated DB
78 // there are participants
79 $this->assertTrue($this->isTextPresent("Select Records"), "A forced event search did not return any results");
82 public function testParticipantSearchEmpty() {
83 $this->webtestLogin();
85 // visit event search page
86 $this->openCiviPage("event/search", "reset=1");
88 $crypticName = "foobardoogoo_" . md5(time());
89 $this->type("sort_name", $crypticName);
91 $this->clickLink("_qf_Search_refresh");
93 $stringsToCheck = array(
94 'No matches found for',
99 $this->_checkStrings($stringsToCheck);
102 public function testParticipantSearchEventName() {
103 $this->webtestLogin();
105 // visit event search page
106 $this->openCiviPage("event/search", "reset=1");
107 $this->waitForElementPresent('_qf_Search_refresh');
109 $eventName = "Rain-forest Cup Youth Soccer Tournament";
110 $this->waitForElementPresent("event_id");
111 $this->select2("event_id", $eventName);
113 $this->click("_qf_Search_refresh");
114 $this->waitForPageToLoad($this->getTimeoutMsec());
116 $stringsToCheck = array(
117 "Event = $eventName",
119 'Edit Search Criteria',
121 $this->_checkStrings($stringsToCheck);
124 public function testParticipantSearchEventDate() {
126 $this->webtestLogin();
128 // visit event search page
129 $this->openCiviPage("event/search", "reset=1");
131 $this->select('event_relative', "label=Choose Date Range");
132 $this->webtestFillDate('event_start_date_low', '-2 year');
133 $this->webtestFillDate('event_end_date_high', '+1 year');
135 $this->clickLink("_qf_Search_refresh");
137 $stringsToCheck = array(
138 "Start Date - greater than or equal to",
140 "End Date - less than or equal to",
142 'Edit Search Criteria',
145 $this->_checkStrings($stringsToCheck);
148 public function testParticipantSearchEventDateAndType() {
149 $this->markTestSkipped('Skipping for now as it works fine locally.');
150 $this->webtestLogin();
152 // visit event search page
153 $this->openCiviPage("event/search", "reset=1");
155 $eventTypeName = 'Fundraiser';
156 $this->waitForElementPresent('event_type_id');
157 $this->select2("event_type_id", $eventTypeName);
158 $this->waitForElementPresent('event_relative');
159 $this->select('event_relative', "label=Choose Date Range");
160 $this->webtestFillDate('event_start_date_low', '-2 year');
161 $this->webtestFillDate('event_end_date_high', '+1 year');
163 $this->click("_qf_Search_refresh");
164 $this->waitForPageToLoad($this->getTimeoutMsec());
165 $this->waitForElementPresent("xpath=//form[@id='Search']/div[3]/div/div[1]/div");
167 $stringsToCheck = array(
168 "Start Date - greater than or equal to",
170 "End Date - less than or equal to",
171 "Event Type = $eventTypeName",
173 'Edit Search Criteria',
176 $this->_checkStrings($stringsToCheck);
179 public function testParticipantSearchCustomField() {
180 $this->markTestSkipped('Skipping for now as it works fine locally.');
181 $this->webtestLogin();
183 // visit event search page
184 $this->openCiviPage("event/search", "reset=1");
186 $this->select("css=select[data-crm-custom='Food_Preference:Soup_Selection']", 'Chicken Combo');
188 $this->clickLink("_qf_Search_refresh");
190 // note since this is generated data
191 // we are not sure if someone has this selection, so
192 // we are not testing for an empty record set
193 $stringsToCheck = array("Soup Selection In Chicken Combo");
195 $this->_checkStrings($stringsToCheck);
197 $this->select("css=select[data-crm-custom='Food_Preference:Soup_Selection']", 'Salmon Stew');
198 $this->clickLink("_qf_Search_refresh");
200 $stringsToCheck = array("Soup Selection In Salmon Stew");
202 $this->_checkStrings($stringsToCheck);
205 public function testParticipantSearchForceAndView() {
207 $this->webtestLogin();
209 // visit event search page
210 $this->openCiviPage("event/search", "reset=1&force=1");
212 // assume generated DB
213 // there are participants
214 $this->assertTrue($this->isTextPresent("Select Records"), "A forced event search did not return any results");
216 $this->waitForElementPresent("xpath=id('participantSearch')/table/tbody/tr/td[11]/span/a[text()='View']");
217 $this->click("xpath=id('participantSearch')/table/tbody/tr/td[11]/span/a[text()='View']");
218 $this->waitForTextPresent("View Event Registration");
220 // ensure we get to particpant view
221 $stringsToCheck = array(
227 $this->_checkStrings($stringsToCheck);
230 public function testParticipantSearchForceAndEdit() {
232 $this->webtestLogin();
234 // visit event search page
235 $this->openCiviPage("event/search", "reset=1&force=1");
237 // assume generated DB
238 // there are participants
239 $this->assertTrue($this->isTextPresent("Select Records"), "A forced event search did not return any results");
241 $this->waitForElementPresent("xpath=id('participantSearch')/table/tbody/tr/td[11]/span/a[text()='Edit']");
242 $this->click("xpath=id('participantSearch')/table/tbody/tr/td[11]/span/a[text()='Edit']");
243 $this->waitForElementPresent("xpath=//button//span[contains(text(),'Save')]");
245 // ensure we get to particpant view
246 $stringsToCheck = array(
252 $this->_checkStrings($stringsToCheck);