Merge pull request #17253 from mattwire/utf8convertblocksize
[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
9 public function testCheckAuthz() {
10 $cases = [];
11
12 $cases[] = ['method', 'CRM_Foo', FALSE, 'method'];
13 $cases[] = ['method', 'CRM_Foo_Page_AJAX_Bar', FALSE, 'method'];
14 $cases[] = ['method', 'CRM_Contact_Page_AJAX', TRUE, 'getAddressDisplay'];
15 $cases[] = ['method', 'CRM_Foo_Page_AJAX', FALSE, 'method('];
16 $cases[] = ['method', 'CRM_Foo_Page_AJAX', FALSE, 'method()'];
17 $cases[] = ['method', 'othermethod;CRM_Foo_Page_AJAX', FALSE, 'method'];
18 $cases[] = ['method', 'CRM_Foo_Page_AJAX;othermethod', FALSE, 'method'];
19 $cases[] = ['method', 'CRM_Foo_Page_Inline_Bar', FALSE, ''];
20 $cases[] = ['method', 'CRM_Foo_Page_Inline_Bar', FALSE, 'method'];
21 $cases[] = ['method', 'CRM_Foo->method', FALSE];
22
23 $cases[] = ['page', 'CRM_Foo', FALSE];
24 $cases[] = ['page', 'CRM_Foo_Bar', FALSE];
25 $cases[] = ['page', 'CRM_Foo_Page', FALSE];
26 $cases[] = ['page', 'CRM_Foo_Page_Bar', FALSE];
27 $cases[] = ['page', 'CRM_Foo_Page_Inline', FALSE];
28 $cases[] = ['page', 'CRM_Contact_Page_Inline_CommunicationPreferences', TRUE];
29 $cases[] = ['page', 'CRM_Foo_Page_Inline_Bar_Bang', FALSE];
30 $cases[] = ['page', 'othermethod;CRM_Foo_Page_Inline_Bar', FALSE];
31 $cases[] = ['page', 'CRM_Foo_Page_Inline_Bar;othermethod', FALSE];
32 $cases[] = ['page', 'CRM_Foo_Form', FALSE];
33 $cases[] = ['page', 'CRM_Foo_Form_Bar', FALSE];
34 $cases[] = ['page', 'CRM_Foo_Form_Inline', FALSE];
35 $cases[] = ['page', 'CRM_Contact_Form_Inline_Email', TRUE];
36 $cases[] = ['page', 'CRM_Foo_Form_Inline_Bar_Bang', FALSE];
37 $cases[] = ['page', 'othermethod;CRM_Foo_Form_Inline_Bar', FALSE];
38 $cases[] = ['page', 'CRM_Foo_Form_Inline_Bar;othermethod', FALSE];
39
40 // aliases for 'page'
41 $cases[] = ['class', 'CRM_Foo_Bar', FALSE];
42 $cases[] = ['class', 'CRM_Contact_Page_Inline_Phone', TRUE];
43 $cases[] = ['', 'CRM_Foo_Bar', FALSE];
44 $cases[] = ['', 'CRM_Contact_Page_Inline_Demographics', TRUE];
45
46 // invalid type
47 $cases[] = ['invalidtype', 'CRM_Foo_Page_Inline_Bar', FALSE];
48 $cases[] = ['invalidtype', 'CRM_Foo_Page_AJAX::method', FALSE];
49
50 foreach ($cases as $case) {
51 list ($type, $className, $expectedResult) = $case;
52 $methodName = $case[3] ?? NULL;
53 $actualResult = CRM_Core_Page_AJAX::checkAuthz($type, $className, $methodName);
54 if ($methodName) {
55 $this->assertEquals($expectedResult, $actualResult,
56 sprintf('Check type=[%s] value=[%s] method=[%s]', $type, $className, $methodName));
57 }
58 else {
59 $this->assertEquals($expectedResult, $actualResult,
60 sprintf('Check type=[%s] value=[%s]', $type, $className));
61 }
62 }
63 }
64
65 }