public function testCreatingUsesDefaultsWhenNotSupplied() { $route = new RecursiveRoute('/page/:page_id/:page_title'); $route->setDefaults(array('page_id' => 10, 'page_title' => 'home')); $url = $route->createUrl(array('page_id' => 20)); $this->assertEquals($url, '/page/20/home/'); }
public function testValidatorsCanBeSuppliedInConstructor() { $route = new RecursiveRoute('/page/:page_id/', array('validators' => array('page_id' => '/^\\d+$/'))); // 'someId' won't validate, so route won't match: // param will be appended as key/value $url = $route->createUrl(array('page_id' => 'someId')); $this->assertEquals($url, '/page_id/someId/'); }
public function testCreatingSkipsRouteIfReqPartMissing() { $route = new RecursiveRoute('/'); $route->addRoute('module/:page_id/'); $route->addRoute('module/:page_id/:page_title'); $url = $route->createUrl(array('page_id' => 2)); $this->assertEquals($url, '/module/2/'); }
public function testCreatingUsesParameters() { $route = new RecursiveRoute('/static1/:param1/static2/:param2/static3'); $url = $route->createUrl(array('param1' => 'value1', 'param2' => 'value2')); $this->assertEquals($url, '/static1/value1/static2/value2/static3/'); }