Merge pull request #7728 from andrew-cormick-dockery/CRM-17959
[civicrm-core.git] / tests / phpunit / CRM / Core / Permission / JoomlaTest.php
1 <?php
2
3 /**
4 * Class CRM_Core_Permission_JoomlaTest
5 * @group headless
6 */
7 class CRM_Core_Permission_JoomlaTest extends CiviUnitTestCase {
8
9 /**
10 * @return array
11 * (0 => input to translatePermission, 1 => expected output from translatePermission)
12 */
13 public function translateData() {
14 $cases = array();
15
16 $cases[] = array("administer CiviCRM", array("civicrm.administer_civicrm", "com_civicrm"));
17 // TODO $cases[] = array("cms:universal name", "local name");
18 // TODO $cases[] = array("cms:universal name2", "local name2");
19 $cases[] = array("cms:unknown universal name", CRM_Core_Permission::ALWAYS_DENY_PERMISSION);
20 $cases[] = array(
21 "Joomla:civicrmplusplus.extragood:com_civicrmplusplus",
22 array("civicrmplusplus.extragood", "com_civicrmplusplus"),
23 );
24 $cases[] = array("otherruntime:foo", CRM_Core_Permission::ALWAYS_DENY_PERMISSION);
25 $cases[] = array(CRM_Core_Permission::ALWAYS_DENY_PERMISSION, CRM_Core_Permission::ALWAYS_DENY_PERMISSION);
26 $cases[] = array(CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION, CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION);
27
28 return $cases;
29 }
30
31 /**
32 * @dataProvider translateData
33 * @param string $input
34 * The name of a permission which should be translated.
35 * @param string $expected
36 * The name of an actual permission (based on translation matrix for "runtime").
37 */
38 public function testTranslate($input, $expected) {
39 $perm = new CRM_Core_Permission_Joomla();
40 $actual = $perm->translateJoomlaPermission($input);
41 $this->assertEquals($expected, $actual);
42 }
43
44 }