Commit | Line | Data |
---|---|---|
5fb64d51 PF |
1 | <?php |
2 | ||
3 | /** | |
4 | * Class CRM_Core_Smarty_plugins_CrmMoneyTest | |
5 | * @group headless | |
6 | */ | |
7 | class CRM_Core_Smarty_plugins_CrmMoneyTest extends CiviUnitTestCase { | |
39b959db | 8 | |
faba1457 | 9 | public function setUp(): void { |
5fb64d51 PF |
10 | parent::setUp(); |
11 | require_once 'CRM/Core/Smarty.php'; | |
12 | ||
13 | // Templates should normally be file names, but for unit-testing it's handy to use "string:" notation | |
14 | require_once 'CRM/Core/Smarty/resources/String.php'; | |
15 | civicrm_smarty_register_string_resource(); | |
16 | } | |
17 | ||
18 | /** | |
19 | * @return array | |
20 | */ | |
21 | public function moneyCases() { | |
22 | $cases = []; | |
23 | $cases[] = ['$ 4.00', '{assign var="amount" value="4.00"}{$amount|crmMoney:USD}']; | |
24 | $cases[] = ['€ 1,234.00', '{assign var="amount" value="1234.00"}{$amount|crmMoney:EUR}']; | |
25 | $cases[] = [ | |
26 | '$ <input size="10" style="background-color:#EBECE4" readonly="readonly" name="eachPaymentAmount" type="text" id="eachPaymentAmount" class="crm-form-text">', | |
39b959db | 27 | '{assign var="amount" value=\'<input size="10" style="background-color:#EBECE4" readonly="readonly" name="eachPaymentAmount" type="text" id="eachPaymentAmount" class="crm-form-text">\'}{$amount|crmMoney:USD}', |
5fb64d51 PF |
28 | ]; |
29 | return $cases; | |
30 | } | |
31 | ||
32 | /** | |
33 | * @dataProvider moneyCases | |
34 | * @param $expected | |
35 | * @param $input | |
36 | */ | |
37 | public function testMoney($expected, $input) { | |
38 | $smarty = CRM_Core_Smarty::singleton(); | |
39 | $actual = $smarty->fetch('string:' . $input); | |
40 | $this->assertEquals($expected, $actual, "Process input=[$input]"); | |
41 | } | |
42 | ||
43 | } |