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