Merge pull request #14934 from civicrm/5.16
[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 = [];
15
16 $cases[] = ["administer CiviCRM", ["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[] = ["cms:unknown universal name", CRM_Core_Permission::ALWAYS_DENY_PERMISSION];
20 $cases[] = [
21 "Joomla:civicrmplusplus.extragood:com_civicrmplusplus",
22 ["civicrmplusplus.extragood", "com_civicrmplusplus"],
23 ];
24 $cases[] = ["otherruntime:foo", CRM_Core_Permission::ALWAYS_DENY_PERMISSION];
25 $cases[] = [CRM_Core_Permission::ALWAYS_DENY_PERMISSION, CRM_Core_Permission::ALWAYS_DENY_PERMISSION];
26 $cases[] = [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 }