Commit | Line | Data |
---|---|---|
b6708aeb | 1 | <?php |
2 | /* | |
3 | +--------------------------------------------------------------------+ | |
39de6fd5 | 4 | | CiviCRM version 4.6 | |
b6708aeb | 5 | +--------------------------------------------------------------------+ |
06a1bc01 | 6 | | Copyright CiviCRM LLC (c) 2004-2014 | |
b6708aeb | 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 | +--------------------------------------------------------------------+ | |
25 | */ | |
26 | ||
27 | ||
28 | require_once 'CiviTest/CiviSeleniumTestCase.php'; | |
e9479dcf EM |
29 | |
30 | /** | |
31 | * Class WebTest_Financial_FinancialBatchExport | |
32 | */ | |
b6708aeb | 33 | class WebTest_Financial_FinancialBatchExport extends CiviSeleniumTestCase { |
34 | ||
35 | protected function setUp() { | |
36 | parent::setUp(); | |
37 | } | |
38 | ||
39 | function testAddFinancialBatch() { | |
40 | // Log in using webtestLogin() method | |
41 | $this->webtestLogin('admin'); | |
42 | $this->openCiviPage("financial/batch", "reset=1&action=add", '_qf_FinancialBatch_next-botttom'); | |
43 | $setTitle = 'Batch ' . substr(sha1(rand()), 0, 7) . date('Y-m-d'); | |
44 | $setDescription = 'Test Batch Creation'; | |
45 | $setPaymentInstrument = 'Credit Card'; | |
46 | $numberOfTrxn = '10'; // can be 10, 25, 50, 100 | |
47 | $totalAmt = '1000'; | |
48 | $exportFormat = 'CSV'; | |
49 | $batchId = $this->_testAddBatch( | |
50 | $setTitle, | |
51 | $setDescription, | |
52 | $setPaymentInstrument, | |
53 | $numberOfTrxn, | |
54 | $totalAmt | |
55 | ); | |
56 | $this->_testAssignBatch($numberOfTrxn); | |
57 | $this->_testExportBatch($setTitle, $batchId, $exportFormat); | |
58 | } | |
59 | ||
4cbe18b8 EM |
60 | /** |
61 | * @param $setTitle | |
62 | * @param $setDescription | |
63 | * @param $setPaymentInstrument | |
64 | * @param $numberOfTrxn | |
65 | * @param $totalAmt | |
66 | * | |
67 | * @return null | |
68 | */ | |
b6708aeb | 69 | function _testAddBatch($setTitle, $setDescription, $setPaymentInstrument, $numberOfTrxn, $totalAmt) { |
70 | // Enter Optional Constraints | |
71 | $this->type('title', $setTitle); | |
72 | $this->type('description', $setDescription); | |
73 | if ($setPaymentInstrument == 'Credit Card') { | |
74 | $this->select("payment_instrument_id", "value=1"); | |
75 | } | |
76 | elseif ($setPaymentInstrument == 'Debit Card') { | |
77 | $this->select("payment_instrument_id", "value=2"); | |
78 | } | |
79 | elseif ($setPaymentInstrument == 'Cash') { | |
80 | $this->select("payment_instrument_id", "value=3"); | |
81 | } | |
82 | elseif ($setPaymentInstrument == 'Check') { | |
83 | $this->select("payment_instrument_id", "value=4"); | |
84 | } | |
85 | elseif ($setPaymentInstrument == 'EFT') { | |
86 | $this->select("payment_instrument_id", "value=5"); | |
87 | } | |
88 | $this->type('item_count', $numberOfTrxn); | |
89 | $this->type('total', $totalAmt); | |
90 | ||
91 | $this->click('_qf_FinancialBatch_next-botttom'); | |
92 | $this->waitForPageToLoad($this->getTimeoutMsec()); | |
93 | ||
94 | // parse URL to grab the batch ID | |
95 | $batchId = $this->urlArg('bid'); | |
96 | return $batchId; | |
97 | } | |
98 | ||
4cbe18b8 EM |
99 | /** |
100 | * @param $numberOfTrxn | |
101 | */ | |
b6708aeb | 102 | function _testAssignBatch($numberOfTrxn) { |
103 | $this->select( "xpath=//div[@id='crm-transaction-selector-assign_length']/label/select[@name='crm-transaction-selector-assign_length']", "value=$numberOfTrxn" ); | |
efb29358 CW |
104 | // Because it tends to cause problems, all uses of sleep() must be justified in comments |
105 | // Sleep should never be used for wait for anything to load from the server | |
106 | // Justification for this instance: FIXME | |
b6708aeb | 107 | sleep(5); |
108 | $this->click('toggleSelect'); | |
109 | $this->select('trans_assign', 'value=Assign'); | |
110 | $this->click('Go'); | |
111 | $this->waitForPageToLoad($this->getTimeoutMsec()); | |
112 | } | |
113 | ||
4cbe18b8 EM |
114 | /** |
115 | * @param $setTitle | |
100fef9d | 116 | * @param int $batchId |
4cbe18b8 EM |
117 | * @param $exportFormat |
118 | */ | |
b6708aeb | 119 | function _testExportBatch($setTitle, $batchId, $exportFormat) { |
120 | $this->openCiviPage("financial/batch", "reset=1&action=export&id=$batchId"); | |
121 | if ($exportFormat == 'CSV') { | |
122 | $this->click("xpath=//form[@id='FinancialBatch']/div[2]/table[@class='form-layout']/tbody/tr/td/input[2]"); | |
123 | $this->click('_qf_FinancialBatch_next-botttom'); | |
124 | $this->waitForPageToLoad($this->getTimeoutMsec()); | |
125 | } | |
126 | else { | |
127 | $this->click("xpath=//form[@id='FinancialBatch']/div[2]/table[@class='form-layout']/tbody/tr/td/input[1]"); | |
128 | $this->click('_qf_FinancialBatch_next-botttom'); | |
129 | $this->waitForPageToLoad($this->getTimeoutMsec()); | |
130 | } | |
131 | $this->openCiviPage("dashboard", "reset=1"); | |
132 | $this->waitForPageToLoad($this->getTimeoutMsec()); | |
133 | ||
134 | $this->clickLink("xpath=//div[@id='recently-viewed']/ul/li[1]/a", "_qf_Activity_cancel-bottom"); | |
135 | $this->webtestVerifyTabularData( | |
136 | array( | |
137 | 'Current Attachment(s)' => 'Financial_Transactions_' | |
138 | ) | |
139 | ); | |
140 | } | |
141 | } |