diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
index 82499b9140..0f8f1230f2 100644
--- a/.github/workflows/unit-tests.yml
+++ b/.github/workflows/unit-tests.yml
@@ -184,10 +184,12 @@ jobs:
# matrix.mode = high-deps
echo "$COMPONENTS" | xargs -n1 | parallel -j +3 "_run_tests {} 'cd {} && $COMPOSER_UP && $PHPUNIT$LEGACY'" || X=1
+ # get a list of the patched components (relies on .github/build-packages.php being called in the previous step)
(cd src/Symfony/Component/HttpFoundation; mv composer.bak composer.json)
- COMPONENTS=$(git diff --name-only src/ | grep composer.json || true)
+ PATCHED_COMPONENTS=$(git diff --name-only src/ | grep composer.json || true)
- if [[ $COMPONENTS && $SYMFONY_VERSION = *.4 ]]; then
+ # for x.4 branches, checkout and test previous major with the patched components (only for patched components)
+ if [[ $PATCHED_COMPONENTS && $SYMFONY_VERSION = *.4 ]]; then
export FLIP='^'
SYMFONY_VERSION=$(echo $SYMFONY_VERSION | awk '{print $1 - 1}')
echo -e "\\n\\e[33;1mChecking out Symfony $SYMFONY_VERSION and running tests with patched components as deps\\e[0m"
@@ -195,13 +197,13 @@ jobs:
export SYMFONY_REQUIRE=">=$SYMFONY_VERSION"
git fetch --depth=2 origin $SYMFONY_VERSION
git checkout -m FETCH_HEAD
- COMPONENTS=$(echo "$COMPONENTS" | xargs dirname | xargs -n1 -I{} bash -c "[ -e '{}/phpunit.xml.dist' ] && echo '{}'" | sort || true)
+ PATCHED_COMPONENTS=$(echo "$PATCHED_COMPONENTS" | xargs dirname | xargs -n1 -I{} bash -c "[ -e '{}/phpunit.xml.dist' ] && echo '{}'" | sort || true)
(cd src/Symfony/Component/HttpFoundation; composer require --dev --no-update mongodb/mongodb)
- if [[ $COMPONENTS ]]; then
+ if [[ $PATCHED_COMPONENTS ]]; then
echo "::group::install phpunit"
./phpunit install
echo "::endgroup::"
- echo "$COMPONENTS" | parallel -j +3 "_run_tests {} 'cd {} && rm composer.lock vendor/ -Rf && $COMPOSER_UP && $PHPUNIT$LEGACY'" || X=1
+ echo "$PATCHED_COMPONENTS" | parallel -j +3 "_run_tests {} 'cd {} && rm composer.lock vendor/ -Rf && $COMPOSER_UP && $PHPUNIT$LEGACY'" || X=1
fi
fi
diff --git a/src/Symfony/Bridge/Monolog/Tests/Processor/ConsoleCommandProcessorTest.php b/src/Symfony/Bridge/Monolog/Tests/Processor/ConsoleCommandProcessorTest.php
index 6ee30da38a..424f9ce10d 100644
--- a/src/Symfony/Bridge/Monolog/Tests/Processor/ConsoleCommandProcessorTest.php
+++ b/src/Symfony/Bridge/Monolog/Tests/Processor/ConsoleCommandProcessorTest.php
@@ -16,6 +16,7 @@ use Symfony\Bridge\Monolog\Processor\ConsoleCommandProcessor;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Event\ConsoleEvent;
use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
class ConsoleCommandProcessorTest extends TestCase
{
@@ -66,10 +67,7 @@ class ConsoleCommandProcessorTest extends TestCase
$input->method('getOptions')->willReturn(self::TEST_OPTIONS);
$command = $this->createMock(Command::class);
$command->method('getName')->willReturn(self::TEST_NAME);
- $consoleEvent = $this->createMock(ConsoleEvent::class);
- $consoleEvent->method('getCommand')->willReturn($command);
- $consoleEvent->method('getInput')->willReturn($input);
- return $consoleEvent;
+ return new ConsoleEvent($command, $input, $this->createMock(OutputInterface::class));
}
}
diff --git a/src/Symfony/Bundle/WebProfilerBundle/Tests/EventListener/WebDebugToolbarListenerTest.php b/src/Symfony/Bundle/WebProfilerBundle/Tests/EventListener/WebDebugToolbarListenerTest.php
index 01d586346a..60c430f9b0 100644
--- a/src/Symfony/Bundle/WebProfilerBundle/Tests/EventListener/WebDebugToolbarListenerTest.php
+++ b/src/Symfony/Bundle/WebProfilerBundle/Tests/EventListener/WebDebugToolbarListenerTest.php
@@ -13,10 +13,8 @@ namespace Symfony\Bundle\WebProfilerBundle\Tests\EventListener;
use PHPUnit\Framework\TestCase;
use Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener;
-use Symfony\Component\HttpFoundation\HeaderBag;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\Kernel;
@@ -61,11 +59,11 @@ class WebDebugToolbarListenerTest extends TestCase
/**
* @dataProvider provideRedirects
*/
- public function testHtmlRedirectionIsIntercepted($statusCode, $hasSession)
+ public function testHtmlRedirectionIsIntercepted($statusCode)
{
$response = new Response('Some content', $statusCode);
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(false, 'html', $hasSession), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock('Redirection'), true);
$listener->onKernelResponse($event);
@@ -78,7 +76,7 @@ class WebDebugToolbarListenerTest extends TestCase
{
$response = new Response('Some content', '301');
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(false, 'json', true), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request([], [], ['_format' => 'json']), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock('Redirection'), true);
$listener->onKernelResponse($event);
@@ -92,7 +90,7 @@ class WebDebugToolbarListenerTest extends TestCase
$response = new Response('
');
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock());
$listener->onKernelResponse($event);
@@ -108,7 +106,7 @@ class WebDebugToolbarListenerTest extends TestCase
$response = new Response('');
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
$response->headers->set('Content-Type', 'text/xml');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock());
$listener->onKernelResponse($event);
@@ -124,7 +122,7 @@ class WebDebugToolbarListenerTest extends TestCase
$response = new Response('');
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
$response->headers->set('Content-Disposition', 'attachment; filename=test.html');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(false, 'html'), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock());
$listener->onKernelResponse($event);
@@ -136,11 +134,11 @@ class WebDebugToolbarListenerTest extends TestCase
* @depends testToolbarIsInjected
* @dataProvider provideRedirects
*/
- public function testToolbarIsNotInjectedOnRedirection($statusCode, $hasSession)
+ public function testToolbarIsNotInjectedOnRedirection($statusCode)
{
$response = new Response('', $statusCode);
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(false, 'html', $hasSession), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock());
$listener->onKernelResponse($event);
@@ -151,10 +149,8 @@ class WebDebugToolbarListenerTest extends TestCase
public function provideRedirects()
{
return [
- [301, true],
- [302, true],
- [301, false],
- [302, false],
+ [301],
+ [302],
];
}
@@ -165,7 +161,7 @@ class WebDebugToolbarListenerTest extends TestCase
{
$response = new Response('');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock());
$listener->onKernelResponse($event);
@@ -181,7 +177,7 @@ class WebDebugToolbarListenerTest extends TestCase
$response = new Response('');
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(), HttpKernelInterface::SUB_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::SUB_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock());
$listener->onKernelResponse($event);
@@ -197,7 +193,7 @@ class WebDebugToolbarListenerTest extends TestCase
$response = new Response('Some content
');
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock());
$listener->onKernelResponse($event);
@@ -213,7 +209,10 @@ class WebDebugToolbarListenerTest extends TestCase
$response = new Response('');
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(true), HttpKernelInterface::MASTER_REQUEST, $response);
+ $request = new Request();
+ $request->headers->set('X-Requested-With', 'XMLHttpRequest');
+
+ $event = new ResponseEvent($this->createMock(Kernel::class), $request, HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock());
$listener->onKernelResponse($event);
@@ -229,7 +228,7 @@ class WebDebugToolbarListenerTest extends TestCase
$response = new Response('');
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(false, 'json'), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request([], [], ['_format' => 'json']), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock());
$listener->onKernelResponse($event);
@@ -250,7 +249,7 @@ class WebDebugToolbarListenerTest extends TestCase
->willReturn('http://mydomain.com/_profiler/xxxxxxxx')
;
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, $urlGenerator);
$listener->onKernelResponse($event);
@@ -271,7 +270,7 @@ class WebDebugToolbarListenerTest extends TestCase
->willThrowException(new \Exception('foo'))
;
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, $urlGenerator);
$listener->onKernelResponse($event);
@@ -292,7 +291,7 @@ class WebDebugToolbarListenerTest extends TestCase
->willThrowException(new \Exception("This\nmultiline\r\ntabbed text should\tcome out\r on\n \ta single plain\r\nline"))
;
- $event = new ResponseEvent($this->createMock(Kernel::class), $this->getRequestMock(), HttpKernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(Kernel::class), new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
$listener = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, $urlGenerator);
$listener->onKernelResponse($event);
@@ -300,28 +299,6 @@ class WebDebugToolbarListenerTest extends TestCase
$this->assertEquals('Exception: This multiline tabbed text should come out on a single plain line', $response->headers->get('X-Debug-Error'));
}
- protected function getRequestMock($isXmlHttpRequest = false, $requestFormat = 'html', $hasSession = true)
- {
- $request = $this->getMockBuilder(Request::class)->setMethods(['getSession', 'isXmlHttpRequest', 'getRequestFormat'])->disableOriginalConstructor()->getMock();
- $request->expects($this->any())
- ->method('isXmlHttpRequest')
- ->willReturn($isXmlHttpRequest);
- $request->expects($this->any())
- ->method('getRequestFormat')
- ->willReturn($requestFormat);
-
- $request->headers = new HeaderBag();
-
- if ($hasSession) {
- $session = $this->createMock(Session::class);
- $request->expects($this->any())
- ->method('getSession')
- ->willReturn($session);
- }
-
- return $request;
- }
-
protected function getTwigMock($render = 'WDT')
{
$templating = $this->createMock(Environment::class);
diff --git a/src/Symfony/Component/ErrorHandler/Resources/views/exception_full.html.php b/src/Symfony/Component/ErrorHandler/Resources/views/exception_full.html.php
index 5e8b043243..04f0fd5798 100644
--- a/src/Symfony/Component/ErrorHandler/Resources/views/exception_full.html.php
+++ b/src/Symfony/Component/ErrorHandler/Resources/views/exception_full.html.php
@@ -28,13 +28,6 @@
Symfony Docs
-
-
diff --git a/src/Symfony/Component/HttpKernel/HttpCache/Store.php b/src/Symfony/Component/HttpKernel/HttpCache/Store.php
index d3a79d7c9d..343123e6e4 100644
--- a/src/Symfony/Component/HttpKernel/HttpCache/Store.php
+++ b/src/Symfony/Component/HttpKernel/HttpCache/Store.php
@@ -298,7 +298,7 @@ class Store implements StoreInterface
return [];
}
- return unserialize($entries);
+ return unserialize($entries) ?: [];
}
/**
diff --git a/src/Symfony/Component/HttpKernel/Tests/EventListener/AddRequestFormatsListenerTest.php b/src/Symfony/Component/HttpKernel/Tests/EventListener/AddRequestFormatsListenerTest.php
index fab9a8a38f..9b3c1a2e58 100644
--- a/src/Symfony/Component/HttpKernel/Tests/EventListener/AddRequestFormatsListenerTest.php
+++ b/src/Symfony/Component/HttpKernel/Tests/EventListener/AddRequestFormatsListenerTest.php
@@ -16,6 +16,7 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\EventListener\AddRequestFormatsListener;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\KernelEvents;
/**
@@ -54,7 +55,7 @@ class AddRequestFormatsListenerTest extends TestCase
public function testSetAdditionalFormats()
{
$request = $this->createMock(Request::class);
- $event = $this->getRequestEventMock($request);
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$request->expects($this->once())
->method('setFormat')
@@ -62,14 +63,4 @@ class AddRequestFormatsListenerTest extends TestCase
$this->listener->onKernelRequest($event);
}
-
- protected function getRequestEventMock(Request $request)
- {
- $event = $this->createMock(RequestEvent::class);
- $event->expects($this->any())
- ->method('getRequest')
- ->willReturn($request);
-
- return $event;
- }
}
diff --git a/src/Symfony/Component/HttpKernel/Tests/EventListener/DisallowRobotsIndexingListenerTest.php b/src/Symfony/Component/HttpKernel/Tests/EventListener/DisallowRobotsIndexingListenerTest.php
index 6534ebf4e2..4a05d65188 100644
--- a/src/Symfony/Component/HttpKernel/Tests/EventListener/DisallowRobotsIndexingListenerTest.php
+++ b/src/Symfony/Component/HttpKernel/Tests/EventListener/DisallowRobotsIndexingListenerTest.php
@@ -29,7 +29,7 @@ class DisallowRobotsIndexingListenerTest extends TestCase
$response = new Response(...$responseArgs);
$listener = new DisallowRobotsIndexingListener();
- $event = new ResponseEvent($this->createMock(HttpKernelInterface::class), $this->createMock(Request::class), KernelInterface::MASTER_REQUEST, $response);
+ $event = new ResponseEvent($this->createMock(HttpKernelInterface::class), new Request(), KernelInterface::MASTER_REQUEST, $response);
$listener->onResponse($event);
diff --git a/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php b/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php
index ac6175d98f..5e45b29620 100644
--- a/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php
+++ b/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php
@@ -61,9 +61,7 @@ class SessionListenerTest extends TestCase
$request = new Request();
$listener = new SessionListener($container);
- $event = $this->createMock(RequestEvent::class);
- $event->expects($this->exactly(2))->method('isMasterRequest')->willReturn(true);
- $event->expects($this->once())->method('getRequest')->willReturn($request);
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener->onKernelRequest($event);
diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/AbstractPreAuthenticatedListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/AbstractPreAuthenticatedListenerTest.php
index 83909a73ad..a97d4d125e 100644
--- a/src/Symfony/Component/Security/Http/Tests/Firewall/AbstractPreAuthenticatedListenerTest.php
+++ b/src/Symfony/Component/Security/Http/Tests/Firewall/AbstractPreAuthenticatedListenerTest.php
@@ -14,6 +14,7 @@ namespace Symfony\Component\Security\Http\Tests\Firewall;
use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Event\RequestEvent;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
use Symfony\Component\Security\Core\Authentication\Token\PreAuthenticatedToken;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
@@ -62,14 +63,7 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
->method('getPreAuthenticatedData')
->willReturn($userCredentials);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
-
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
public function testHandleWhenAuthenticationFails()
@@ -109,14 +103,7 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
->method('getPreAuthenticatedData')
->willReturn($userCredentials);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
-
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
public function testHandleWhenAuthenticationFailsWithDifferentToken()
@@ -158,12 +145,7 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
->method('getPreAuthenticatedData')
->willReturn($userCredentials);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener($event);
}
@@ -200,14 +182,7 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
->method('getPreAuthenticatedData')
->willReturn($userCredentials);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
-
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
public function testHandleWithAnInvalidSimilarToken()
@@ -250,13 +225,6 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
->method('getPreAuthenticatedData')
->willReturn($userCredentials);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
-
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
}
diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/BasicAuthenticationListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/BasicAuthenticationListenerTest.php
index f1e6c8bca7..b3bf2f9341 100644
--- a/src/Symfony/Component/Security/Http/Tests/Firewall/BasicAuthenticationListenerTest.php
+++ b/src/Symfony/Component/Security/Http/Tests/Firewall/BasicAuthenticationListenerTest.php
@@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\RequestEvent;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
use Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager;
use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface;
@@ -64,14 +65,7 @@ class BasicAuthenticationListenerTest extends TestCase
$this->createMock(AuthenticationEntryPointInterface::class)
);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
-
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
public function testHandleWhenAuthenticationFails()
@@ -109,19 +103,11 @@ class BasicAuthenticationListenerTest extends TestCase
$authenticationEntryPoint
);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
- $event
- ->expects($this->once())
- ->method('setResponse')
- ->with($this->equalTo($response))
- ;
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener($event);
+
+ $this->assertSame($response, $event->getResponse());
}
public function testHandleWithNoUsernameServerParameter()
@@ -141,14 +127,7 @@ class BasicAuthenticationListenerTest extends TestCase
$this->createMock(AuthenticationEntryPointInterface::class)
);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
-
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
public function testHandleWithASimilarAuthenticatedToken()
@@ -177,14 +156,7 @@ class BasicAuthenticationListenerTest extends TestCase
$this->createMock(AuthenticationEntryPointInterface::class)
);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
-
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
public function testItRequiresProviderKey()
@@ -236,18 +208,10 @@ class BasicAuthenticationListenerTest extends TestCase
$authenticationEntryPoint
);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
- $event
- ->expects($this->once())
- ->method('setResponse')
- ->with($this->equalTo($response))
- ;
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener($event);
+
+ $this->assertSame($response, $event->getResponse());
}
}
diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/ChannelListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/ChannelListenerTest.php
index 42dd734fca..5fab54c132 100644
--- a/src/Symfony/Component/Security/Http/Tests/Firewall/ChannelListenerTest.php
+++ b/src/Symfony/Component/Security/Http/Tests/Firewall/ChannelListenerTest.php
@@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\RequestEvent;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\Security\Http\AccessMapInterface;
use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface;
use Symfony\Component\Security\Http\Firewall\ChannelListener;
@@ -44,19 +45,12 @@ class ChannelListenerTest extends TestCase
->method('start')
;
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
- $event
- ->expects($this->never())
- ->method('setResponse')
- ;
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener = new ChannelListener($accessMap, $entryPoint);
$listener($event);
+
+ $this->assertNull($event->getResponse());
}
public function testHandleWithSecuredRequestAndHttpsChannel()
@@ -82,19 +76,12 @@ class ChannelListenerTest extends TestCase
->method('start')
;
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
- $event
- ->expects($this->never())
- ->method('setResponse')
- ;
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener = new ChannelListener($accessMap, $entryPoint);
$listener($event);
+
+ $this->assertNull($event->getResponse());
}
public function testHandleWithNotSecuredRequestAndHttpsChannel()
@@ -124,20 +111,12 @@ class ChannelListenerTest extends TestCase
->willReturn($response)
;
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
- $event
- ->expects($this->once())
- ->method('setResponse')
- ->with($this->equalTo($response))
- ;
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener = new ChannelListener($accessMap, $entryPoint);
$listener($event);
+
+ $this->assertSame($response, $event->getResponse());
}
public function testHandleWithSecuredRequestAndHttpChannel()
@@ -167,19 +146,11 @@ class ChannelListenerTest extends TestCase
->willReturn($response)
;
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
- $event
- ->expects($this->once())
- ->method('setResponse')
- ->with($this->equalTo($response))
- ;
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener = new ChannelListener($accessMap, $entryPoint);
$listener($event);
+
+ $this->assertSame($response, $event->getResponse());
}
}
diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/ContextListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/ContextListenerTest.php
index 016c429e4c..fca4ccfc17 100644
--- a/src/Symfony/Component/Security/Http/Tests/Firewall/ContextListenerTest.php
+++ b/src/Symfony/Component/Security/Http/Tests/Firewall/ContextListenerTest.php
@@ -146,13 +146,9 @@ class ContextListenerTest extends TestCase
public function testInvalidTokenInSession($token)
{
$tokenStorage = $this->createMock(TokenStorageInterface::class);
- $event = $this->createMock(RequestEvent::class);
$request = $this->createMock(Request::class);
$session = $this->createMock(SessionInterface::class);
- $event->expects($this->any())
- ->method('getRequest')
- ->willReturn($request);
$request->expects($this->any())
->method('hasPreviousSession')
->willReturn(true);
@@ -168,7 +164,7 @@ class ContextListenerTest extends TestCase
->with(null);
$listener = new ContextListener($tokenStorage, [], 'key123');
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
public function provideInvalidToken()
@@ -186,22 +182,13 @@ class ContextListenerTest extends TestCase
{
$tokenStorage = $this->createMock(TokenStorageInterface::class);
$dispatcher = $this->createMock(EventDispatcherInterface::class);
- $event = $this->createMock(RequestEvent::class);
-
$listener = new ContextListener($tokenStorage, [], 'key123', null, $dispatcher);
- $event->expects($this->any())
- ->method('isMasterRequest')
- ->willReturn(true);
- $event->expects($this->any())
- ->method('getRequest')
- ->willReturn($this->createMock(Request::class));
-
$dispatcher->expects($this->once())
->method('addListener')
->with(KernelEvents::RESPONSE, [$listener, 'onKernelResponse']);
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), new Request(), HttpKernelInterface::MASTER_REQUEST));
}
public function testOnKernelResponseListenerRemovesItself()
@@ -234,14 +221,11 @@ class ContextListenerTest extends TestCase
$request = $this->createMock(Request::class);
$request->expects($this->any())->method('hasPreviousSession')->willReturn(false);
- $event = $this->createMock(RequestEvent::class);
- $event->expects($this->any())->method('getRequest')->willReturn($request);
-
$tokenStorage = $this->createMock(TokenStorageInterface::class);
$tokenStorage->expects($this->once())->method('setToken')->with(null);
$listener = new ContextListener($tokenStorage, [], 'key123');
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
public function testIfTokenIsDeauthenticated()
diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php
index effccd6a8c..e5aa1d281c 100644
--- a/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php
+++ b/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php
@@ -17,6 +17,7 @@ use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\RequestEvent;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Exception\LogoutException;
@@ -36,19 +37,19 @@ class LogoutListenerTest extends TestCase
$dispatcher = $this->getEventDispatcher();
[$listener, , $httpUtils, $options] = $this->getListener($dispatcher);
- [$event, $request] = $this->getRequestEvent();
-
$logoutEventDispatched = false;
- $dispatcher->addListener(LogoutEvent::class, function (LogoutEvent $event) use (&$logoutEventDispatched) {
+ $dispatcher->addListener(LogoutEvent::class, function () use (&$logoutEventDispatched) {
$logoutEventDispatched = true;
});
+ $request = new Request();
+
$httpUtils->expects($this->once())
->method('checkRequestPath')
->with($request, $options['logout_path'])
->willReturn(false);
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
$this->assertFalse($logoutEventDispatched, 'LogoutEvent should not have been dispatched.');
}
@@ -60,8 +61,7 @@ class LogoutListenerTest extends TestCase
[$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($dispatcher, $tokenManager);
- [$event, $request] = $this->getRequestEvent();
-
+ $request = new Request();
$request->query->set('_csrf_token', 'token');
$httpUtils->expects($this->once())
@@ -86,11 +86,11 @@ class LogoutListenerTest extends TestCase
->method('setToken')
->with(null);
- $event->expects($this->once())
- ->method('setResponse')
- ->with($response);
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener($event);
+
+ $this->assertSame($response, $event->getResponse());
}
public function testHandleMatchedPathWithoutCsrfValidation()
@@ -98,7 +98,7 @@ class LogoutListenerTest extends TestCase
$dispatcher = $this->getEventDispatcher();
[$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($dispatcher);
- [$event, $request] = $this->getRequestEvent();
+ $request = new Request();
$httpUtils->expects($this->once())
->method('checkRequestPath')
@@ -118,11 +118,11 @@ class LogoutListenerTest extends TestCase
->method('setToken')
->with(null);
- $event->expects($this->once())
- ->method('setResponse')
- ->with($response);
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener($event);
+
+ $this->assertSame($response, $event->getResponse());
}
public function testNoResponseSet()
@@ -131,14 +131,14 @@ class LogoutListenerTest extends TestCase
[$listener, , $httpUtils, $options] = $this->getListener();
- [$event, $request] = $this->getRequestEvent();
+ $request = new Request();
$httpUtils->expects($this->once())
->method('checkRequestPath')
->with($request, $options['logout_path'])
->willReturn(true);
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
public function testCsrfValidationFails()
@@ -148,8 +148,7 @@ class LogoutListenerTest extends TestCase
[$listener, , $httpUtils, $options] = $this->getListener(null, $tokenManager);
- [$event, $request] = $this->getRequestEvent();
-
+ $request = new Request();
$request->query->set('_csrf_token', 'token');
$httpUtils->expects($this->once())
@@ -161,7 +160,7 @@ class LogoutListenerTest extends TestCase
->method('isTokenValid')
->willReturn(false);
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
/**
@@ -179,7 +178,7 @@ class LogoutListenerTest extends TestCase
$token = $this->getToken();
$tokenStorage->expects($this->any())->method('getToken')->willReturn($token);
- [$event, $request] = $this->getRequestEvent();
+ $request = new Request();
$httpUtils->expects($this->once())
->method('checkRequestPath')
@@ -193,9 +192,11 @@ class LogoutListenerTest extends TestCase
$handler->expects($this->once())->method('logout')->with($request, $response, $token);
$listener->addHandler($handler);
- $event->expects($this->once())->method('setResponse')->with($this->identicalTo($response));
+ $event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
$listener($event);
+
+ $this->assertSame($response, $event->getResponse());
}
private function getTokenManager()
@@ -208,17 +209,6 @@ class LogoutListenerTest extends TestCase
return $this->createMock(TokenStorageInterface::class);
}
- private function getRequestEvent()
- {
- $event = $this->createMock(RequestEvent::class);
-
- $event->expects($this->any())
- ->method('getRequest')
- ->willReturn($request = new Request());
-
- return [$event, $request];
- }
-
private function getHttpUtils()
{
return $this->createMock(HttpUtils::class);
diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php
index 2ae8abc230..42c493cfaa 100644
--- a/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php
+++ b/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php
@@ -16,7 +16,6 @@ use Psr\Log\LoggerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
-use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
@@ -363,11 +362,6 @@ class RememberMeListenerTest extends TestCase
return $event;
}
- protected function getResponseEvent(): ResponseEvent
- {
- return $this->createMock(ResponseEvent::class);
- }
-
protected function getListener($withDispatcher = false, $catchExceptions = true, $withSessionStrategy = false)
{
$listener = new RememberMeListener(
diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/UsernamePasswordFormAuthenticationListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/UsernamePasswordFormAuthenticationListenerTest.php
index dc4a3de8f3..0a38ee2e85 100644
--- a/src/Symfony/Component/Security/Http/Tests/Firewall/UsernamePasswordFormAuthenticationListenerTest.php
+++ b/src/Symfony/Component/Security/Http/Tests/Firewall/UsernamePasswordFormAuthenticationListenerTest.php
@@ -78,14 +78,7 @@ class UsernamePasswordFormAuthenticationListenerTest extends TestCase
['require_previous_session' => false]
);
- $event = $this->createMock(RequestEvent::class);
- $event
- ->expects($this->any())
- ->method('getRequest')
- ->willReturn($request)
- ;
-
- $listener($event);
+ $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
}
/**
diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf
index 7ea908e757..e8845ec005 100644
--- a/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf
+++ b/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf
@@ -386,6 +386,10 @@
Це значення не є дійсним міжнародним ідентифікаційним номером цінних паперів (ISIN).
+
+
+ Це значення має бути дійсним виразом.
+