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'); }