/** * Tests the parse method * * @param string $url An associative array with variables * @param integer $menubool JROUTER_MODE_RAW or JROUTER_MODE_SEF * @param array $expectedVars An associative array with $_SERVER vars * @param array $expectedGlobalVars An associative array with $_SERVER vars * * @return void * * @dataProvider casesParseRawRoute * @since 3.4 */ public function testParseRawRoute($url, $menubool, $expectedVars, $expectedGlobalVars) { $uri = new JUri($url); if (isset($expectedGlobalVars['Itemid'])) { $app = $this->object->getApp(); $app->input->set('Itemid', $expectedGlobalVars['Itemid']); $this->object->setApp($app); } if ($menubool) { $menu = TestMockMenu::create($this, false); $menu->expects($this->any())->method('getDefault')->will($this->returnValue(null)); $this->object->setMenu($menu); } $vars = $this->object->runParseRawRoute($uri); $this->assertEquals($expectedVars, $vars); $this->assertEquals($expectedGlobalVars, $this->object->getVars()); }