public function testParsingDefaultsCanExtendBeyondDefinedParams()
 {
     $route = new RecursiveRoute('/page/:page_id/');
     $route->setDefaults(array('page_id' => 10, 'page_title' => 'home'));
     $parsed = $route->parseUrl('/page/');
     $this->assertArrayHasKey('page_id', $parsed);
     $this->assertTrue($parsed['page_id'] == 10);
     $this->assertArrayHasKey('page_title', $parsed);
     $this->assertTrue($parsed['page_title'] == 'home');
 }
 public function testParsingSkipsRouteIfReqPartMissing()
 {
     $route = new RecursiveRoute('/');
     $route->addRoute('module/:page_id/');
     $route->addRoute('module/:news_id/:news_title');
     $parsed = $route->parseUrl('/module/123');
     $this->assertArrayHasKey('page_id', $parsed);
     $this->assertArrayNotHasKey('news_id', $parsed);
     $this->assertEquals($parsed['page_id'], 123);
 }
 public function testParsingPatternAlsoParsesKeyValuePairs()
 {
     $route = new RecursiveRoute('/static1/:param1/static2/:param2');
     $parsed = $route->parseUrl('static1/value1/static2/value2/param3/value3');
     $this->assertArrayHasKey('param1', $parsed);
     $this->assertTrue($parsed['param1'] == 'value1');
     $this->assertArrayHasKey('param2', $parsed);
     $this->assertTrue($parsed['param2'] == 'value2');
     $this->assertArrayHasKey('param3', $parsed);
     $this->assertTrue($parsed['param3'] == 'value3');
 }