*/
require_once 'CiviTest/CiviSeleniumTestCase.php';
+
+/**
+ * Class WebTest_Campaign_OnlineEventRegistrationTest
+ */
class WebTest_Campaign_OnlineEventRegistrationTest extends CiviSeleniumTestCase {
protected function setUp() {
$this->type("description", "This is a test campaign");
// include groups for the campaign
- $this->addSelection("includeGroups-f", "label=$groupName");
- $this->click("//option[@value=4]");
- $this->click("add");
+ $this->multiselect2("includeGroups", array("$groupName", "Advisory Board"));
// fill the end date for campaign
$this->webtestFillDate("end_date", "+1 year");
$this->waitForText('crm-notification-container', "Campaign $title");
- $this->waitForElementPresent("//div[@id='campaignList']/div[@id='campaigns_wrapper']/table/tbody/tr/td[text()='{$campaignTitle}']/../td[1]");
- $id = (int) $this->getText("//div[@id='campaignList']/div[@id='campaigns_wrapper']/table/tbody/tr/td[text()='{$campaignTitle}']/../td[1]");
+ $this->waitForElementPresent("//div[@id='campaignList']/div[@class='dataTables_wrapper no-footer']/table/tbody/tr/td[text()='{$campaignTitle}']/../td[1]");
+ $id = (int) $this->getText("//div[@id='campaignList']/div[@class='dataTables_wrapper no-footer']/table/tbody/tr/td[text()='{$campaignTitle}']/../td[1]");
$this->onlineParticipantAddTest($campaignTitle, $id);
}
+ /**
+ * @param $campaignTitle
+ * @param int $id
+ */
function onlineParticipantAddTest($campaignTitle, $id) {
- // We need a payment processor
- $processorName = "Webtest Dummy" . substr(sha1(rand()), 0, 7);
+ // Use default payment processor
+ $processorName = 'Test Processor';
$paymentProcessorId = $this->webtestAddPaymentProcessor($processorName);
$this->openCiviPage("event/add", "reset=1&action=add");
$eventInfoStrings = array($eventTitle, $eventDescription, $streetAddress);
$this->_testVerifyEventInfo($eventTitle, $eventInfoStrings);
- $registerStrings = array("$ 250.00 Member", "$ 325.00 Non-member", $registerIntro);
+ $registerStrings = array("Member - $ 250.00", "Non-member - $ 325.00", $registerIntro);
$registerUrl = $this->_testVerifyRegisterPage($registerStrings);
$numberRegistrations = 3;
$this->_testOnlineRegistration($campaignTitle, $registerUrl, $numberRegistrations, $anonymous);
}
+ /**
+ * @param int $id
+ * @param $eventTitle
+ * @param $eventDescription
+ */
function _testAddEventInfo($id, $eventTitle, $eventDescription) {
$this->waitForElementPresent("_qf_EventInfo_upload-bottom");
$this->click("_qf_EventInfo_upload-bottom");
}
+ /**
+ * @param $streetAddress
+ */
function _testAddLocation($streetAddress) {
// Wait for Location tab form to load
$this->waitForElementPresent("_qf_Location_upload-bottom");
// Fill in address fields
$streetAddress = "100 Main Street";
+ $this->waitForElementPresent('address_1_street_address');
$this->type("address_1_street_address", $streetAddress);
+ $this->waitForElementPresent('address_1_city');
$this->type("address_1_city", "San Francisco");
$this->type("address_1_postal_code", "94117");
+ $this->select('address_1_country_id', 'United States');
$this->select("address_1_state_province_id", "value=1004");
$this->type("email_1_email", "info@civicrm.org");
$this->waitForText('crm-notification-container', "saved");
}
+ /**
+ * @param bool $discount
+ * @param bool $priceSet
+ * @param int $processorId
+ */
function _testAddFees($discount = FALSE, $priceSet = FALSE, $processorId) {
// Go to Fees tab
$this->click("link=Fees");
$this->waitForText('crm-notification-container', "saved");
}
+ /**
+ * @param $registerIntro
+ * @param bool $multipleRegistrations
+ */
function _testAddOnlineRegistration($registerIntro, $multipleRegistrations = FALSE) {
// Go to Online Registration tab
$this->click("link=Online Registration");
$this->waitForElementPresent("_qf_Registration_upload-bottom");
- $this->check("is_online_registration");
+ $this->click("is_online_registration");
$this->assertChecked("is_online_registration");
if ($multipleRegistrations) {
$this->check("is_multiple_registrations");
$this->assertChecked("is_multiple_registrations");
}
+ $this->click('intro_text-plain');
$this->fillRichTextField("intro_text", $registerIntro);
// enable confirmation email
$this->waitForText('crm-notification-container', "saved");
}
+ /**
+ * @param $eventTitle
+ * @param $eventInfoStrings
+ */
function _testVerifyEventInfo($eventTitle, $eventInfoStrings) {
// verify event input on info page
// start at Manage Events listing
$this->assertStringsPresent($eventInfoStrings);
}
+ /**
+ * @param $registerStrings
+ *
+ * @return string
+ */
function _testVerifyRegisterPage($registerStrings) {
// Go to Register page and check for intro text and fee levels
$this->click("link=Register Now");
return $this->getLocation();
}
+ /**
+ * @param $campaignTitle
+ * @param $registerUrl
+ * @param int $numberRegistrations
+ * @param bool $anonymous
+ */
function _testOnlineRegistration($campaignTitle, $registerUrl, $numberRegistrations = 1, $anonymous = TRUE) {
if ($anonymous) {
$this->webtestLogout();
$this->type('sort_name', $email);
$this->click("_qf_Search_refresh");
- $this->waitForElementPresent("//*[@id='participantSearch']");
- $this->click("xpath=//div[@id='participantSearch']/table/tbody/tr/td[11]/span/a[text()='Edit']");
+ $this->waitForElementPresent("xpath=//div[@id='participantSearch']");
+ $this->click("xpath=//div[@id='participantSearch']/table/tbody/tr/td[11]/span[1]/a[2][text()='Edit']");
$this->waitForElementPresent("_qf_Participant_cancel-bottom");
- $this->assertElementContainsText('crm-container', "$campaignTitle");
+ $this->assertElementContainsText("xpath=//form[@id='Participant']/div[2]/div/table[@class='form-layout-compressed']/tbody/tr[4]/td[2]/select", "$campaignTitle");
}
}