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