Store variables from URI as uriVariables attributes
This commit is contained in:
parent
22a17e42bb
commit
1bb93434b2
|
|
@ -7,6 +7,7 @@ use Psr\Http\Message\ServerRequestInterface;
|
|||
|
||||
class RegexRoute extends Route
|
||||
{
|
||||
private $capturesAttribute = "uriVariables";
|
||||
private $captures;
|
||||
|
||||
public function getType()
|
||||
|
|
@ -35,7 +36,7 @@ class RegexRoute extends Route
|
|||
public function dispatch(ServerRequestInterface $request, ResponseInterface $response, $next)
|
||||
{
|
||||
if ($this->captures) {
|
||||
$request = $request->withAttribute("path", $this->captures);
|
||||
$request = $request->withAttribute($this->capturesAttribute, $this->captures);
|
||||
}
|
||||
return parent::dispatch($request, $response, $next);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ class RegexRouteTest extends \PHPUnit_Framework_TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @covers ::matchesRequestTarget
|
||||
* @covers ::dispatch
|
||||
* @dataProvider matchingRouteProvider
|
||||
*/
|
||||
public function testProvidesCapturesAsRequestAttributes($pattern, $path, $expectedCaptures)
|
||||
|
|
@ -57,7 +59,7 @@ class RegexRouteTest extends \PHPUnit_Framework_TestCase
|
|||
$route->matchesRequestTarget($path);
|
||||
$route->dispatch($request->reveal(), $response->reveal(), $next);
|
||||
|
||||
$request->withAttribute("path", $expectedCaptures)->shouldHaveBeenCalled();
|
||||
$request->withAttribute("uriVariables", $expectedCaptures)->shouldHaveBeenCalled();
|
||||
}
|
||||
|
||||
public function matchingRouteProvider()
|
||||
|
|
@ -78,6 +80,7 @@ class RegexRouteTest extends \PHPUnit_Framework_TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @covers ::matchesRequestTarget
|
||||
* @dataProvider mismatchingRouteProvider
|
||||
*/
|
||||
public function testDoesNotMatchNonmatchingTarget($pattern, $path)
|
||||
|
|
@ -96,6 +99,7 @@ class RegexRouteTest extends \PHPUnit_Framework_TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @covers ::matchesRequestTarget
|
||||
* @dataProvider invalidRouteProvider
|
||||
* @expectedException \RuntimeException
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -56,11 +56,9 @@ class TemplateRouteTest extends \PHPUnit_Framework_TestCase
|
|||
$route->matchesRequestTarget($path);
|
||||
$route->dispatch($request->reveal(), $response->reveal(), $next);
|
||||
|
||||
$request->withAttribute("path", Argument::that(function ($path) use ($expectedCaptures) {
|
||||
$request->withAttribute("uriVariables", Argument::that(function ($path) use ($expectedCaptures) {
|
||||
return array_intersect_assoc($path, $expectedCaptures) == $expectedCaptures;
|
||||
}))->shouldHaveBeenCalled();
|
||||
|
||||
//$request->withAttribute("path", $expectedCaptures)->shouldHaveBeenCalled();
|
||||
}
|
||||
|
||||
public function matchingTemplateProvider()
|
||||
|
|
@ -111,7 +109,7 @@ class TemplateRouteTest extends \PHPUnit_Framework_TestCase
|
|||
$route->matchesRequestTarget($path);
|
||||
$route->dispatch($request->reveal(), $response->reveal(), $next);
|
||||
|
||||
$request->withAttribute("path", Argument::that(function ($path) use ($expectedCaptures) {
|
||||
$request->withAttribute("uriVariables", Argument::that(function ($path) use ($expectedCaptures) {
|
||||
return array_intersect_assoc($path, $expectedCaptures) == $expectedCaptures;
|
||||
}))->shouldHaveBeenCalled();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue