3b4339fd |
1 | <?php |
2 | |
3 | require_once 'CiviTest/CiviUnitTestCase.php'; |
4 | |
5 | /** |
6 | * Class CRM_Core_MenuTest |
7 | */ |
8 | class CRM_Core_MenuTest extends CiviUnitTestCase { |
9 | |
00be9182 |
10 | public function pathArguments() { |
3b4339fd |
11 | $cases = array(); // array(0 => string $input, 1 => array $expectedOutput) |
12 | //$cases[] = array(NULL, array()); |
13 | //$cases[] = array('', array()); |
14 | //$cases[] = array('freestanding', array('freestanding' => NULL)); |
15 | $cases[] = array('addSequence=1', array('addSequence' => '1')); |
16 | $cases[] = array('attachUpload=1', array('attachUpload' => '1')); |
17 | $cases[] = array('mode=256', array('mode' => '256')); |
18 | $cases[] = array('mode=256,addSequence=1,attachUpload=1', array('mode' => '256', 'addSequence' => '1', 'attachUpload' => 1)); |
19 | $cases[] = array('mode=256,urlToSession=a:b:c:d', array( |
20 | 'mode' => '256', |
21 | 'urlToSession' => array( |
22 | array('urlVar' => 'a', 'sessionVar' => 'b', 'type' => 'c', 'default' => 'd'), |
23 | ), |
24 | )); |
25 | $cases[] = array('mode=256,urlToSession=a:b:c:d;z:y:x:w', array( |
26 | 'mode' => '256', |
27 | 'urlToSession' => array( |
28 | array('urlVar' => 'a', 'sessionVar' => 'b', 'type' => 'c', 'default' => 'd'), |
29 | array('urlVar' => 'z', 'sessionVar' => 'y', 'type' => 'x', 'default' => 'w'), |
30 | ), |
31 | )); |
32 | $cases[] = array('url=whiz!;.:#=%/|+bang?', array('url' => 'whiz!;.:#=%/|+bang?')); |
33 | return $cases; |
34 | } |
35 | |
36 | /** |
37 | * @param $inputString |
38 | * @param $expectedArray |
39 | * @dataProvider pathArguments |
40 | */ |
00be9182 |
41 | public function testGetArrayForPathArgs($inputString, $expectedArray) { |
3b4339fd |
42 | $actual = CRM_Core_Menu::getArrayForPathArgs($inputString); |
43 | $this->assertEquals($expectedArray, $actual); |
44 | } |
ef10e0b5 |
45 | } |