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