Merge remote-tracking branch 'upstream/4.6' into 4.6-master-2015-08-12-15-44-44
[civicrm-core.git] / tests / phpunit / CRM / Core / MenuTest.php
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
10 /**
11 * @return array
12 */
13 public function pathArguments() {
14 $cases = array(); // array(0 => string $input, 1 => array $expectedOutput)
15 //$cases[] = array(NULL, array());
16 //$cases[] = array('', array());
17 //$cases[] = array('freestanding', array('freestanding' => NULL));
18 $cases[] = array('addSequence=1', array('addSequence' => '1'));
19 $cases[] = array('attachUpload=1', array('attachUpload' => '1'));
20 $cases[] = array('mode=256', array('mode' => '256'));
21 $cases[] = array(
22 'mode=256,addSequence=1,attachUpload=1',
23 array('mode' => '256', 'addSequence' => '1', 'attachUpload' => 1),
24 );
25 $cases[] = array(
26 'mode=256,urlToSession=a:b:c:d',
27 array(
28 'mode' => '256',
29 'urlToSession' => array(
30 array('urlVar' => 'a', 'sessionVar' => 'b', 'type' => 'c', 'default' => 'd'),
31 ),
32 ),
33 );
34 $cases[] = array(
35 'mode=256,urlToSession=a:b:c:d;z:y:x:w',
36 array(
37 'mode' => '256',
38 'urlToSession' => array(
39 array('urlVar' => 'a', 'sessionVar' => 'b', 'type' => 'c', 'default' => 'd'),
40 array('urlVar' => 'z', 'sessionVar' => 'y', 'type' => 'x', 'default' => 'w'),
41 ),
42 ),
43 );
44 $cases[] = array('url=whiz!;.:#=%/|+bang?', array('url' => 'whiz!;.:#=%/|+bang?'));
45 return $cases;
46 }
47
48 /**
49 * @param $inputString
50 * @param $expectedArray
51 * @dataProvider pathArguments
52 */
53 public function testGetArrayForPathArgs($inputString, $expectedArray) {
54 $actual = CRM_Core_Menu::getArrayForPathArgs($inputString);
55 $this->assertEquals($expectedArray, $actual);
56 }
57
58 }