8000 [HttpKernel] added unit tests for previous merge · symfony/symfony@7b1dda8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7b1dda8

Browse files
committed
[HttpKernel] added unit tests for previous merge
1 parent 61e0bde commit 7b1dda8

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,9 @@ public function getArguments(Request $request, $controller)
9595
{
9696
if (is_array($controller)) {
9797
$r = new \ReflectionMethod($controller[0], $controller[1]);
98-
} elseif (is_object($controller)) {
99-
if ($controller instanceof \Closure) {
100-
$r = new \ReflectionFunction($controller);
101-
} else {
102-
$r = new \ReflectionObject($controller);
103-
$r = $r->getMethod('__invoke');
104-
}
98+
} elseif (is_object($controller) && !$controller instanceof \Closure) {
99+
$r = new \ReflectionObject($controller);
100+
$r = $r->getMethod('__invoke');
105101
} else {
106102
$r = new \ReflectionFunction($controller);
107103
}

tests/Symfony/Tests/Component/HttpKernel/Controller/ControllerResolverTest.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,18 @@ public function testGetArguments()
102102
$controller = function ($foo) {};
103103
$this->assertEquals(array('foo'), $resolver->getArguments($request, $controller));
104104

105+
$request = Request::create('/');
106+
$request->attributes->set('foo', 'foo');
107+
$controller = function ($foo, $bar = 'bar') {};
108+
$this->assertEquals(array('foo', 'bar'), $resolver->getArguments($request, $controller));
109+
110+
$request = Request::create('/');
111+
$request->attributes->set('foo', 'foo');
112+
$controller = new self();
113+
$this->assertEquals(array('foo', null), $resolver->getArguments($request, $controller));
114+
$request->attributes->set('bar', 'bar');
115+
$this->assertEquals(array('foo', 'bar'), $resolver->getArguments($request, $controller));
116+
105117
$request = Request::create('/');
106118
$request->attributes->set('foo', 'foo');
107119
$request->attributes->set('foobar', 'foobar');
@@ -119,7 +131,7 @@ public function testGetArguments()
119131
$this->assertEquals(array($request), $resolver->getArguments($request, $controller), '->getArguments() injects the request');
120132
}
121133

122-
public function __invoke()
134+
public function __invoke($foo, $bar = null)
123135
{
124136
}
125137

0 commit comments

Comments
 (0)
0