@@ -83,7 +83,7 @@ public static function testOnKernelRequestDataProvider()
8383 'Empty PATCH request ' => array (true , new Request (array (), array (), array (), array (), array (), array (), array ('foo ' )), 'PATCH ' , array ('foo ' ), 'application/json ' ),
8484 'Empty DELETE request ' => array (true , new Request (array (), array (), array (), array (), array (), array (), array ('foo ' )), 'DELETE ' , array ('foo ' ), 'application/json ' ),
8585 'Empty GET request ' => array (false , new Request (array (), array (), array (), array (), array (), array (), array ('foo ' )), 'GET ' , array (), 'application/json ' ),
86- 'POST request with parameters ' => array (false , new Request (array (), array ('bar ' ), array (), array (), array (), array (), array ('foo ' )), 'POST ' , array ('bar ' ), 'application/json ' ),
86+ 'POST request with parameters ' => array (false , new Request (array (), array ('bar ' ), array (), array (), array (), array (' CONTENT_TYPE ' => ' application/x-www-form-urlencoded ' ), array ('foo ' )), 'POST ' , array ('bar ' ), 'application/x-www-form-urlencoded ' ),
8787 'POST request with unallowed format ' => array (false , new Request (array (), array (), array (), array (), array (), array (), array ('foo ' )), 'POST ' , array (), 'application/fooformat ' ),
8888 'POST request with no Content-Type ' => array (true , new Request (array (), array (), array ('_format ' => 'json ' ), array (), array (), array (), array ('foo ' )), 'POST ' , array ('foo ' )),
8989 );
@@ -129,8 +129,38 @@ public function testOnKernelRequestWithNormalizer()
129129 ->method ('getRequest ' )
130130 ->will ($ this ->returnValue ($ request ));
131131
132- $ listener = new BodyListener ($ decoderProvider , false );
133- $ listener ->setArrayNormalizer ($ normalizer );
132+ $ listener = new BodyListener ($ decoderProvider , false , $ normalizer );
133+ $ listener ->onKernelRequest ($ event );
134+
135+ $ this ->assertEquals ($ normalizedData , $ request ->request ->all ());
136+ }
137+
138+ public function testOnKernelRequestNormalizationWithForms ()
139+ {
140+ $ data = array ('foo_bar ' => 'foo_bar ' );
141+ $ normalizedData = array ('fooBar ' => 'foo_bar ' );
142+ $ decoderProvider = $ this ->getMock ('FOS\RestBundle\Decoder\DecoderProviderInterface ' );
143+
144+ $ normalizer = $ this ->getMock ('FOS\RestBundle\Normalizer\ArrayNormalizerInterface ' );
145+ $ normalizer
146+ ->expects ($ this ->once ())
147+ ->method ('normalize ' )
148+ ->with ($ data )
149+ ->will ($ this ->returnValue ($ normalizedData ));
150+
151+ $ request = new Request (array (), $ data , array (), array (), array (), array (), 'foo ' );
152+ $ request ->headers ->set ('Content-Type ' , 'multipart/form-data ' );
153+ $ request ->setMethod ('POST ' );
154+
155+ $ event = $ this ->getMockBuilder ('Symfony\Component\HttpKernel\Event\GetResponseEvent ' )
156+ ->disableOriginalConstructor ()
157+ ->getMock ();
158+
159+ $ event ->expects ($ this ->once ())
160+ ->method ('getRequest ' )
161+ ->will ($ this ->returnValue ($ request ));
162+
163+ $ listener = new BodyListener ($ decoderProvider , false , $ normalizer , true );
134164 $ listener ->onKernelRequest ($ event );
135165
136166 $ this ->assertEquals ($ normalizedData , $ request ->request ->all ());
@@ -175,8 +205,7 @@ public function testOnKernelRequestNormalizationException()
175205 ->method ('getRequest ' )
176206 ->will ($ this ->returnValue ($ request ));
177207
178- $ listener = new BodyListener ($ decoderProvider , false );
179- $ listener ->setArrayNormalizer ($ normalizer );
208+ $ listener = new BodyListener ($ decoderProvider , false , $ normalizer );
180209 $ listener ->onKernelRequest ($ event );
181210 }
182211
0 commit comments