13
13
14
14
use PHPUnit \Framework \TestCase ;
15
15
use Symfony \Bundle \WebProfilerBundle \EventListener \WebDebugToolbarListener ;
16
- use Symfony \Component \HttpFoundation \HeaderBag ;
17
16
use Symfony \Component \HttpFoundation \Request ;
18
17
use Symfony \Component \HttpFoundation \Response ;
19
- use Symfony \Component \HttpFoundation \Session \Session ;
20
18
use Symfony \Component \HttpKernel \Event \ResponseEvent ;
21
19
use Symfony \Component \HttpKernel \HttpKernelInterface ;
22
20
use Symfony \Component \HttpKernel \Kernel ;
@@ -61,11 +59,11 @@ public function getInjectToolbarTests()
61
59
/**
62
60
* @dataProvider provideRedirects
63
61
*/
64
- public function testHtmlRedirectionIsIntercepted ($ statusCode, $ hasSession )
62
+ public function testHtmlRedirectionIsIntercepted ($ statusCode )
65
63
{
66
64
$ response = new Response ('Some content ' , $ statusCode );
67
65
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
68
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' html ' , $ hasSession ), HttpKernelInterface::MASTER_REQUEST , $ response );
66
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ( ), HttpKernelInterface::MASTER_REQUEST , $ response );
69
67
70
68
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ('Redirection ' ), true );
71
69
$ listener ->onKernelResponse ($ event );
@@ -78,7 +76,7 @@ public function testNonHtmlRedirectionIsNotIntercepted()
78
76
{
79
77
$ response = new Response ('Some content ' , '301 ' );
80
78
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
81
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' json ' , true ), HttpKernelInterface::MASTER_REQUEST , $ response );
79
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ([], [], [ ' _format ' => ' json ' ] ), HttpKernelInterface::MASTER_REQUEST , $ response );
82
80
83
81
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ('Redirection ' ), true );
84
82
$ listener ->onKernelResponse ($ event );
@@ -92,7 +90,7 @@ public function testToolbarIsInjected()
92
90
$ response = new Response ('<html><head></head><body></body></html> ' );
93
91
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
94
92
95
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MASTER_REQUEST , $ response );
93
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MASTER_REQUEST , $ response );
96
94
97
95
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
98
96
$ listener ->onKernelResponse ($ event );
@@ -108,7 +106,7 @@ public function testToolbarIsNotInjectedOnNonHtmlContentType()
108
106
$ response = new Response ('<html><head></head><body></body></html> ' );
109
107
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
110
108
$ response ->headers ->set ('Content-Type ' , 'text/xml ' );
111
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MASTER_REQUEST , $ response );
109
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MASTER_REQUEST , $ response );
112
110
113
111
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
114
112
$ listener ->onKernelResponse ($ event );
@@ -124,7 +122,7 @@ public function testToolbarIsNotInjectedOnContentDispositionAttachment()
124
122
$ response = new Response ('<html><head></head><body></body></html> ' );
125
123
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
126
124
$ response ->headers ->set ('Content-Disposition ' , 'attachment; filename=test.html ' );
127
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' html ' ), HttpKernelInterface::MASTER_REQUEST , $ response );
125
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ( ), HttpKernelInterface::MASTER_REQUEST , $ response );
128
126
129
127
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
130
128
$ listener ->onKernelResponse ($ event );
@@ -136,11 +134,11 @@ public function testToolbarIsNotInjectedOnContentDispositionAttachment()
136
134
* @depends testToolbarIsInjected
137
135
* @dataProvider provideRedirects
138
136
*/
139
- public function testToolbarIsNotInjectedOnRedirection ($ statusCode, $ hasSession )
137
+ public function testToolbarIsNotInjectedOnRedirection ($ statusCode )
140
138
{
141
139
$ response = new Response ('<html><head></head><body></body></html> ' , $ statusCode );
142
140
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
143
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' html ' , $ hasSession ), HttpKernelInterface::MASTER_REQUEST , $ response );
141
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ( ), HttpKernelInterface::MASTER_REQUEST , $ response );
144
142
145
143
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
146
144
$ listener ->onKernelResponse ($ event );
@@ -151,10 +149,8 @@ public function testToolbarIsNotInjectedOnRedirection($statusCode, $hasSession)
151
149
public function provideRedirects ()
152
150
{
153
151
return [
154
- [301 , true ],
155
- [302 , true ],
156
- [301 , false ],
157
- [302 , false ],
152
+ [301 ],
153
+ [302 ],
158
154
];
159
155
}
160
156
@@ -165,7 +161,7 @@ public function testToolbarIsNotInjectedWhenThereIsNoNoXDebugTokenResponseHeader
165
161
{
166
162
$ response = new Response ('<html><head></head><body></body></html> ' );
167
163
168
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MASTER_REQUEST , $ response );
164
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MASTER_REQUEST , $ response );
169
165
170
166
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
171
167
$ listener ->onKernelResponse ($ event );
@@ -181,7 +177,7 @@ public function testToolbarIsNotInjectedWhenOnSubRequest()
181
177
$ response = new Response ('<html><head></head><body></body></html> ' );
182
178
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
183
179
184
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::SUB_REQUEST , $ response );
180
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::SUB_REQUEST , $ response );
185
181
186
182
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
187
183
$ listener ->onKernelResponse ($ event );
@@ -197,7 +193,7 @@ public function testToolbarIsNotInjectedOnIncompleteHtmlResponses()
197
193
$ response = new Response ('<div>Some content</div> ' );
198
194
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
199
195
200
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MASTER_REQUEST , $ response );
196
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MASTER_REQUEST , $ response );
201
197
202
198
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
203
199
$ listener ->onKernelResponse ($ event );
@@ -213,7 +209,10 @@ public function testToolbarIsNotInjectedOnXmlHttpRequests()
213
209
$ response = new Response ('<html><head></head><body></body></html> ' );
214
210
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
215
211
216
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this ->getRequestMock (true ), HttpKernelInterface::MASTER_REQUEST , $ response );
212
+ $ request = new Request ();
213
+ $ request ->headers ->set ('X-Requested-With ' , 'XMLHttpRequest ' );
214
+
215
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ request , HttpKernelInterface::MASTER_REQUEST , $ response );
217
216
218
217
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
219
218
$ listener ->onKernelResponse ($ event );
@@ -229,7 +228,7 @@ public function testToolbarIsNotInjectedOnNonHtmlRequests()
229
228
$ response = new Response ('<html><head></head><body></body></html> ' );
230
229
$ response ->headers ->set ('X-Debug-Token ' , 'xxxxxxxx ' );
231
230
232
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock ( false , ' json ' ), HttpKernelInterface::MASTER_REQUEST , $ response );
231
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request ([], [], [ ' _format ' => ' json '] ), HttpKernelInterface::MASTER_REQUEST , $ response );
233
232
234
233
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock ());
235
234
$ listener ->onKernelResponse ($ event );
@@ -250,7 +249,7 @@ public function testXDebugUrlHeader()
250
249
->willReturn ('http://mydomain.com/_profiler/xxxxxxxx ' )
251
250
;
252
251
253
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MASTER_REQUEST , $ response );
252
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MASTER_REQUEST , $ response );
254
253
255
254
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock (), false , WebDebugToolbarListener::ENABLED , $ urlGenerator );
256
255
$ listener ->onKernelResponse ($ event );
@@ -271,7 +270,7 @@ public function testThrowingUrlGenerator()
271
270
->willThrowException (new \Exception ('foo ' ))
272
271
;
273
272
274
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MASTER_REQUEST , $ response );
273
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MASTER_REQUEST , $ response );
275
274
276
275
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock (), false , WebDebugToolbarListener::ENABLED , $ urlGenerator );
277
276
$ listener ->onKernelResponse ($ event );
@@ -292,36 +291,14 @@ public function testThrowingErrorCleanup()
292
291
->willThrowException (new \Exception ("This \nmultiline \r\ntabbed text should \tcome out \r on \n \ta single plain \r\nline " ))
293
292
;
294
293
295
- $ event = new ResponseEvent ($ this ->createMock (Kernel::class), $ this -> getRequestMock (), HttpKernelInterface::MASTER_REQUEST , $ response );
294
+ $ event = new ResponseEvent ($ this ->createMock (Kernel::class), new Request (), HttpKernelInterface::MASTER_REQUEST , $ response );
296
295
297
296
$ listener = new WebDebugToolbarListener ($ this ->getTwigMock (), false , WebDebugToolbarListener::ENABLED , $ urlGenerator );
298
297
$ listener ->onKernelResponse ($ event );
299
298
300
299
$ this ->assertEquals ('Exception: This multiline tabbed text should come out on a single plain line ' , $ response ->headers ->get ('X-Debug-Error ' ));
301
300
}
302
301
303
- protected function getRequestMock ($ isXmlHttpRequest = false , $ requestFormat = 'html ' , $ hasSession = true )
304
- {
305
- $ request = $ this ->getMockBuilder (Request::class)->setMethods (['getSession ' , 'isXmlHttpRequest ' , 'getRequestFormat ' ])->disableOriginalConstructor ()->getMock ();
306
- $ request ->expects ($ this ->any ())
307
- ->method ('isXmlHttpRequest ' )
308
- ->willReturn ($ isXmlHttpRequest );
309
- $ request ->expects ($ this ->any ())
310
- ->method ('getRequestFormat ' )
311
- ->willReturn ($ requestFormat );
312
-
313
- $ request ->headers = new HeaderBag ();
314
-
315
- if ($ hasSession ) {
316
- $ session = $ this ->createMock (Session::class);
317
- $ request ->expects ($ this ->any ())
318
- ->method ('getSession ' )
319
- ->willReturn ($ session );
320
- }
321
-
322
- return $ request ;
323
- }
324
-
325
302
protected function getTwigMock ($ render = 'WDT ' )
326
303
{
327
304
$ templating = $ this ->createMock (Environment::class);
0 commit comments