@@ -844,6 +844,37 @@ public function testCanSetMiddlewareOnRegisteredResource()
844
844
$ this ->seeMiddleware (RouteRegistrarMiddlewareStub::class);
845
845
}
846
846
847
+ public function testCanSetMiddlewareForSpecifiedMethodsOnRegisteredResource ()
848
+ {
849
+ $ this ->router ->resource ('users ' , RouteRegistrarControllerStub::class)
850
+ ->middleware ('default ' )
851
+ ->middlewareFor ('index ' , RouteRegistrarMiddlewareStub::class)
852
+ ->middlewareFor (['create ' , 'store ' ], 'one ' )
853
+ ->middlewareFor (['edit ' ], ['one ' , 'two ' ]);
854
+
855
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.index ' )->gatherMiddleware (), ['default ' , RouteRegistrarMiddlewareStub::class]);
856
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.create ' )->gatherMiddleware (), ['default ' , 'one ' ]);
857
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.store ' )->gatherMiddleware (), ['default ' , 'one ' ]);
858
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.show ' )->gatherMiddleware (), ['default ' ]);
859
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.edit ' )->gatherMiddleware (), ['default ' , 'one ' , 'two ' ]);
860
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.update ' )->gatherMiddleware (), ['default ' ]);
861
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.destroy ' )->gatherMiddleware (), ['default ' ]);
862
+
863
+ $ this ->router ->resource ('users ' , RouteRegistrarControllerStub::class)
864
+ ->middlewareFor ('index ' , RouteRegistrarMiddlewareStub::class)
865
+ ->middlewareFor (['create ' , 'store ' ], 'one ' )
866
+ ->middlewareFor (['edit ' ], ['one ' , 'two ' ])
867
+ ->middleware ('default ' );
868
+
869
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.index ' )->gatherMiddleware (), [RouteRegistrarMiddlewareStub::class, 'default ' ]);
870
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.create ' )->gatherMiddleware (), ['one ' , 'default ' ]);
871
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.store ' )->gatherMiddleware (), ['one ' , 'default ' ]);
872
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.show ' )->gatherMiddleware (), ['default ' ]);
873
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.edit ' )->gatherMiddleware (), ['one ' , 'two ' , 'default ' ]);
874
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.update ' )->gatherMiddleware (), ['default ' ]);
875
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.destroy ' )->gatherMiddleware (), ['default ' ]);
876
+ }
877
+
847
878
public function testResourceWithoutMiddlewareRegistration ()
848
879
{
849
880
$ this ->router ->resource ('users ' , RouteRegistrarControllerStub::class)
@@ -856,6 +887,23 @@ public function testResourceWithoutMiddlewareRegistration()
856
887
$ this ->assertEquals (['one ' ], $ this ->getRoute ()->excludedMiddleware ());
857
888
}
858
889
890
+ public function testCanSetExcludedMiddlewareForSpecifiedMethodsOnRegisteredResource ()
891
+ {
892
+ $ this ->router ->resource ('users ' , RouteRegistrarControllerStub::class)
893
+ ->withoutMiddleware ('one ' )
894
+ ->withoutMiddlewareFor ('index ' , 'two ' )
895
+ ->withoutMiddlewareFor (['create ' , 'store ' ], 'three ' )
896
+ ->withoutMiddlewareFor (['edit ' ], ['four ' , 'five ' ]);
897
+
898
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.index ' )->excludedMiddleware (), ['one ' , 'two ' ]);
899
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.create ' )->excludedMiddleware (), ['one ' , 'three ' ]);
900
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.store ' )->excludedMiddleware (), ['one ' , 'three ' ]);
901
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.show ' )->excludedMiddleware (), ['one ' ]);
902
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.edit ' )->excludedMiddleware (), ['one ' , 'four ' , 'five ' ]);
903
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.update ' )->excludedMiddleware (), ['one ' ]);
904
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.destroy ' )->excludedMiddleware (), ['one ' ]);
905
+ }
906
+
859
907
public function testResourceWithMiddlewareAsStringable ()
860
908
{
861
909
$ one = new class implements Stringable
@@ -1338,6 +1386,57 @@ public function testApiSingletonCanIncludeAnySingletonMethods()
1338
1386
$ this ->assertTrue ($ this ->router ->getRoutes ()->hasNamedRoute ('user.edit ' ));
1339
1387
}
1340
1388
1389
+ public function testCanSetMiddlewareForSpecifiedMethodsOnRegisteredSingletonResource ()
1390
+ {
1391
+ $ this ->router ->singleton ('users ' , RouteRegistrarControllerStub::class)
1392
+ ->creatable ()
1393
+ ->destroyable ()
1394
+ ->middleware ('default ' )
1395
+ ->middlewareFor ('show ' , RouteRegistrarMiddlewareStub::class)
1396
+ ->middlewareFor (['create ' , 'store ' ], 'one ' )
1397
+ ->middlewareFor (['edit ' ], ['one ' , 'two ' ]);
1398
+
1399
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.create ' )->gatherMiddleware (), ['default ' , 'one ' ]);
1400
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.store ' )->gatherMiddleware (), ['default ' , 'one ' ]);
1401
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.show ' )->gatherMiddleware (), ['default ' , RouteRegistrarMiddlewareStub::class]);
1402
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.edit ' )->gatherMiddleware (), ['default ' , 'one ' , 'two ' ]);
1403
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.update ' )->gatherMiddleware (), ['default ' ]);
1404
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.destroy ' )->gatherMiddleware (), ['default ' ]);
1405
+
1406
+ $ this ->router ->singleton ('users ' , RouteRegistrarControllerStub::class)
1407
+ ->creatable ()
1408
+ ->destroyable ()
1409
+ ->middlewareFor ('show ' , RouteRegistrarMiddlewareStub::class)
1410
+ ->middlewareFor (['create ' , 'store ' ], 'one ' )
1411
+ ->middlewareFor (['edit ' ], ['one ' , 'two ' ])
1412
+ ->middleware ('default ' );
1413
+
1414
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.create ' )->gatherMiddleware (), ['one ' , 'default ' ]);
1415
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.store ' )->gatherMiddleware (), ['one ' , 'default ' ]);
1416
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.show ' )->gatherMiddleware (), [RouteRegistrarMiddlewareStub::class, 'default ' ]);
1417
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.edit ' )->gatherMiddleware (), ['one ' , 'two ' , 'default ' ]);
1418
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.update ' )->gatherMiddleware (), ['default ' ]);
1419
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.destroy ' )->gatherMiddleware (), ['default ' ]);
1420
+ }
1421
+
1422
+ public function testCanSetExcludedMiddlewareForSpecifiedMethodsOnRegisteredSingletonResource ()
1423
+ {
1424
+ $ this ->router ->singleton ('users ' , RouteRegistrarControllerStub::class)
1425
+ ->creatable ()
1426
+ ->destroyable ()
1427
+ ->withoutMiddleware ('one ' )
1428
+ ->withoutMiddlewareFor ('show ' , 'two ' )
1429
+ ->withoutMiddlewareFor (['create ' , 'store ' ], 'three ' )
1430
+ ->withoutMiddlewareFor (['edit ' ], ['four ' , 'five ' ]);
1431
+
1432
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.create ' )->excludedMiddleware (), ['one ' , 'three ' ]);
1433
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.store ' )->excludedMiddleware (), ['one ' , 'three ' ]);
1434
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.show ' )->excludedMiddleware (), ['one ' , 'two ' ]);
1435
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.edit ' )->excludedMiddleware (), ['one ' , 'four ' , 'five ' ]);
1436
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.update ' )->excludedMiddleware (), ['one ' ]);
1437
+ $ this ->assertEquals ($ this ->router ->getRoutes ()->getByName ('users.destroy ' )->excludedMiddleware (), ['one ' ]);
1438
+ }
1439
+
1341
1440
/**
1342
1441
* Get the last route registered with the router.
1343
1442
*
0 commit comments