1313
1414use Symfony \Component \HttpFoundation \Request ;
1515use Symfony \Component \HttpKernel \Controller \ControllerReference ;
16- use Symfony \Component \HttpKernel \Fragment \RoutableFragmentRenderer ;
1716
1817class RoutableFragmentRendererTest extends \PHPUnit_Framework_TestCase
1918{
@@ -22,7 +21,7 @@ class RoutableFragmentRendererTest extends \PHPUnit_Framework_TestCase
2221 */
2322 public function testGenerateFragmentUri ($ uri , $ controller )
2423 {
25- $ this ->assertEquals ($ uri , $ this ->getRenderer ()-> doGenerateFragmentUri ($ controller , Request::create ('/ ' )));
24+ $ this ->assertEquals ($ uri , $ this ->callGenerateFragmentUriMethod ($ controller , Request::create ('/ ' )));
2625 }
2726
2827 public function getGenerateFragmentUriData ()
@@ -33,6 +32,7 @@ public function getGenerateFragmentUriData()
3332 array ('http://localhost/_fragment?_path=foo%3Dfoo%26_format%3Djson%26_controller%3Dcontroller ' , new ControllerReference ('controller ' , array ('foo ' => 'foo ' , '_format ' => 'json ' ), array ())),
3433 array ('http://localhost/_fragment?bar=bar&_path=foo%3Dfoo%26_format%3Dhtml%26_controller%3Dcontroller ' , new ControllerReference ('controller ' , array ('foo ' => 'foo ' ), array ('bar ' => 'bar ' ))),
3534 array ('http://localhost/_fragment?foo=foo&_path=_format%3Dhtml%26_controller%3Dcontroller ' , new ControllerReference ('controller ' , array (), array ('foo ' => 'foo ' ))),
35+ array ('http://localhost/_fragment?_path=foo%255B0%255D%3Dfoo%26foo%255B1%255D%3Dbar%26_format%3Dhtml%26_controller%3Dcontroller ' , new ControllerReference ('controller ' , array ('foo ' => array ('foo ' , 'bar ' )), array ())),
3636 );
3737 }
3838
@@ -42,22 +42,36 @@ public function testGenerateFragmentUriWithARequest()
4242 $ request ->attributes ->set ('_format ' , 'json ' );
4343 $ controller = new ControllerReference ('controller ' , array (), array ());
4444
45- $ this ->assertEquals ('http://localhost/_fragment?_path=_format%3Djson%26_controller%3Dcontroller ' , $ this ->getRenderer ()-> doGenerateFragmentUri ($ controller , $ request ));
45+ $ this ->assertEquals ('http://localhost/_fragment?_path=_format%3Djson%26_controller%3Dcontroller ' , $ this ->callGenerateFragmentUriMethod ($ controller , $ request ));
4646 }
4747
48- private function getRenderer ()
48+ /**
49+ * @expectedException LogicException
50+ */
51+ public function testGenerateFragmentUriWithObject ()
4952 {
50- return new Renderer ();
53+ $ controller = new ControllerReference ('controller ' , array ('foo ' => new Foo (), 'bar ' => 'bar ' ), array ());
54+
55+ $ this ->callGenerateFragmentUriMethod ($ controller , Request::create ('/ ' ));
56+ }
57+
58+ private function callGenerateFragmentUriMethod (ControllerReference $ reference , Request $ request )
59+ {
60+ $ renderer = $ this ->getMockForAbstractClass ('Symfony\Component\HttpKernel\Fragment\RoutableFragmentRenderer ' );
61+ $ r = new \ReflectionObject ($ renderer );
62+ $ m = $ r ->getMethod ('generateFragmentUri ' );
63+ $ m ->setAccessible (true );
64+
65+ return $ m ->invoke ($ renderer , $ reference , $ request );
5166 }
5267}
5368
54- class Renderer extends RoutableFragmentRenderer
69+ class Foo
5570{
56- public function render ($ uri , Request $ request , array $ options = array ()) {}
57- public function getName () {}
71+ public $ foo ;
5872
59- public function doGenerateFragmentUri ( ControllerReference $ reference , Request $ request )
73+ public function getFoo ( )
6074 {
61- return parent :: generateFragmentUri ( $ reference , $ request ) ;
75+ return $ this -> foo ;
6276 }
6377}
0 commit comments