14
14
use PHPUnit \Framework \TestCase ;
15
15
use Symfony \Bundle \WebProfilerBundle \Csp \ContentSecurityPolicyHandler ;
16
16
use Symfony \Bundle \WebProfilerBundle \EventListener \WebDebugToolbarListener ;
17
- use Symfony \Component \HttpFoundation \HeaderBag ;
18
17
use Symfony \Component \HttpFoundation \Request ;
19
18
use Symfony \Component \HttpFoundation \Response ;
20
19
use Symfony \Component \HttpFoundation \Session \Session ;
@@ -63,11 +62,11 @@ public function getInjectToolbarTests()
63
62
/**
64
63
* @dataProvider provideRedirects
65
64
*/
66
- public function testHtmlRedirectionIsIntercepted ($ statusCode, $ hasSession )
65
+ public function testHtmlRedirectionIsIntercepted ($ statusCode )
67
66
{
68
67
$ response = new Response ('Some content ' , $ statusCode );
69
68
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
70
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' html ' , $ hasSession ), HttpKernelInterface::MAIN_REQUEST , $ response );
69
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ( ), HttpKernelInterface::MAIN_REQUEST , $ response );
71
70
72
71
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ('Redirection ' ), true );
73
72
$ listener ->onKernelResponse ($ event );
@@ -80,7 +79,7 @@ public function testNonHtmlRedirectionIsNotIntercepted()
80
79
{
81
80
$ response = new Response ('Some content ' , '301 ' );
82
81
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
83
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' json ' , true ), HttpKernelInterface::MAIN_REQUEST , $ response );
82
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ([], [], [ ' _format ' => ' json ' ] ), HttpKernelInterface::MAIN_REQUEST , $ response );
84
83
85
84
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ('Redirection ' ), true );
86
85
$ listener ->onKernelResponse ($ event );
@@ -94,7 +93,7 @@ public function testToolbarIsInjected()
94
93
$ response = new Response ('<html><head></head><body></body></html> ' );
95
94
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
96
95
97
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MAIN_REQUEST , $ response );
96
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MAIN_REQUEST , $ response );
98
97
99
98
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
100
99
$ listener ->onKernelResponse ($ event );
@@ -110,7 +109,7 @@ public function testToolbarIsNotInjectedOnNonHtmlContentType()
110
109
$ response = new Response ('<html><head></head><body></body></html> ' );
111
110
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
112
111
$ response ->headers ->set ('Content-Type ' , 'text/xml ' );
113
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MAIN_REQUEST , $ response );
112
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MAIN_REQUEST , $ response );
114
113
115
114
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
116
115
$ listener ->onKernelResponse ($ event );
@@ -126,7 +125,7 @@ public function testToolbarIsNotInjectedOnContentDispositionAttachment()
126
125
$ response = new Response ('<html><head></head><body></body></html> ' );
127
126
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
128
127
$ response ->headers ->set ('Content-Disposition ' , 'attachment; filename=test.html ' );
129
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' html ' ), HttpKernelInterface::MAIN_REQUEST , $ response );
128
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ( ), HttpKernelInterface::MAIN_REQUEST , $ response );
130
129
131
130
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
132
131
$ listener ->onKernelResponse ($ event );
@@ -138,11 +137,11 @@ public function testToolbarIsNotInjectedOnContentDispositionAttachment()
138
137
* @depends testToolbarIsInjected
139
138
* @dataProvider provideRedirects
140
139
*/
141
- public function testToolbarIsNotInjectedOnRedirection ($ statusCode, $ hasSession )
140
+ public function testToolbarIsNotInjectedOnRedirection ($ statusCode )
142
141
{
143
142
$ response = new Response ('<html><head></head><body></body></html> ' , $ statusCode );
144
143
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
145
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' html ' , $ hasSession ), HttpKernelInterface::MAIN_REQUEST , $ response );
144
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ( ), HttpKernelInterface::MAIN_REQUEST , $ response );
146
145
147
146
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
148
147
$ listener ->onKernelResponse ($ event );
@@ -153,10 +152,8 @@ public function testToolbarIsNotInjectedOnRedirection($statusCode, $hasSession)
153
152
public function provideRedirects ()
154
153
{
155
154
return [
156
- [301 , true ],
157
- [302 , true ],
158
- [301 , false ],
159
- [302 , false ],
155
+ [301 ],
156
+ [302 ],
160
157
];
161
158
}
162
159
@@ -167,7 +164,7 @@ public function testToolbarIsNotInjectedWhenThereIsNoNoXDebugTokenResponseHeader
167
164
{
168
165
$ response = new Response ('<html><head></head><body></body></html> ' );
169
166
170
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MAIN_REQUEST , $ response );
167
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MAIN_REQUEST , $ response );
171
168
172
169
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
173
170
$ listener ->onKernelResponse ($ event );
@@ -183,7 +180,7 @@ public function testToolbarIsNotInjectedWhenOnSubRequest()
183
180
$ response = new Response ('<html><head></head><body></body></html> ' );
184
181
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
185
182
186
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::SUB_REQUEST , $ response );
183
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::SUB_REQUEST , $ response );
187
184
188
185
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
189
186
$ listener ->onKernelResponse ($ event );
@@ -199,7 +196,7 @@ public function testToolbarIsNotInjectedOnIncompleteHtmlResponses()
199
196
$ response = new Response ('<div>Some content</div> ' );
200
197
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
201
198
202
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MAIN_REQUEST , $ response );
199
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MAIN_REQUEST , $ response );
203
200
204
201
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
205
202
$ listener ->onKernelResponse ($ event );
@@ -215,7 +212,10 @@ public function testToolbarIsNotInjectedOnXmlHttpRequests()
215
212
$ response = new Response ('<html><head></head><body></body></html> ' );
216
213
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
217
214
218
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this ->getRequestMock (true ), HttpKernelInterface::MAIN_REQUEST , $ response );
215
+ $ request = new Request ();
216
+ $ request ->headers ->set ('X-Requested-With ' , 'XMLHttpRequest ' );
217
+
218
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ request , HttpKernelInterface::MAIN_REQUEST , $ response );
219
219
220
220
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
221
221
$ listener ->onKernelResponse ($ event );
@@ -231,7 +231,7 @@ public function testToolbarIsNotInjectedOnNonHtmlRequests()
231
231
$ response = new Response ('<html><head></head><body></body></html> ' );
232
232
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
233
233
234
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' json ' ), HttpKernelInterface::MAIN_REQUEST , $ response );
234
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ([], [], [ ' _format ' => ' json '] ), HttpKernelInterface::MAIN_REQUEST , $ response );
235
235
236
236
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
237
237
$ listener ->onKernelResponse ($ event );
@@ -252,7 +252,7 @@ public function testXDebugUrlHeader()
252
252
->willReturn ('http://mydomain.com/_profiler/xxxxxxxx ' )
253
253
;
254
254
255
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MAIN_REQUEST , $ response );
255
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MAIN_REQUEST , $ response );
256
256
257
257
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock (), false , WebDebugToolbarListener::ENABLED , $ urlGenerator );
258
258
$ listener ->onKernelResponse ($ event );
@@ -273,7 +273,7 @@ public function testThrowingUrlGenerator()
273
273
->willThrowException (new \Exception ('foo ' ))
274
274
;
275
275
276
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MAIN_REQUEST , $ response );
276
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MAIN_REQUEST , $ response );
277
277
278
278
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock (), false , WebDebugToolbarListener::ENABLED , $ urlGenerator );
279
279
$ listener ->onKernelResponse ($ event );
@@ -294,7 +294,7 @@ public function testThrowingErrorCleanup()
294
294
->willThrowException (new \Exception ("This \nmultiline \r\ntabbed text should \tcome out \r on \n \ta single plain \r\nline " ))
295
295
;
296
296
297
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MAIN_REQUEST , $ response );
297
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MAIN_REQUEST , $ response );
298
298
299
299
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock (), false , WebDebugToolbarListener::ENABLED , $ urlGenerator );
300
300
$ listener ->onKernelResponse ($ event );
@@ -307,7 +307,7 @@ public function testCspIsDisabledIfDumperWasUsed()
307
307
$ response = new Response ('<html><head></head><body></body></html> ' );
308
308
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
309
309
310
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MAIN_REQUEST , $ response );
310
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MAIN_REQUEST , $ response );
311
311
312
312
$ cspHandler = $ this ->createMock (ContentSecurityPolicyHandler::class);
313
313
$ cspHandler ->expects ($ this ->once ())
@@ -328,7 +328,7 @@ public function testCspIsKeptEnabledIfDumperWasNotUsed()
328
328
$ response = new Response ('<html><head></head><body></body></html> ' );
329
329
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
330
330
331
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MAIN_REQUEST , $ response );
331
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MAIN_REQUEST , $ response );
332
332
333
333
$ cspHandler = $ this ->createMock (ContentSecurityPolicyHandler::class);
334
334
$ cspHandler ->expects ($ this ->never ())
@@ -344,28 +344,6 @@ public function testCspIsKeptEnabledIfDumperWasNotUsed()
344
344
$ this ->assertEquals ("<html><head></head><body> \nWDT \n</body></html> " , $ response ->getContent ());
345
345
}
346
346
347
- protected function getRequestMock ($ isXmlHttpRequest = false , $ requestFormat = 'html ' , $ hasSession = true )
348
- {
349
- $ request = $ this ->getMockBuilder (Request::class)->setMethods (['getSession ' , 'isXmlHttpRequest ' , 'getRequestFormat ' ])->disableOriginalConstructor ()->getMock ();
350
- $ request ->expects ($ this ->any ())
351
- ->method ('isXmlHttpRequest ' )
352
- ->willReturn ($ isXmlHttpRequest );
353
- $ request ->expects ($ this ->any ())
354
- ->method ('getRequestFormat ' )
355
- ->willReturn ($ requestFormat );
356
-
357
- $ request ->headers = new HeaderBag ();
358
-
359
- if ($ hasSession ) {
360
- $ session = $ this ->createMock (Session::class);
361
- $ request ->expects ($ this ->any ())
362
- ->method ('getSession ' )
363
- ->willReturn ($ session );
364
- }
365
-
366
- return $ request ;
367
- }
368
-
369
347
protected function getTwigMock ($ render = 'WDT ' )
370
348
{
371
349
$ templating = $ this ->createMock (Environment::class);
0 commit comments