@@ -281,7 +281,7 @@ public function testNotFoundHttpException()
281
281
$ listener ->onKernelControllerArguments ($ event );
282
282
}
283
283
284
- public function testIsGrantedwithExpressionInAttribute ()
284
+ public function testIsGrantedWithExpressionInAttribute ()
285
285
{
286
286
$ authChecker = $ this ->createMock (AuthorizationCheckerInterface::class);
287
287
$ authChecker ->expects ($ this ->once ())
@@ -301,8 +301,10 @@ public function testIsGrantedwithExpressionInAttribute()
301
301
$ listener ->onKernelControllerArguments ($ event );
302
302
}
303
303
304
- public function testIsGrantedwithExpressionInSubject ()
304
+ public function testIsGrantedWithExpressionInSubject ()
305
305
{
306
+ $ request = new Request ();
307
+
306
308
$ authChecker = $ this ->createMock (AuthorizationCheckerInterface::class);
307
309
$ authChecker ->expects ($ this ->once ())
308
310
->method ('isGranted ' )
@@ -314,23 +316,26 @@ public function testIsGrantedwithExpressionInSubject()
314
316
->method ('evaluate ' )
315
317
->with (new Expression ('args["post"].getAuthor() ' ), [
316
318
'args ' => ['post ' => 'postVal ' ],
319
+ 'request ' => $ request ,
317
320
])
318
321
->willReturn ('author ' );
319
322
320
323
$ event = new ControllerArgumentsEvent (
321
324
$ this ->createMock (HttpKernelInterface::class),
322
325
[new IsGrantedAttributeMethodsController (), 'withExpressionInSubject ' ],
323
326
['postVal ' ],
324
- new Request () ,
327
+ $ request ,
325
328
null
326
329
);
327
330
328
331
$ listener = new IsGrantedAttributeListener ($ authChecker , $ expressionLanguage );
329
332
$ listener ->onKernelControllerArguments ($ event );
330
333
}
331
334
332
- public function testIsGrantedwithNestedExpressionInSubject ()
335
+ public function testIsGrantedWithNestedExpressionInSubject ()
333
336
{
337
+ $ request = new Request ();
338
+
334
339
$ authChecker = $ this ->createMock (AuthorizationCheckerInterface::class);
335
340
$ authChecker ->expects ($ this ->once ())
336
341
->method ('isGranted ' )
@@ -342,18 +347,61 @@ public function testIsGrantedwithNestedExpressionInSubject()
342
347
->method ('evaluate ' )
343
348
->with (new Expression ('args["post"].getAuthor() ' ), [
344
349
'args ' => ['post ' => 'postVal ' , 'arg2Name ' => 'arg2Val ' ],
350
+ 'request ' => $ request ,
345
351
])
346
352
->willReturn ('author ' );
347
353
348
354
$ event = new ControllerArgumentsEvent (
349
355
$ this ->createMock (HttpKernelInterface::class),
350
356
[new IsGrantedAttributeMethodsController (), 'withNestedExpressionInSubject ' ],
351
357
['postVal ' , 'arg2Val ' ],
352
- new Request () ,
358
+ $ request ,
353
359
null
354
360
);
355
361
356
362
$ listener = new IsGrantedAttributeListener ($ authChecker , $ expressionLanguage );
357
363
$ listener ->onKernelControllerArguments ($ event );
358
364
}
365
+
366
+ public function testIsGrantedWithRequestAsSubjectAndNoArgument ()
367
+ {
368
+ $ request = new Request ();
369
+
370
+ $ authChecker = $ this ->createMock (AuthorizationCheckerInterface::class);
371
+ $ authChecker ->expects ($ this ->once ())
372
+ ->method ('isGranted ' )
373
+ ->with ('SOME_VOTER ' , $ request )
374
+ ->willReturn (true );
375
+
376
+ $ event = new ControllerArgumentsEvent (
377
+ $ this ->createMock (HttpKernelInterface::class),
378
+ [new IsGrantedAttributeMethodsController (), 'withRequestAsSubjectAndNoArgument ' ],
379
+ [],
380
+ $ request ,
381
+ null
382
+ );
383
+
384
+ $ listener = new IsGrantedAttributeListener ($ authChecker );
385
+ $ listener ->onKernelControllerArguments ($ event );
386
+ }
387
+
388
+ public function testIsGrantedWithRequestAsSubjectAndArgument ()
389
+ {
390
+ $ authChecker = $ this ->createMock (AuthorizationCheckerInterface::class);
391
+ $ authChecker ->expects ($ this ->once ())
392
+ ->method ('isGranted ' )
393
+ ->with ('SOME_VOTER ' , 'foobar ' )
394
+ ->willReturn (true );
395
+
396
+ $ event = new ControllerArgumentsEvent (
397
+ $ this ->createMock (HttpKernelInterface::class),
398
+ [new IsGrantedAttributeMethodsController (), 'withRequestAsSubjectAndArgument ' ],
399
+ ['foobar ' ],
400
+ new Request (),
401
+ null
402
+ );
403
+
404
+ $ listener = new IsGrantedAttributeListener ($ authChecker );
405
+ $ listener ->onKernelControllerArguments ($ event );
406
+ }
359
407
}
0 commit comments