@@ -132,6 +132,9 @@ public function testUserHashUserWithSession($arg, $options)
132
132
$ cookieString = "PHPSESSID= $ sessionId1; foo=bar; PHPSESSIDsdiuhsdf4535d4f= $ sessionId2 " ;
133
133
$ request = Request::create ('/foo ' , 'GET ' , array (), $ cookies , array (), array ('Cookie ' => $ cookieString ));
134
134
135
+ // Add a cookie which should not be available in the eventual hash request anymore
136
+ $ request ->cookies ->set ('foo ' , 'bar ' );
137
+
135
138
$ hashRequest = Request::create ($ options ['user_hash_uri ' ], $ options ['user_hash_method ' ], array (), array (), array (), $ request ->server ->all ());
136
139
$ hashRequest ->attributes ->set ('internalRequest ' , true );
137
140
$ hashRequest ->headers ->set ('Accept ' , $ options ['user_hash_accept_header ' ]);
@@ -160,6 +163,7 @@ public function testUserHashUserWithSession($arg, $options)
160
163
$ request ->getMethod ();
161
164
$ request ->getPathInfo ();
162
165
$ that ->assertEquals ($ hashRequest , $ request );
166
+ $ that ->assertCount (2 , $ request ->cookies ->all ());
163
167
164
168
return true ;
165
169
}),
@@ -177,6 +181,56 @@ public function testUserHashUserWithSession($arg, $options)
177
181
$ this ->assertSame ($ expectedContextHash , $ request ->headers ->get ($ options ['user_hash_header ' ]));
178
182
}
179
183
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
+ }
180
234
181
235
/**
182
236
* @expectedException \InvalidArgumentException
0 commit comments