/** * Saves any skipPatterns flag * * @param array $url * @param array $params * @return array|void */ public function persistParams($url, $params) { if (isset($url['skipPatterns']) && $url['skipPatterns']) { $this->skipPatterns = true; unset($url['skipPatterns']); } return parent::persistParams($url, $params); }
/** * test persistParams ability to persist parameters from $params and remove params. * * @return void */ public function testPersistParams() { $route = new CakeRoute('/:lang/:color/blog/:action', array('controller' => 'posts'), array('persist' => array('lang', 'color'))); $url = array('controller' => 'posts', 'action' => 'index'); $params = array('lang' => 'en', 'color' => 'blue'); $result = $route->persistParams($url, $params); $this->assertEquals('en', $result['lang']); $this->assertEquals('blue', $result['color']); $url = array('controller' => 'posts', 'action' => 'index', 'color' => 'red'); $params = array('lang' => 'en', 'color' => 'blue'); $result = $route->persistParams($url, $params); $this->assertEquals('en', $result['lang']); $this->assertEquals('red', $result['color']); }
/** * test persist with a non array value * * @return void */ public function testPersistParamsNonArray() { $url = array('controller' => 'posts', 'action' => 'index'); $params = array('lang' => 'en', 'color' => 'blue'); $route = new CakeRoute('/:lang/:color/blog/:action', array('controller' => 'posts')); $result = $route->persistParams($url, $params); $this->assertEquals($url, $result); $route = new CakeRoute('/:lang/:color/blog/:action', array('controller' => 'posts'), array('persist' => false)); $result = $route->persistParams($url, $params); $this->assertEquals($url, $result); $route = new CakeRoute('/:lang/:color/blog/:action', array('controller' => 'posts'), array('persist' => 'derp')); $result = $route->persistParams($url, $params); $this->assertEquals($url, $result); }