FluentRoutingTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Illuminate\Tests\Integration\Routing;
  3. use Illuminate\Support\Facades\Route;
  4. use Orchestra\Testbench\TestCase;
  5. class FluentRoutingTest extends TestCase
  6. {
  7. public static $value = '';
  8. public function testMiddlewareRunWhenRegisteredAsArrayOrParams()
  9. {
  10. $controller = function () {
  11. return 'Hello World';
  12. };
  13. Route::middleware(Middleware::class, Middleware2::class)
  14. ->get('before', $controller);
  15. Route::get('after', $controller)
  16. ->middleware(Middleware::class, Middleware2::class);
  17. Route::middleware([Middleware::class, Middleware2::class])
  18. ->get('before_array', $controller);
  19. Route::get('after_array', $controller)
  20. ->middleware([Middleware::class, Middleware2::class]);
  21. Route::middleware(Middleware::class)
  22. ->get('before_after', $controller)
  23. ->middleware([Middleware2::class]);
  24. Route::middleware(Middleware::class)
  25. ->middleware(Middleware2::class)
  26. ->get('both_before', $controller);
  27. Route::get('both_after', $controller)
  28. ->middleware(Middleware::class)
  29. ->middleware(Middleware2::class);
  30. $this->assertSame('1_2', $this->get('before')->content());
  31. $this->assertSame('1_2', $this->get('after')->content());
  32. $this->assertSame('1_2', $this->get('before_array')->content());
  33. $this->assertSame('1_2', $this->get('after_array')->content());
  34. $this->assertSame('1_2', $this->get('before_after')->content());
  35. $this->assertSame('1_2', $this->get('both_before')->content());
  36. $this->assertSame('1_2', $this->get('both_after')->content());
  37. }
  38. }
  39. class Middleware
  40. {
  41. public function handle($request, $next)
  42. {
  43. FluentRoutingTest::$value = '1';
  44. return $next($request);
  45. }
  46. }
  47. class Middleware2
  48. {
  49. public function handle()
  50. {
  51. return FluentRoutingTest::$value.'_2';
  52. }
  53. }