4 * Class CRM_Core_PageTest
7 class CRM_Core_PageTest
extends CiviUnitTestCase
{
10 * Test data for testMakeIcons
14 public function iconTestData() {
15 // first item is icon, text, condition, and attribs, second is expected markup
18 '<i aria-hidden="true" title="We have a winner" class="crm-i fa-trophy"></i><span class="sr-only">We have a winner</span>',
19 ['fa-trophy', 'We have a winner', TRUE, []],
20 '{icon icon="fa-trophy"}We have a winner{/icon}',
24 ['fa-trophy', 'We have a winner', 0, []],
25 '{icon icon="fa-trophy" condition=0}We have a winner{/icon}',
28 '<i aria-hidden="true" title="Favorite" class="action-icon test-icon crm-i fa-heart"></i><span class="sr-only">Favorite</span>',
29 ['fa-heart', 'Favorite', TRUE, ['class' => 'action-icon test-icon']],
30 '{icon icon="fa-heart" class="action-icon test-icon"}Favorite{/icon}',
33 '<i aria-hidden="true" title="I "choo-choo" choose you" class="crm-i fa-train"></i><span class="sr-only">I "choo-choo" choose you</span>',
34 ['fa-train', 'I "choo-choo" choose you', TRUE, []],
35 '{icon icon="fa-train"}I "choo-choo" choose you{/icon}',
38 '<i aria-hidden="true" class="crm-i fa-trash"></i><span class="sr-only">Trash</span>',
39 ['fa-trash', 'Trash', TRUE, ['title' => '']],
40 '{icon icon="fa-trash" title=""}Trash{/icon}',
43 '<i title="It\'s bedtime" class="crm-i fa-bed"></i><span class="sr-only">It\'s bedtime</span>',
44 ['fa-bed', "It's bedtime", TRUE, ['aria-hidden' => '']],
45 // Ye olde Smarty 2 doesn't support hyphenated function parameters
48 '<i aria-hidden="true" class="crm-i fa-snowflake-o"></i>',
49 ['fa-snowflake-o', NULL, TRUE, []],
50 '{icon icon="fa-snowflake-o"}{/icon}',
56 * Test that icons are formed properly
58 * @param string $expectedMarkup
59 * @param array $params
60 * @param string $smartyFunc
61 * @dataProvider iconTestData
63 public function testMakeIcons($expectedMarkup, $params, $smartyFunc = '') {
64 list($icon, $text, $condition, $attribs) = $params;
65 $this->assertEquals($expectedMarkup, CRM_Core_Page
::crmIcon($icon, $text, $condition, $attribs));
66 if (!empty($smartyFunc)) {
67 $smarty = CRM_Core_Smarty
::singleton();
68 $actual = $smarty->fetch('string:' . $smartyFunc);
69 $this->assertEquals($expectedMarkup, $actual, "Process input=[$smartyFunc]");