/**
  * 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']);
 }
Example #3
0
 /**
  * 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);
 }