@@ -132,6 +132,9 @@ public function testUserHashUserWithSession($arg, $options)
132132 $ cookieString = "PHPSESSID= $ sessionId1; foo=bar; PHPSESSIDsdiuhsdf4535d4f= $ sessionId2 " ;
133133 $ request = Request::create ('/foo ' , 'GET ' , array (), $ cookies , array (), array ('Cookie ' => $ cookieString ));
134134
135+ // Add a cookie which should not be available in the eventual hash request anymore
136+ $ request ->cookies ->set ('foo ' , 'bar ' );
137+
135138 $ hashRequest = Request::create ($ options ['user_hash_uri ' ], $ options ['user_hash_method ' ], array (), array (), array (), $ request ->server ->all ());
136139 $ hashRequest ->attributes ->set ('internalRequest ' , true );
137140 $ hashRequest ->headers ->set ('Accept ' , $ options ['user_hash_accept_header ' ]);
@@ -160,6 +163,7 @@ public function testUserHashUserWithSession($arg, $options)
160163 $ request ->getMethod ();
161164 $ request ->getPathInfo ();
162165 $ that ->assertEquals ($ hashRequest , $ request );
166+ $ that ->assertCount (2 , $ request ->cookies ->all ());
163167
164168 return true ;
165169 }),
@@ -177,6 +181,56 @@ public function testUserHashUserWithSession($arg, $options)
177181 $ this ->assertSame ($ expectedContextHash , $ request ->headers ->get ($ options ['user_hash_header ' ]));
178182 }
179183
184+ /**
185+ * @dataProvider provideConfigOptions
186+ */
187+ public function testUserHashUserWithAuthorizationHeader ($ arg , $ options )
188+ {
189+ $ userContextSubscriber = new UserContextSubscriber ($ arg );
190+
191+ $ request = Request::create ('/foo ' , 'GET ' , array (), array (), array (), array ('HTTP_AUTHORIZATION ' => 'foo ' ));
192+
193+ // Add a cookie which should not be available in the eventual hash request anymore
194+ $ request ->cookies ->set ('foo ' , 'bar ' );
195+
196+ $ hashRequest = Request::create ($ options ['user_hash_uri ' ], $ options ['user_hash_method ' ], array (), array (), array (), $ request ->server ->all ());
197+ $ hashRequest ->attributes ->set ('internalRequest ' , true );
198+ $ hashRequest ->headers ->set ('Accept ' , $ options ['user_hash_accept_header ' ]);
199+
200+ // Ensure request properties have been filled up.
201+ $ hashRequest ->getPathInfo ();
202+ $ hashRequest ->getMethod ();
203+
204+ $ expectedContextHash = 'my_generated_hash ' ;
205+ $ hashResponse = new Response ();
206+ $ hashResponse ->headers ->set ($ options ['user_hash_header ' ], $ expectedContextHash );
207+
208+ $ that = $ this ;
209+ $ this ->kernel
210+ ->expects ($ this ->once ())
211+ ->method ('handle ' )
212+ ->with (
213+ $ this ->callback (function (Request $ request ) use ($ that , $ hashRequest ) {
214+ // we need to call some methods to get the internal fields initialized
215+ $ request ->getMethod ();
216+ $ request ->getPathInfo ();
217+ $ that ->assertEquals ($ hashRequest , $ request );
218+ $ that ->assertCount (0 , $ request ->cookies ->all ());
219+
220+ return true ;
221+ })
222+ )
223+ ->will ($ this ->returnValue ($ hashResponse ));
224+
225+ $ event = new CacheEvent ($ this ->kernel , $ request );
226+
227+ $ userContextSubscriber ->preHandle ($ event );
228+ $ response = $ event ->getResponse ();
229+
230+ $ this ->assertNull ($ response );
231+ $ this ->assertTrue ($ request ->headers ->has ($ options ['user_hash_header ' ]));
232+ $ this ->assertSame ($ expectedContextHash , $ request ->headers ->get ($ options ['user_hash_header ' ]));
233+ }
180234
181235 /**
182236 * @expectedException \InvalidArgumentException
0 commit comments