/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Foundation/Http/KernelTest.php
163 строки
6 KB
Lucas Michot
[13.x] Enforce stricter assertions (#59749)
17 апр 2026, 16:15
Не верифицирован
17 апр 2026, 16:15
92fecdd
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Foundation\Http; use Illuminate\Events\Dispatcher; use Illuminate\Foundation\Application; use Illuminate\Foundation\Events\Terminating; use Illuminate\Foundation\Http\Kernel; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Routing\Router; use PHPUnit\Framework\TestCase; class KernelTest extends TestCase { public function testGetMiddlewareGroups() { $kernel = new Kernel($this->getApplication(), $this->getRouter()); $this->assertSame([], $kernel->getMiddlewareGroups()); } public function testGetRouteMiddleware() { $kernel = new Kernel($this->getApplication(), $this->getRouter()); $this->assertSame([], $kernel->getRouteMiddleware()); } public function testGetMiddlewarePriority() { $kernel = new Kernel($this->getApplication(), $this->getRouter()); $this->assertEquals([ \Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class, \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class, \Illuminate\Routing\Middleware\ThrottleRequests::class, \Illuminate\Routing\Middleware\ThrottleRequestsWithRedis::class, \Illuminate\Contracts\Session\Middleware\AuthenticatesSessions::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Auth\Middleware\Authorize::class, ], $kernel->getMiddlewarePriority()); } public function testAddToMiddlewarePriorityAfter() { $kernel = new Kernel($this->getApplication(), $this->getRouter()); $kernel->addToMiddlewarePriorityAfter( [ \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class, ], \Illuminate\Routing\Middleware\ValidateSignature::class, ); $this->assertEquals([ \Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class, \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class, \Illuminate\Routing\Middleware\ValidateSignature::class, \Illuminate\Routing\Middleware\ThrottleRequests::class, \Illuminate\Routing\Middleware\ThrottleRequestsWithRedis::class, \Illuminate\Contracts\Session\Middleware\AuthenticatesSessions::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Auth\Middleware\Authorize::class, ], $kernel->getMiddlewarePriority()); } public function testAddToMiddlewarePriorityBefore() { $kernel = new Kernel($this->getApplication(), $this->getRouter()); $kernel->addToMiddlewarePriorityBefore( [ \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class, ], \Illuminate\Routing\Middleware\ValidateSignature::class, ); $this->assertEquals([ \Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class, \Illuminate\Routing\Middleware\ValidateSignature::class, \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\Contracts\Auth\Middleware\AuthenticatesRequests::class, \Illuminate\Routing\Middleware\ThrottleRequests::class, \Illuminate\Routing\Middleware\ThrottleRequestsWithRedis::class, \Illuminate\Contracts\Session\Middleware\AuthenticatesSessions::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Auth\Middleware\Authorize::class, ], $kernel->getMiddlewarePriority()); } public function testItTriggersTerminatingEvent() { $called = []; $app = $this->getApplication(); $events = new Dispatcher($app); $app->instance('events', $events); $kernel = new Kernel($app, $this->getRouter()); $app->instance('terminating-middleware', new class($called) { public function __construct(private &$called) { // } public function handle($request, $next) { return $next($request); } public function terminate($request, $response) { $this->called[] = 'terminating middleware'; } }); $kernel->setGlobalMiddleware([ 'terminating-middleware', ]); $events->listen(function (Terminating $terminating) use (&$called) { $called[] = 'terminating event'; }); $app->terminating(function () use (&$called) { $called[] = 'terminating callback'; }); $kernel->terminate(new Request(), new Response()); $this->assertSame([ 'terminating event', 'terminating middleware', 'terminating callback', ], $called); } /** * @return \Illuminate\Contracts\Foundation\Application */ protected function getApplication() { return new Application; } /** * @return \Illuminate\Routing\Router */ protected function getRouter() { return new Router(new Dispatcher); } }