Commit | Line | Data |
---|---|---|
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 | 27 | require_once 'CiviTest/CiviSeleniumTestCase.php'; |
e9479dcf EM |
28 | |
29 | /** | |
30 | * Class WebTest_Contribute_OnlineContributionTest | |
31 | */ | |
6a488035 TO |
32 | class WebTest_Contribute_OnlineContributionTest extends CiviSeleniumTestCase { |
33 | ||
34 | protected function setUp() { | |
35 | parent::setUp(); | |
36 | } | |
37 | ||
00be9182 | 38 | public function testOnlineContributionAdd() { |
6a488035 TO |
39 | $this->webtestLogin(); |
40 | ||
c3ad8633 CW |
41 | // Use default payment processor |
42 | $processorName = 'Test Processor'; | |
6a488035 | 43 | $processorType = 'Dummy'; |
42daf119 CW |
44 | $pageTitle = substr(sha1(rand()), 0, 7); |
45 | $rand = 2 * rand(10, 50); | |
46 | $hash = substr(sha1(rand()), 0, 7); | |
6a488035 | 47 | $amountSection = TRUE; |
42daf119 CW |
48 | $payLater = FALSE; |
49 | $onBehalf = FALSE; | |
50 | $pledges = FALSE; | |
51 | $recurring = FALSE; | |
52 | $memberships = FALSE; | |
53 | $friend = TRUE; | |
54 | $profilePreId = 1; | |
6a488035 | 55 | $profilePostId = NULL; |
42daf119 CW |
56 | $premiums = FALSE; |
57 | $widget = FALSE; | |
58 | $pcp = FALSE; | |
6a488035 TO |
59 | $memPriceSetId = NULL; |
60 | ||
61 | // create a new online contribution page | |
62 | // create contribution page with randomized title and default params | |
63 | $pageId = $this->webtestAddContributionPage($hash, | |
64 | $rand, | |
65 | $pageTitle, | |
66 | array($processorName => $processorType), | |
67 | $amountSection, | |
68 | $payLater, | |
69 | $onBehalf, | |
70 | $pledges, | |
71 | $recurring, | |
72 | $memberships, | |
73 | $memPriceSetId, | |
74 | $friend, | |
75 | $profilePreId, | |
76 | $profilePostId, | |
77 | $premiums, | |
78 | $widget, | |
79 | $pcp | |
80 | ); | |
81 | ||
82 | //logout | |
42daf119 | 83 | $this->webtestLogout(); |
6a488035 TO |
84 | |
85 | //Open Live Contribution Page | |
f1224701 | 86 | $this->openCiviPage("contribute/transact", "reset=1&id=$pageId&action=preview", "_qf_Main_upload-bottom"); |
6a488035 TO |
87 | |
88 | $firstName = 'Ma' . substr(sha1(rand()), 0, 4); | |
89 | $lastName = 'An' . substr(sha1(rand()), 0, 7); | |
90 | $honorFirstName = 'In' . substr(sha1(rand()), 0, 4); | |
91 | $honorLastName = 'Hon' . substr(sha1(rand()), 0, 7); | |
92 | $honorEmail = $honorFirstName . "@example.com"; | |
93 | $honorSortName = $honorLastName . ', ' . $honorFirstName; | |
76e86fd8 | 94 | $honorDisplayName = 'Ms. ' . $honorFirstName . ' ' . $honorLastName; |
6a488035 TO |
95 | |
96 | $this->type("email-5", $firstName . "@example.com"); | |
97 | ||
98 | $this->type("first_name", $firstName); | |
99 | $this->type("last_name", $lastName); | |
100 | ||
101 | $this->click("xpath=//div[@class='crm-section other_amount-section']//div[2]/input"); | |
102 | $this->type("xpath=//div[@class='crm-section other_amount-section']//div[2]/input", 100); | |
103 | ||
104 | $streetAddress = "100 Main Street"; | |
105 | $this->type("street_address-1", $streetAddress); | |
106 | $this->type("city-1", "San Francisco"); | |
107 | $this->type("postal_code-1", "94117"); | |
108 | $this->select("country-1", "value=1228"); | |
109 | $this->select("state_province-1", "value=1001"); | |
6a488035 | 110 | // Honoree Info |
f1224701 | 111 | $this->click("xpath=id('Main')/div[3]/fieldset/div[2]/div/label[text()='In Honor of']"); |
6a488035 | 112 | |
1421174e | 113 | $this->select("honor[prefix_id]", "label=Ms."); |
114 | $this->type("honor[first_name]", $honorFirstName); | |
115 | $this->type("honor[last_name]", $honorLastName); | |
116 | $this->type("honor[email-1]", $honorEmail); | |
76e86fd8 | 117 | |
6a488035 TO |
118 | //Credit Card Info |
119 | $this->select("credit_card_type", "value=Visa"); | |
120 | $this->type("credit_card_number", "4111111111111111"); | |
121 | $this->type("cvv2", "000"); | |
122 | $this->select("credit_card_exp_date[M]", "value=1"); | |
123 | $this->select("credit_card_exp_date[Y]", "value=2020"); | |
124 | ||
125 | //Billing Info | |
126 | $this->type("billing_first_name", $firstName . "billing"); | |
127 | $this->type("billing_last_name", $lastName . "billing"); | |
128 | $this->type("billing_street_address-5", "15 Main St."); | |
129 | $this->type(" billing_city-5", "San Jose"); | |
130 | $this->select("billing_country_id-5", "value=1228"); | |
131 | $this->select("billing_state_province_id-5", "value=1004"); | |
132 | $this->type("billing_postal_code-5", "94129"); | |
225a8648 | 133 | $this->clickLink("_qf_Main_upload-bottom", "_qf_Confirm_next-bottom"); |
6a488035 TO |
134 | |
135 | $this->click("_qf_Confirm_next-bottom"); | |
136 | $this->waitForPageToLoad($this->getTimeoutMsec()); | |
137 | ||
138 | //login to check contribution | |
6a488035 TO |
139 | |
140 | // Log in using webtestLogin() method | |
141 | $this->webtestLogin(); | |
142 | ||
143 | //Find Contribution | |
42daf119 | 144 | $this->openCiviPage("contribute/search", "reset=1", "contribution_date_low"); |
8fb46c61 | 145 | $this->type("sort_name", "$lastName $firstName"); |
f1224701 | 146 | $this->click("xpath=//tr/td[1]/label[contains(text(), 'Contribution is a Test?')]/../../td[2]/label[contains(text(), 'Yes')]/preceding-sibling::input[1]"); |
225a8648 | 147 | $this->clickLink("_qf_Search_refresh", "xpath=//div[@id='contributionSearch']//table//tbody/tr[1]/td[11]/span/a[text()='View']"); |
6c6e6187 | 148 | $this->clickLink("xpath=//div[@id='contributionSearch']//table//tbody/tr[1]/td[11]/span/a[text()='View']", "_qf_ContributionView_cancel-bottom", FALSE); |
6a488035 TO |
149 | |
150 | //View Contribution Record and verify data | |
151 | $expected = array( | |
42daf119 CW |
152 | 'From' => "{$firstName} {$lastName}", |
153 | 'Financial Type' => 'Donation', | |
154 | 'Total Amount' => '100.00', | |
6a488035 | 155 | 'Contribution Status' => 'Completed', |
6a488035 TO |
156 | ); |
157 | $this->webtestVerifyTabularData($expected); | |
1421174e | 158 | //View Soft Credit record of type 'Honor of' |
159 | $this->waitForTextPresent($honorDisplayName); | |
160 | $this->waitForTextPresent('100.00 (In Honor of)'); | |
161 | ||
6a488035 TO |
162 | // Check for Honoree contact created |
163 | $this->click("css=input#sort_name_navigation"); | |
164 | $this->type("css=input#sort_name_navigation", $honorSortName); | |
165 | $this->typeKeys("css=input#sort_name_navigation", $honorSortName); | |
166 | ||
167 | // wait for result list | |
0ecb5006 | 168 | $this->waitForElementPresent("css=ul.ui-autocomplete li"); |
6a488035 TO |
169 | |
170 | // visit contact summary page | |
0ecb5006 | 171 | $this->click("css=ul.ui-autocomplete li"); |
6a488035 TO |
172 | $this->waitForPageToLoad($this->getTimeoutMsec()); |
173 | ||
174 | // Is contact present? | |
175 | $this->assertTrue($this->isTextPresent("$honorDisplayName"), "Honoree contact not found."); | |
76e86fd8 | 176 | |
2b63342b | 177 | // CRM-16064 - Contributions pricesets charge $1 more than selected |
178 | $contributionAmt = number_format($rand, 2); | |
179 | $label = "Label $hash"; | |
180 | $this->_verifyContributionAmt($pageId, $contributionAmt, $label); | |
181 | ||
6c6e6187 | 182 | } |
3fb990f4 | 183 | |
92915c55 | 184 | public function testOnlineContributionWithZeroAmount() { |
3fb990f4 RN |
185 | $this->webtestLogin(); |
186 | ||
c3ad8633 CW |
187 | // Use default payment processor |
188 | $processorName = 'Test Processor'; | |
3fb990f4 RN |
189 | $processorType = 'Dummy'; |
190 | $pageTitle = substr(sha1(rand()), 0, 7); | |
191 | $rand = 2 * rand(10, 50); | |
192 | $hash = substr(sha1(rand()), 0, 7); | |
193 | $amountSection = TRUE; | |
194 | $payLater = FALSE; | |
195 | $onBehalf = FALSE; | |
196 | $pledges = FALSE; | |
197 | $recurring = FALSE; | |
198 | $memberships = FALSE; | |
199 | $friend = FALSE; | |
200 | $profilePreId = NULL; | |
201 | $profilePostId = NULL; | |
202 | $premiums = FALSE; | |
203 | $widget = FALSE; | |
204 | $pcp = FALSE; | |
205 | $memPriceSetId = NULL; | |
206 | ||
207 | // create a new online contribution page | |
208 | // create contribution page with randomized title and default params | |
209 | $pageId = $this->webtestAddContributionPage($hash, | |
210 | $rand, | |
211 | $pageTitle, | |
212 | array($processorName => $processorType), | |
213 | $amountSection, | |
214 | $payLater, | |
215 | $onBehalf, | |
216 | $pledges, | |
217 | $recurring, | |
218 | $memberships, | |
219 | $memPriceSetId, | |
220 | $friend, | |
221 | $profilePreId, | |
222 | $profilePostId, | |
223 | $premiums, | |
224 | $widget, | |
225 | $pcp | |
226 | ); | |
1421174e | 227 | |
3fb990f4 RN |
228 | $this->openCiviPage("admin/contribute/amount", "reset=1&action=update&id=$pageId", '_qf_Amount_cancel-bottom'); |
229 | $this->type('label_1', "Label $hash"); | |
230 | $this->type('value_1', 0); | |
231 | $this->clickLink('_qf_Amount_upload_done-top'); | |
232 | ||
233 | //Contribution using Contribution Options | |
234 | $this->_doContributionAndVerifyData($pageId); | |
1421174e | 235 | |
3fb990f4 RN |
236 | //add priceset |
237 | $this->openCiviPage("admin/price", "reset=1&action=add", '_qf_Set_next-bottom'); | |
238 | $this->type('title', "Test Priceset $rand"); | |
239 | $this->check('extends_2'); | |
240 | $this->select("financial_type_id", "label=Donation"); | |
0512e9c6 | 241 | $this->clickLink('_qf_Set_next-bottom', '_qf_Field_next-bottom', FALSE); |
3fb990f4 RN |
242 | $sid = $this->urlArg('sid'); |
243 | //add field | |
244 | $this->type('label', "Testfield"); | |
245 | $this->select('html_type', "value=Radio"); | |
246 | $this->type('option_label_1', 'test Label'); | |
247 | $this->type('option_amount_1', 0.00); | |
0512e9c6 | 248 | $this->clickLink('_qf_Field_next_new-bottom', '_qf_Field_next-bottom', FALSE); |
3fb990f4 RN |
249 | $this->openCiviPage("admin/contribute/amount", "reset=1&action=update&id=$pageId", '_qf_Amount_cancel-bottom'); |
250 | $this->select('price_set_id', "value=$sid"); | |
0512e9c6 | 251 | $this->clickLink('_qf_Amount_upload_done-bottom', FALSE); |
3fb990f4 RN |
252 | |
253 | //Contribution using priceset | |
1421174e | 254 | $this->_doContributionAndVerifyData($pageId, TRUE); |
3fb990f4 RN |
255 | } |
256 | ||
4cbe18b8 | 257 | /** |
100fef9d | 258 | * @param int $pageId |
4cbe18b8 EM |
259 | * @param bool $priceSet |
260 | */ | |
00be9182 | 261 | public function _doContributionAndVerifyData($pageId, $priceSet = FALSE) { |
3fb990f4 RN |
262 | //logout |
263 | $this->webtestLogout(); | |
264 | $amountLabel = 'Total Amount'; | |
b4a57e40 | 265 | $amountValue = '0.00'; |
3fb990f4 | 266 | //Open Live Contribution Page |
f1224701 | 267 | $this->openCiviPage("contribute/transact", "reset=1&id=$pageId&action=preview", "_qf_Main_upload-bottom"); |
3fb990f4 RN |
268 | |
269 | $firstName = 'Ma' . substr(sha1(rand()), 0, 4); | |
270 | $lastName = 'An' . substr(sha1(rand()), 0, 7); | |
271 | ||
272 | $this->type("email-5", $firstName . "@example.com"); | |
273 | ||
274 | if ($priceSet) { | |
275 | $this->click("xpath=//div[@id='priceset']/div/div[2]/div/span/input"); | |
276 | $amountLabel = 'Contribution Amount'; | |
277 | $amountValue = 'Contribution Total: $ 0.00'; | |
278 | } | |
279 | ||
280 | //Credit Card Info | |
281 | $this->select("credit_card_type", "value=Visa"); | |
282 | $this->type("credit_card_number", "4111111111111111"); | |
283 | $this->type("cvv2", "000"); | |
284 | $this->select("credit_card_exp_date[M]", "value=1"); | |
285 | $this->select("credit_card_exp_date[Y]", "value=2020"); | |
286 | ||
287 | //Billing Info | |
288 | $this->type("billing_first_name", $firstName); | |
289 | $this->type("billing_last_name", $lastName); | |
290 | $this->type("billing_street_address-5", "15 Main St."); | |
291 | $this->type(" billing_city-5", "San Jose"); | |
292 | $this->select("billing_country_id-5", "value=1228"); | |
293 | $this->select("billing_state_province_id-5", "value=1004"); | |
294 | $this->type("billing_postal_code-5", "94129"); | |
295 | $this->clickLink("_qf_Main_upload-bottom", "_qf_Confirm_next-bottom"); | |
296 | ||
297 | $this->clickLink("_qf_Confirm_next-bottom", NULL); | |
298 | ||
3fb990f4 RN |
299 | //login to check contribution |
300 | ||
301 | // Log in using webtestLogin() method | |
302 | $this->webtestLogin(); | |
303 | ||
6c6e6187 | 304 | //Find Contribution |
3fb990f4 RN |
305 | $this->openCiviPage("contribute/search", "reset=1", "contribution_date_low"); |
306 | ||
64b211dd | 307 | $this->type("sort_name", "$lastName $firstName"); |
0512e9c6 | 308 | $this->clickLink("_qf_Search_refresh", "xpath=//div[@id='contributionSearch']//table//tbody/tr[1]/td[11]/span/a[text()='View']", FALSE); |
309 | $this->clickLink("xpath=//div[@id='contributionSearch']//table//tbody/tr[1]/td[11]/span/a[text()='View']", "_qf_ContributionView_cancel-bottom", FALSE); | |
3fb990f4 RN |
310 | |
311 | //View Contribution Record and verify data | |
312 | $expected = array( | |
313 | 'From' => "{$firstName} {$lastName}", | |
314 | 'Financial Type' => 'Donation', | |
315 | $amountLabel => $amountValue, | |
21dfd5f5 | 316 | 'Contribution Status' => 'Completed', |
3fb990f4 RN |
317 | ); |
318 | $this->webtestVerifyTabularData($expected); | |
6a488035 | 319 | } |
96025800 | 320 | |
2b63342b | 321 | public function _verifyContributionAmt($pageId, $contributionAmt, $label) { |
322 | // logout | |
323 | $this->webtestLogout(); | |
324 | ||
325 | //Open Live Contribution Page | |
f1224701 | 326 | $this->openCiviPage("contribute/transact", "reset=1&id=$pageId&action=preview", "_qf_Main_upload-bottom"); |
2b63342b | 327 | $firstName = 'Ma' . substr(sha1(rand()), 0, 4); |
328 | $lastName = 'An' . substr(sha1(rand()), 0, 7); | |
329 | $this->type("email-5", $firstName . "@example.com"); | |
330 | ||
331 | $this->type("first_name", $firstName); | |
332 | $this->type("last_name", $lastName); | |
333 | $this->check("xpath=//div[@id='priceset']/div[contains(@class, 'contribution_amount-section')]//div[contains(@class, 'contribution_amount-row1')]/span/input"); | |
334 | $streetAddress = "100 Main Street"; | |
335 | $this->type("street_address-1", $streetAddress); | |
336 | $this->type("city-1", "San Francisco"); | |
337 | $this->type("postal_code-1", "94117"); | |
338 | $this->select("country-1", "value=1228"); | |
339 | $this->select("state_province-1", "value=1001"); | |
340 | ||
341 | //Credit Card Info | |
342 | $this->select("credit_card_type", "value=Visa"); | |
343 | $this->type("credit_card_number", "4111111111111111"); | |
344 | $this->type("cvv2", "000"); | |
345 | $this->select("credit_card_exp_date[M]", "value=1"); | |
346 | $this->select("credit_card_exp_date[Y]", "value=2020"); | |
347 | ||
348 | //Billing Info | |
349 | $this->type("billing_first_name", $firstName . "billing"); | |
350 | $this->type("billing_last_name", $lastName . "billing"); | |
351 | $this->type("billing_street_address-5", "15 Main St."); | |
352 | $this->type(" billing_city-5", "San Jose"); | |
353 | $this->select("billing_country_id-5", "value=1228"); | |
354 | $this->select("billing_state_province_id-5", "value=1004"); | |
355 | $this->type("billing_postal_code-5", "94129"); | |
356 | $this->clickLink("_qf_Main_upload-bottom", "_qf_Confirm_next-bottom"); | |
357 | ||
358 | $this->assertElementContainsText("xpath=//div[contains(@class, 'amount_display-group')]//div[@class='display-block']/strong", "$ $contributionAmt - $label", "Contribution amount does not match"); | |
359 | $this->clickLink("_qf_Confirm_next-bottom"); | |
360 | $this->assertElementContainsText("xpath=//div[contains(@class, 'amount_display-group')]//div[@class='display-block']/strong", "$ $contributionAmt - $label", "Contribution amount does not match"); | |
361 | // Log in using webtestLogin() method | |
362 | $this->webtestLogin(); | |
363 | $this->openCiviPage("contribute/search", "reset=1", "contribution_date_low"); | |
364 | ||
365 | $this->type("sort_name", "$lastName $firstName"); | |
f1224701 | 366 | $this->click("xpath=//tr/td[1]/label[contains(text(), 'Contribution is a Test?')]/../../td[2]/label[contains(text(), 'Yes')]/preceding-sibling::input[1]"); |
2b63342b | 367 | $this->clickLink("_qf_Search_refresh", "xpath=//div[@id='contributionSearch']//table//tbody/tr[1]/td[11]/span/a[text()='View']"); |
368 | $this->clickLink("xpath=//div[@id='contributionSearch']//table//tbody/tr[1]/td[11]/span/a[text()='View']", "_qf_ContributionView_cancel-bottom", FALSE); | |
369 | ||
370 | //View Contribution Record and verify data | |
371 | $expected = array( | |
372 | 'From' => "{$firstName} {$lastName}", | |
373 | 'Financial Type' => 'Donation', | |
374 | 'Total Amount' => $contributionAmt, | |
375 | 'Contribution Status' => 'Completed', | |
376 | ); | |
377 | $this->webtestVerifyTabularData($expected); | |
378 | } | |
65158765 | 379 | |
feb02c31 | 380 | public function testOnlineContributionWithPremium() { |
810fa73d | 381 | //CRM-16713: Contribution search by premiums on find contribution form. |
feb02c31 WA |
382 | $this->webtestLogin(); |
383 | ||
384 | // Use default payment processor | |
385 | $processorName = 'Test Processor'; | |
386 | $processorType = 'Dummy'; | |
387 | $pageTitle = substr(sha1(rand()), 0, 7); | |
388 | $rand = 2 * rand(10, 50); | |
389 | $hash = substr(sha1(rand()), 0, 7); | |
390 | $amountSection = TRUE; | |
391 | $payLater = FALSE; | |
392 | $onBehalf = FALSE; | |
393 | $pledges = FALSE; | |
394 | $recurring = FALSE; | |
395 | $memberships = FALSE; | |
396 | $friend = TRUE; | |
397 | $profilePreId = 1; | |
398 | $profilePostId = NULL; | |
399 | $premiums = TRUE; | |
400 | $widget = FALSE; | |
401 | $pcp = FALSE; | |
402 | $memPriceSetId = NULL; | |
403 | ||
404 | // create a new online contribution page | |
405 | // create contribution page with randomized title and default params | |
406 | $pageId = $this->webtestAddContributionPage($hash, | |
407 | $rand, | |
408 | $pageTitle, | |
409 | array($processorName => $processorType), | |
410 | $amountSection, | |
411 | $payLater, | |
412 | $onBehalf, | |
413 | $pledges, | |
414 | $recurring, | |
415 | $memberships, | |
416 | $memPriceSetId, | |
417 | $friend, | |
418 | $profilePreId, | |
419 | $profilePostId, | |
420 | $premiums, | |
421 | $widget, | |
422 | $pcp | |
423 | ); | |
424 | ||
425 | //logout | |
426 | $this->webtestLogout(); | |
427 | ||
428 | //Open Live Contribution Page | |
f1224701 | 429 | $this->openCiviPage("contribute/transact", "reset=1&id=$pageId&action=preview", "_qf_Main_upload-bottom"); |
feb02c31 WA |
430 | |
431 | $firstName = 'Ma' . substr(sha1(rand()), 0, 4); | |
432 | $lastName = 'An' . substr(sha1(rand()), 0, 7); | |
433 | ||
434 | $this->type("email-5", $firstName . "@example.com"); | |
435 | ||
436 | $this->waitForAjaxContent(); | |
437 | $this->click("xpath=//div[@id='premiums-listings']/div[2]/div[1]"); | |
438 | $this->waitForAjaxContent(); | |
439 | $this->select("xpath=//div[@id='premiums']/fieldset/div[@id='premiums-listings']/div[2]/div[2]/div[2]/div[4]/p/select", "value=Black"); | |
440 | ||
441 | $this->type("first_name", $firstName); | |
442 | $this->type("last_name", $lastName); | |
443 | ||
444 | $this->click("xpath=//div[@class='crm-section other_amount-section']//div[2]/input"); | |
445 | $this->type("xpath=//div[@class='crm-section other_amount-section']//div[2]/input", 100); | |
446 | ||
447 | $streetAddress = "100 Main Street"; | |
448 | $this->type("street_address-1", $streetAddress); | |
449 | $this->type("city-1", "San Francisco"); | |
450 | $this->type("postal_code-1", "94117"); | |
451 | $this->select("country-1", "value=1228"); | |
452 | $this->select("state_province-1", "value=1001"); | |
453 | ||
454 | //Credit Card Info | |
455 | $this->select("credit_card_type", "value=Visa"); | |
456 | $this->type("credit_card_number", "4111111111111111"); | |
457 | $this->type("cvv2", "000"); | |
458 | $this->select("credit_card_exp_date[M]", "value=1"); | |
459 | $this->select("credit_card_exp_date[Y]", "value=2020"); | |
460 | ||
461 | //Billing Info | |
462 | $this->type("billing_first_name", $firstName . "billing"); | |
463 | $this->type("billing_last_name", $lastName . "billing"); | |
464 | $this->type("billing_street_address-5", "15 Main St."); | |
465 | $this->type(" billing_city-5", "San Jose"); | |
466 | $this->select("billing_country_id-5", "value=1228"); | |
467 | $this->select("billing_state_province_id-5", "value=1004"); | |
468 | $this->type("billing_postal_code-5", "94129"); | |
469 | $this->clickLink("_qf_Main_upload-bottom", "_qf_Confirm_next-bottom"); | |
470 | ||
471 | $this->click("_qf_Confirm_next-bottom"); | |
472 | $this->waitForPageToLoad($this->getTimeoutMsec()); | |
473 | ||
474 | // Log in using webtestLogin() method | |
475 | $this->webtestLogin(); | |
476 | ||
477 | //Find Contribution | |
478 | $this->openCiviPage("contribute/search", "reset=1", "contribution_date_low"); | |
f1224701 | 479 | $this->click("xpath=//tr/td[1]/label[contains(text(), 'Contribution is a Test?')]/../../td[2]/label[contains(text(), 'Yes')]/preceding-sibling::input[1]"); |
feb02c31 WA |
480 | $this->type("sort_name", "$lastName $firstName"); |
481 | $this->multiselect2('contribution_product_id', array('Coffee Mug')); | |
482 | $this->click("_qf_Search_refresh"); | |
483 | $this->waitForElementPresent("xpath=//div[@id='contributionSearch']/table/tbody//tr/td[11]/span/a[text()='View']"); | |
484 | $this->click("xpath=//div[@id='contributionSearch']/table/tbody/tr[1]/td[3]/a[text()='{$lastName}, {$firstName}']/../../td[11]/span/a[text()='View']"); | |
485 | $this->waitForElementPresent("xpath=//button//span[contains(text(),'Done')]"); | |
486 | ||
487 | //View Contribution Record and verify data | |
488 | $expected = array( | |
489 | 'From' => "{$firstName} {$lastName}", | |
490 | 'Financial Type' => 'Donation', | |
491 | 'Total Amount' => '100.00', | |
492 | 'Contribution Status' => 'Completed', | |
493 | 'Premium' => 'Coffee Mug', | |
494 | ); | |
495 | $this->webtestVerifyTabularData($expected); | |
496 | } | |
497 | ||
3fb990f4 | 498 | } |