Merge pull request #7047 from johanv/CRM-17430-dont_change_domain_version_1st_attempt
[civicrm-core.git] / tests / phpunit / CRM / Core / Page / AJAXTest.php
1 <?php
2
3 /**
4 * Class CRM_Core_Page_AJAXTest
5 * @group headless
6 */
7 class CRM_Core_Page_AJAXTest extends CiviUnitTestCase {
8 public function testCheckAuthz() {
9 $cases = array();
10
11 $cases[] = array('method', 'CRM_Foo', FALSE, 'method');
12 $cases[] = array('method', 'CRM_Foo_Page_AJAX_Bar', FALSE, 'method');
13 $cases[] = array('method', 'CRM_Contact_Page_AJAX', TRUE, 'getAddressDisplay');
14 $cases[] = array('method', 'CRM_Foo_Page_AJAX', FALSE, 'method(');
15 $cases[] = array('method', 'CRM_Foo_Page_AJAX', FALSE, 'method()');
16 $cases[] = array('method', 'othermethod;CRM_Foo_Page_AJAX', FALSE, 'method');
17 $cases[] = array('method', 'CRM_Foo_Page_AJAX;othermethod', FALSE, 'method');
18 $cases[] = array('method', 'CRM_Foo_Page_Inline_Bar', FALSE, '');
19 $cases[] = array('method', 'CRM_Foo_Page_Inline_Bar', FALSE, 'method');
20 $cases[] = array('method', 'CRM_Foo->method', FALSE);
21
22 $cases[] = array('page', 'CRM_Foo', FALSE);
23 $cases[] = array('page', 'CRM_Foo_Bar', FALSE);
24 $cases[] = array('page', 'CRM_Foo_Page', FALSE);
25 $cases[] = array('page', 'CRM_Foo_Page_Bar', FALSE);
26 $cases[] = array('page', 'CRM_Foo_Page_Inline', FALSE);
27 $cases[] = array('page', 'CRM_Contact_Page_Inline_CommunicationPreferences', TRUE);
28 $cases[] = array('page', 'CRM_Foo_Page_Inline_Bar_Bang', FALSE);
29 $cases[] = array('page', 'othermethod;CRM_Foo_Page_Inline_Bar', FALSE);
30 $cases[] = array('page', 'CRM_Foo_Page_Inline_Bar;othermethod', FALSE);
31 $cases[] = array('page', 'CRM_Foo_Form', FALSE);
32 $cases[] = array('page', 'CRM_Foo_Form_Bar', FALSE);
33 $cases[] = array('page', 'CRM_Foo_Form_Inline', FALSE);
34 $cases[] = array('page', 'CRM_Contact_Form_Inline_Email', TRUE);
35 $cases[] = array('page', 'CRM_Foo_Form_Inline_Bar_Bang', FALSE);
36 $cases[] = array('page', 'othermethod;CRM_Foo_Form_Inline_Bar', FALSE);
37 $cases[] = array('page', 'CRM_Foo_Form_Inline_Bar;othermethod', FALSE);
38
39 // aliases for 'page'
40 $cases[] = array('class', 'CRM_Foo_Bar', FALSE);
41 $cases[] = array('class', 'CRM_Contact_Page_Inline_Phone', TRUE);
42 $cases[] = array('', 'CRM_Foo_Bar', FALSE);
43 $cases[] = array('', 'CRM_Contact_Page_Inline_Demographics', TRUE);
44
45 // invalid type
46 $cases[] = array('invalidtype', 'CRM_Foo_Page_Inline_Bar', FALSE);
47 $cases[] = array('invalidtype', 'CRM_Foo_Page_AJAX::method', FALSE);
48
49 foreach ($cases as $case) {
50 list ($type, $className, $expectedResult) = $case;
51 $methodName = CRM_Utils_Array::value(3, $case);
52 $actualResult = CRM_Core_Page_AJAX::checkAuthz($type, $className, $methodName);
53 if ($methodName) {
54 $this->assertEquals($expectedResult, $actualResult,
55 sprintf('Check type=[%s] value=[%s] method=[%s]', $type, $className, $methodName));
56 }
57 else {
58 $this->assertEquals($expectedResult, $actualResult,
59 sprintf('Check type=[%s] value=[%s]', $type, $className));
60 }
61 }
62 }
63
64 }