Merge pull request #7680 from JMAConsulting/CRM-16259-9
[civicrm-core.git] / tests / phpunit / CRM / Core / MenuTest.php
1 <?php
2
3 /**
4 * Class CRM_Core_MenuTest
5 * @group headless
6 */
7 class CRM_Core_MenuTest extends CiviUnitTestCase {
8
9 /**
10 * @return array
11 */
12 public function pathArguments() {
13 $cases = array(); // array(0 => string $input, 1 => array $expectedOutput)
14 //$cases[] = array(NULL, array());
15 //$cases[] = array('', array());
16 //$cases[] = array('freestanding', array('freestanding' => NULL));
17 $cases[] = array('addSequence=1', array('addSequence' => '1'));
18 $cases[] = array('attachUpload=1', array('attachUpload' => '1'));
19 $cases[] = array('mode=256', array('mode' => '256'));
20 $cases[] = array(
21 'mode=256,addSequence=1,attachUpload=1',
22 array('mode' => '256', 'addSequence' => '1', 'attachUpload' => 1),
23 );
24 $cases[] = array(
25 'mode=256,urlToSession=a:b:c:d',
26 array(
27 'mode' => '256',
28 'urlToSession' => array(
29 array('urlVar' => 'a', 'sessionVar' => 'b', 'type' => 'c', 'default' => 'd'),
30 ),
31 ),
32 );
33 $cases[] = array(
34 'mode=256,urlToSession=a:b:c:d;z:y:x:w',
35 array(
36 'mode' => '256',
37 'urlToSession' => array(
38 array('urlVar' => 'a', 'sessionVar' => 'b', 'type' => 'c', 'default' => 'd'),
39 array('urlVar' => 'z', 'sessionVar' => 'y', 'type' => 'x', 'default' => 'w'),
40 ),
41 ),
42 );
43 $cases[] = array('url=whiz!;.:#=%/|+bang?', array('url' => 'whiz!;.:#=%/|+bang?'));
44 return $cases;
45 }
46
47 /**
48 * @param $inputString
49 * @param $expectedArray
50 * @dataProvider pathArguments
51 */
52 public function testGetArrayForPathArgs($inputString, $expectedArray) {
53 $actual = CRM_Core_Menu::getArrayForPathArgs($inputString);
54 $this->assertEquals($expectedArray, $actual);
55 }
56
57 }