Merge branch '4.4' into 5.2
* 4.4: do not mock the Request class do not mock event classes recover from failed deserializations [ErrorHandle] Remove a link from the exception page [Validator] Added Ukrainian translations [GHA] Clarify some bits in the deps=high script
This commit is contained in:
commit
3e148e843c
12
.github/workflows/unit-tests.yml
vendored
12
.github/workflows/unit-tests.yml
vendored
@ -184,10 +184,12 @@ jobs:
|
|||||||
# matrix.mode = high-deps
|
# matrix.mode = high-deps
|
||||||
echo "$COMPONENTS" | xargs -n1 | parallel -j +3 "_run_tests {} 'cd {} && $COMPOSER_UP && $PHPUNIT$LEGACY'" || X=1
|
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)
|
(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='^'
|
export FLIP='^'
|
||||||
SYMFONY_VERSION=$(echo $SYMFONY_VERSION | awk '{print $1 - 1}')
|
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"
|
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"
|
export SYMFONY_REQUIRE=">=$SYMFONY_VERSION"
|
||||||
git fetch --depth=2 origin $SYMFONY_VERSION
|
git fetch --depth=2 origin $SYMFONY_VERSION
|
||||||
git checkout -m FETCH_HEAD
|
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)
|
(cd src/Symfony/Component/HttpFoundation; composer require --dev --no-update mongodb/mongodb)
|
||||||
if [[ $COMPONENTS ]]; then
|
if [[ $PATCHED_COMPONENTS ]]; then
|
||||||
echo "::group::install phpunit"
|
echo "::group::install phpunit"
|
||||||
./phpunit install
|
./phpunit install
|
||||||
echo "::endgroup::"
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ use Symfony\Bridge\Monolog\Processor\ConsoleCommandProcessor;
|
|||||||
use Symfony\Component\Console\Command\Command;
|
use Symfony\Component\Console\Command\Command;
|
||||||
use Symfony\Component\Console\Event\ConsoleEvent;
|
use Symfony\Component\Console\Event\ConsoleEvent;
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
|
||||||
class ConsoleCommandProcessorTest extends TestCase
|
class ConsoleCommandProcessorTest extends TestCase
|
||||||
{
|
{
|
||||||
@ -66,10 +67,7 @@ class ConsoleCommandProcessorTest extends TestCase
|
|||||||
$input->method('getOptions')->willReturn(self::TEST_OPTIONS);
|
$input->method('getOptions')->willReturn(self::TEST_OPTIONS);
|
||||||
$command = $this->createMock(Command::class);
|
$command = $this->createMock(Command::class);
|
||||||
$command->method('getName')->willReturn(self::TEST_NAME);
|
$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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,10 +13,8 @@ namespace Symfony\Bundle\WebProfilerBundle\Tests\EventListener;
|
|||||||
|
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
use Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener;
|
use Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener;
|
||||||
use Symfony\Component\HttpFoundation\HeaderBag;
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\HttpFoundation\Session\Session;
|
|
||||||
use Symfony\Component\HttpKernel\Event\ResponseEvent;
|
use Symfony\Component\HttpKernel\Event\ResponseEvent;
|
||||||
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||||
use Symfony\Component\HttpKernel\Kernel;
|
use Symfony\Component\HttpKernel\Kernel;
|
||||||
@ -61,11 +59,11 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
/**
|
/**
|
||||||
* @dataProvider provideRedirects
|
* @dataProvider provideRedirects
|
||||||
*/
|
*/
|
||||||
public function testHtmlRedirectionIsIntercepted($statusCode, $hasSession)
|
public function testHtmlRedirectionIsIntercepted($statusCode)
|
||||||
{
|
{
|
||||||
$response = new Response('Some content', $statusCode);
|
$response = new Response('Some content', $statusCode);
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$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 = new WebDebugToolbarListener($this->getTwigMock('Redirection'), true);
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -78,7 +76,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
{
|
{
|
||||||
$response = new Response('Some content', '301');
|
$response = new Response('Some content', '301');
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$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 = new WebDebugToolbarListener($this->getTwigMock('Redirection'), true);
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -92,7 +90,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
$response = new Response('<html><head></head><body></body></html>');
|
$response = new Response('<html><head></head><body></body></html>');
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$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 = new WebDebugToolbarListener($this->getTwigMock());
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -108,7 +106,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
$response = new Response('<html><head></head><body></body></html>');
|
$response = new Response('<html><head></head><body></body></html>');
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
||||||
$response->headers->set('Content-Type', 'text/xml');
|
$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 = new WebDebugToolbarListener($this->getTwigMock());
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -124,7 +122,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
$response = new Response('<html><head></head><body></body></html>');
|
$response = new Response('<html><head></head><body></body></html>');
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
||||||
$response->headers->set('Content-Disposition', 'attachment; filename=test.html');
|
$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 = new WebDebugToolbarListener($this->getTwigMock());
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -136,11 +134,11 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
* @depends testToolbarIsInjected
|
* @depends testToolbarIsInjected
|
||||||
* @dataProvider provideRedirects
|
* @dataProvider provideRedirects
|
||||||
*/
|
*/
|
||||||
public function testToolbarIsNotInjectedOnRedirection($statusCode, $hasSession)
|
public function testToolbarIsNotInjectedOnRedirection($statusCode)
|
||||||
{
|
{
|
||||||
$response = new Response('<html><head></head><body></body></html>', $statusCode);
|
$response = new Response('<html><head></head><body></body></html>', $statusCode);
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$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 = new WebDebugToolbarListener($this->getTwigMock());
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -151,10 +149,8 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
public function provideRedirects()
|
public function provideRedirects()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
[301, true],
|
[301],
|
||||||
[302, true],
|
[302],
|
||||||
[301, false],
|
|
||||||
[302, false],
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,7 +161,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
{
|
{
|
||||||
$response = new Response('<html><head></head><body></body></html>');
|
$response = new Response('<html><head></head><body></body></html>');
|
||||||
|
|
||||||
$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 = new WebDebugToolbarListener($this->getTwigMock());
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -181,7 +177,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
$response = new Response('<html><head></head><body></body></html>');
|
$response = new Response('<html><head></head><body></body></html>');
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$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 = new WebDebugToolbarListener($this->getTwigMock());
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -197,7 +193,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
$response = new Response('<div>Some content</div>');
|
$response = new Response('<div>Some content</div>');
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$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 = new WebDebugToolbarListener($this->getTwigMock());
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -213,7 +209,10 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
$response = new Response('<html><head></head><body></body></html>');
|
$response = new Response('<html><head></head><body></body></html>');
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$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 = new WebDebugToolbarListener($this->getTwigMock());
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -229,7 +228,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
$response = new Response('<html><head></head><body></body></html>');
|
$response = new Response('<html><head></head><body></body></html>');
|
||||||
$response->headers->set('X-Debug-Token', 'xxxxxxxx');
|
$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 = new WebDebugToolbarListener($this->getTwigMock());
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -250,7 +249,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
->willReturn('http://mydomain.com/_profiler/xxxxxxxx')
|
->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 = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, $urlGenerator);
|
||||||
$listener->onKernelResponse($event);
|
$listener->onKernelResponse($event);
|
||||||
@ -271,7 +270,7 @@ class WebDebugToolbarListenerTest extends TestCase
|
|||||||
->willThrowException(new \Exception('foo'))
|
->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 = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, $urlGenerator);
|
||||||
$listener->onKernelResponse($event);
|
$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"))
|
->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 = new WebDebugToolbarListener($this->getTwigMock(), false, WebDebugToolbarListener::ENABLED, $urlGenerator);
|
||||||
$listener->onKernelResponse($event);
|
$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'));
|
$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')
|
protected function getTwigMock($render = 'WDT')
|
||||||
{
|
{
|
||||||
$templating = $this->createMock(Environment::class);
|
$templating = $this->createMock(Environment::class);
|
||||||
|
@ -28,13 +28,6 @@
|
|||||||
<span class="hidden-xs-down">Symfony</span> Docs
|
<span class="hidden-xs-down">Symfony</span> Docs
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="help-link">
|
|
||||||
<a href="https://symfony.com/support">
|
|
||||||
<span class="icon"><?= $this->include('assets/images/icon-support.svg'); ?></span>
|
|
||||||
<span class="hidden-xs-down">Symfony</span> Support
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
@ -298,7 +298,7 @@ class Store implements StoreInterface
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
return unserialize($entries);
|
return unserialize($entries) ?: [];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -16,6 +16,7 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
|||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||||
use Symfony\Component\HttpKernel\EventListener\AddRequestFormatsListener;
|
use Symfony\Component\HttpKernel\EventListener\AddRequestFormatsListener;
|
||||||
|
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||||
use Symfony\Component\HttpKernel\KernelEvents;
|
use Symfony\Component\HttpKernel\KernelEvents;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,7 +55,7 @@ class AddRequestFormatsListenerTest extends TestCase
|
|||||||
public function testSetAdditionalFormats()
|
public function testSetAdditionalFormats()
|
||||||
{
|
{
|
||||||
$request = $this->createMock(Request::class);
|
$request = $this->createMock(Request::class);
|
||||||
$event = $this->getRequestEventMock($request);
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
|
|
||||||
$request->expects($this->once())
|
$request->expects($this->once())
|
||||||
->method('setFormat')
|
->method('setFormat')
|
||||||
@ -62,14 +63,4 @@ class AddRequestFormatsListenerTest extends TestCase
|
|||||||
|
|
||||||
$this->listener->onKernelRequest($event);
|
$this->listener->onKernelRequest($event);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getRequestEventMock(Request $request)
|
|
||||||
{
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
|
||||||
$event->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request);
|
|
||||||
|
|
||||||
return $event;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ class DisallowRobotsIndexingListenerTest extends TestCase
|
|||||||
$response = new Response(...$responseArgs);
|
$response = new Response(...$responseArgs);
|
||||||
$listener = new DisallowRobotsIndexingListener();
|
$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);
|
$listener->onResponse($event);
|
||||||
|
|
||||||
|
@ -61,9 +61,7 @@ class SessionListenerTest extends TestCase
|
|||||||
$request = new Request();
|
$request = new Request();
|
||||||
$listener = new SessionListener($container);
|
$listener = new SessionListener($container);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
$event->expects($this->exactly(2))->method('isMasterRequest')->willReturn(true);
|
|
||||||
$event->expects($this->once())->method('getRequest')->willReturn($request);
|
|
||||||
|
|
||||||
$listener->onKernelRequest($event);
|
$listener->onKernelRequest($event);
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ namespace Symfony\Component\Security\Http\Tests\Firewall;
|
|||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||||
|
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||||
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
|
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
|
||||||
use Symfony\Component\Security\Core\Authentication\Token\PreAuthenticatedToken;
|
use Symfony\Component\Security\Core\Authentication\Token\PreAuthenticatedToken;
|
||||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||||
@ -62,14 +63,7 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
|
|||||||
->method('getPreAuthenticatedData')
|
->method('getPreAuthenticatedData')
|
||||||
->willReturn($userCredentials);
|
->willReturn($userCredentials);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleWhenAuthenticationFails()
|
public function testHandleWhenAuthenticationFails()
|
||||||
@ -109,14 +103,7 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
|
|||||||
->method('getPreAuthenticatedData')
|
->method('getPreAuthenticatedData')
|
||||||
->willReturn($userCredentials);
|
->willReturn($userCredentials);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleWhenAuthenticationFailsWithDifferentToken()
|
public function testHandleWhenAuthenticationFailsWithDifferentToken()
|
||||||
@ -158,12 +145,7 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
|
|||||||
->method('getPreAuthenticatedData')
|
->method('getPreAuthenticatedData')
|
||||||
->willReturn($userCredentials);
|
->willReturn($userCredentials);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
$listener($event);
|
||||||
}
|
}
|
||||||
@ -200,14 +182,7 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
|
|||||||
->method('getPreAuthenticatedData')
|
->method('getPreAuthenticatedData')
|
||||||
->willReturn($userCredentials);
|
->willReturn($userCredentials);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleWithAnInvalidSimilarToken()
|
public function testHandleWithAnInvalidSimilarToken()
|
||||||
@ -250,13 +225,6 @@ class AbstractPreAuthenticatedListenerTest extends TestCase
|
|||||||
->method('getPreAuthenticatedData')
|
->method('getPreAuthenticatedData')
|
||||||
->willReturn($userCredentials);
|
->willReturn($userCredentials);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase;
|
|||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||||
|
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||||
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
|
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
|
||||||
use Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager;
|
use Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager;
|
||||||
use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface;
|
use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface;
|
||||||
@ -64,14 +65,7 @@ class BasicAuthenticationListenerTest extends TestCase
|
|||||||
$this->createMock(AuthenticationEntryPointInterface::class)
|
$this->createMock(AuthenticationEntryPointInterface::class)
|
||||||
);
|
);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleWhenAuthenticationFails()
|
public function testHandleWhenAuthenticationFails()
|
||||||
@ -109,19 +103,11 @@ class BasicAuthenticationListenerTest extends TestCase
|
|||||||
$authenticationEntryPoint
|
$authenticationEntryPoint
|
||||||
);
|
);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
$event
|
|
||||||
->expects($this->once())
|
|
||||||
->method('setResponse')
|
|
||||||
->with($this->equalTo($response))
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
$listener($event);
|
||||||
|
|
||||||
|
$this->assertSame($response, $event->getResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleWithNoUsernameServerParameter()
|
public function testHandleWithNoUsernameServerParameter()
|
||||||
@ -141,14 +127,7 @@ class BasicAuthenticationListenerTest extends TestCase
|
|||||||
$this->createMock(AuthenticationEntryPointInterface::class)
|
$this->createMock(AuthenticationEntryPointInterface::class)
|
||||||
);
|
);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleWithASimilarAuthenticatedToken()
|
public function testHandleWithASimilarAuthenticatedToken()
|
||||||
@ -177,14 +156,7 @@ class BasicAuthenticationListenerTest extends TestCase
|
|||||||
$this->createMock(AuthenticationEntryPointInterface::class)
|
$this->createMock(AuthenticationEntryPointInterface::class)
|
||||||
);
|
);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItRequiresProviderKey()
|
public function testItRequiresProviderKey()
|
||||||
@ -236,18 +208,10 @@ class BasicAuthenticationListenerTest extends TestCase
|
|||||||
$authenticationEntryPoint
|
$authenticationEntryPoint
|
||||||
);
|
);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
$event
|
|
||||||
->expects($this->once())
|
|
||||||
->method('setResponse')
|
|
||||||
->with($this->equalTo($response))
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
$listener($event);
|
||||||
|
|
||||||
|
$this->assertSame($response, $event->getResponse());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase;
|
|||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||||
|
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||||
use Symfony\Component\Security\Http\AccessMapInterface;
|
use Symfony\Component\Security\Http\AccessMapInterface;
|
||||||
use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface;
|
use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface;
|
||||||
use Symfony\Component\Security\Http\Firewall\ChannelListener;
|
use Symfony\Component\Security\Http\Firewall\ChannelListener;
|
||||||
@ -44,19 +45,12 @@ class ChannelListenerTest extends TestCase
|
|||||||
->method('start')
|
->method('start')
|
||||||
;
|
;
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
$event
|
|
||||||
->expects($this->never())
|
|
||||||
->method('setResponse')
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener = new ChannelListener($accessMap, $entryPoint);
|
$listener = new ChannelListener($accessMap, $entryPoint);
|
||||||
$listener($event);
|
$listener($event);
|
||||||
|
|
||||||
|
$this->assertNull($event->getResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleWithSecuredRequestAndHttpsChannel()
|
public function testHandleWithSecuredRequestAndHttpsChannel()
|
||||||
@ -82,19 +76,12 @@ class ChannelListenerTest extends TestCase
|
|||||||
->method('start')
|
->method('start')
|
||||||
;
|
;
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
$event
|
|
||||||
->expects($this->never())
|
|
||||||
->method('setResponse')
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener = new ChannelListener($accessMap, $entryPoint);
|
$listener = new ChannelListener($accessMap, $entryPoint);
|
||||||
$listener($event);
|
$listener($event);
|
||||||
|
|
||||||
|
$this->assertNull($event->getResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleWithNotSecuredRequestAndHttpsChannel()
|
public function testHandleWithNotSecuredRequestAndHttpsChannel()
|
||||||
@ -124,20 +111,12 @@ class ChannelListenerTest extends TestCase
|
|||||||
->willReturn($response)
|
->willReturn($response)
|
||||||
;
|
;
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
$event
|
|
||||||
->expects($this->once())
|
|
||||||
->method('setResponse')
|
|
||||||
->with($this->equalTo($response))
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener = new ChannelListener($accessMap, $entryPoint);
|
$listener = new ChannelListener($accessMap, $entryPoint);
|
||||||
$listener($event);
|
$listener($event);
|
||||||
|
|
||||||
|
$this->assertSame($response, $event->getResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleWithSecuredRequestAndHttpChannel()
|
public function testHandleWithSecuredRequestAndHttpChannel()
|
||||||
@ -167,19 +146,11 @@ class ChannelListenerTest extends TestCase
|
|||||||
->willReturn($response)
|
->willReturn($response)
|
||||||
;
|
;
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
$event
|
|
||||||
->expects($this->once())
|
|
||||||
->method('setResponse')
|
|
||||||
->with($this->equalTo($response))
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener = new ChannelListener($accessMap, $entryPoint);
|
$listener = new ChannelListener($accessMap, $entryPoint);
|
||||||
$listener($event);
|
$listener($event);
|
||||||
|
|
||||||
|
$this->assertSame($response, $event->getResponse());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,13 +146,9 @@ class ContextListenerTest extends TestCase
|
|||||||
public function testInvalidTokenInSession($token)
|
public function testInvalidTokenInSession($token)
|
||||||
{
|
{
|
||||||
$tokenStorage = $this->createMock(TokenStorageInterface::class);
|
$tokenStorage = $this->createMock(TokenStorageInterface::class);
|
||||||
$event = $this->createMock(RequestEvent::class);
|
|
||||||
$request = $this->createMock(Request::class);
|
$request = $this->createMock(Request::class);
|
||||||
$session = $this->createMock(SessionInterface::class);
|
$session = $this->createMock(SessionInterface::class);
|
||||||
|
|
||||||
$event->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request);
|
|
||||||
$request->expects($this->any())
|
$request->expects($this->any())
|
||||||
->method('hasPreviousSession')
|
->method('hasPreviousSession')
|
||||||
->willReturn(true);
|
->willReturn(true);
|
||||||
@ -168,7 +164,7 @@ class ContextListenerTest extends TestCase
|
|||||||
->with(null);
|
->with(null);
|
||||||
|
|
||||||
$listener = new ContextListener($tokenStorage, [], 'key123');
|
$listener = new ContextListener($tokenStorage, [], 'key123');
|
||||||
$listener($event);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function provideInvalidToken()
|
public function provideInvalidToken()
|
||||||
@ -186,22 +182,13 @@ class ContextListenerTest extends TestCase
|
|||||||
{
|
{
|
||||||
$tokenStorage = $this->createMock(TokenStorageInterface::class);
|
$tokenStorage = $this->createMock(TokenStorageInterface::class);
|
||||||
$dispatcher = $this->createMock(EventDispatcherInterface::class);
|
$dispatcher = $this->createMock(EventDispatcherInterface::class);
|
||||||
$event = $this->createMock(RequestEvent::class);
|
|
||||||
|
|
||||||
$listener = new ContextListener($tokenStorage, [], 'key123', null, $dispatcher);
|
$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())
|
$dispatcher->expects($this->once())
|
||||||
->method('addListener')
|
->method('addListener')
|
||||||
->with(KernelEvents::RESPONSE, [$listener, 'onKernelResponse']);
|
->with(KernelEvents::RESPONSE, [$listener, 'onKernelResponse']);
|
||||||
|
|
||||||
$listener($event);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), new Request(), HttpKernelInterface::MASTER_REQUEST));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testOnKernelResponseListenerRemovesItself()
|
public function testOnKernelResponseListenerRemovesItself()
|
||||||
@ -234,14 +221,11 @@ class ContextListenerTest extends TestCase
|
|||||||
$request = $this->createMock(Request::class);
|
$request = $this->createMock(Request::class);
|
||||||
$request->expects($this->any())->method('hasPreviousSession')->willReturn(false);
|
$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 = $this->createMock(TokenStorageInterface::class);
|
||||||
$tokenStorage->expects($this->once())->method('setToken')->with(null);
|
$tokenStorage->expects($this->once())->method('setToken')->with(null);
|
||||||
|
|
||||||
$listener = new ContextListener($tokenStorage, [], 'key123');
|
$listener = new ContextListener($tokenStorage, [], 'key123');
|
||||||
$listener($event);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testIfTokenIsDeauthenticated()
|
public function testIfTokenIsDeauthenticated()
|
||||||
|
@ -17,6 +17,7 @@ use Symfony\Component\EventDispatcher\EventDispatcher;
|
|||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
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\Storage\TokenStorageInterface;
|
||||||
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
||||||
use Symfony\Component\Security\Core\Exception\LogoutException;
|
use Symfony\Component\Security\Core\Exception\LogoutException;
|
||||||
@ -36,19 +37,19 @@ class LogoutListenerTest extends TestCase
|
|||||||
$dispatcher = $this->getEventDispatcher();
|
$dispatcher = $this->getEventDispatcher();
|
||||||
[$listener, , $httpUtils, $options] = $this->getListener($dispatcher);
|
[$listener, , $httpUtils, $options] = $this->getListener($dispatcher);
|
||||||
|
|
||||||
[$event, $request] = $this->getRequestEvent();
|
|
||||||
|
|
||||||
$logoutEventDispatched = false;
|
$logoutEventDispatched = false;
|
||||||
$dispatcher->addListener(LogoutEvent::class, function (LogoutEvent $event) use (&$logoutEventDispatched) {
|
$dispatcher->addListener(LogoutEvent::class, function () use (&$logoutEventDispatched) {
|
||||||
$logoutEventDispatched = true;
|
$logoutEventDispatched = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$request = new Request();
|
||||||
|
|
||||||
$httpUtils->expects($this->once())
|
$httpUtils->expects($this->once())
|
||||||
->method('checkRequestPath')
|
->method('checkRequestPath')
|
||||||
->with($request, $options['logout_path'])
|
->with($request, $options['logout_path'])
|
||||||
->willReturn(false);
|
->willReturn(false);
|
||||||
|
|
||||||
$listener($event);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
|
|
||||||
$this->assertFalse($logoutEventDispatched, 'LogoutEvent should not have been dispatched.');
|
$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);
|
[$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($dispatcher, $tokenManager);
|
||||||
|
|
||||||
[$event, $request] = $this->getRequestEvent();
|
$request = new Request();
|
||||||
|
|
||||||
$request->query->set('_csrf_token', 'token');
|
$request->query->set('_csrf_token', 'token');
|
||||||
|
|
||||||
$httpUtils->expects($this->once())
|
$httpUtils->expects($this->once())
|
||||||
@ -86,11 +86,11 @@ class LogoutListenerTest extends TestCase
|
|||||||
->method('setToken')
|
->method('setToken')
|
||||||
->with(null);
|
->with(null);
|
||||||
|
|
||||||
$event->expects($this->once())
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
->method('setResponse')
|
|
||||||
->with($response);
|
|
||||||
|
|
||||||
$listener($event);
|
$listener($event);
|
||||||
|
|
||||||
|
$this->assertSame($response, $event->getResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testHandleMatchedPathWithoutCsrfValidation()
|
public function testHandleMatchedPathWithoutCsrfValidation()
|
||||||
@ -98,7 +98,7 @@ class LogoutListenerTest extends TestCase
|
|||||||
$dispatcher = $this->getEventDispatcher();
|
$dispatcher = $this->getEventDispatcher();
|
||||||
[$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($dispatcher);
|
[$listener, $tokenStorage, $httpUtils, $options] = $this->getListener($dispatcher);
|
||||||
|
|
||||||
[$event, $request] = $this->getRequestEvent();
|
$request = new Request();
|
||||||
|
|
||||||
$httpUtils->expects($this->once())
|
$httpUtils->expects($this->once())
|
||||||
->method('checkRequestPath')
|
->method('checkRequestPath')
|
||||||
@ -118,11 +118,11 @@ class LogoutListenerTest extends TestCase
|
|||||||
->method('setToken')
|
->method('setToken')
|
||||||
->with(null);
|
->with(null);
|
||||||
|
|
||||||
$event->expects($this->once())
|
$event = new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST);
|
||||||
->method('setResponse')
|
|
||||||
->with($response);
|
|
||||||
|
|
||||||
$listener($event);
|
$listener($event);
|
||||||
|
|
||||||
|
$this->assertSame($response, $event->getResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testNoResponseSet()
|
public function testNoResponseSet()
|
||||||
@ -131,14 +131,14 @@ class LogoutListenerTest extends TestCase
|
|||||||
|
|
||||||
[$listener, , $httpUtils, $options] = $this->getListener();
|
[$listener, , $httpUtils, $options] = $this->getListener();
|
||||||
|
|
||||||
[$event, $request] = $this->getRequestEvent();
|
$request = new Request();
|
||||||
|
|
||||||
$httpUtils->expects($this->once())
|
$httpUtils->expects($this->once())
|
||||||
->method('checkRequestPath')
|
->method('checkRequestPath')
|
||||||
->with($request, $options['logout_path'])
|
->with($request, $options['logout_path'])
|
||||||
->willReturn(true);
|
->willReturn(true);
|
||||||
|
|
||||||
$listener($event);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testCsrfValidationFails()
|
public function testCsrfValidationFails()
|
||||||
@ -148,8 +148,7 @@ class LogoutListenerTest extends TestCase
|
|||||||
|
|
||||||
[$listener, , $httpUtils, $options] = $this->getListener(null, $tokenManager);
|
[$listener, , $httpUtils, $options] = $this->getListener(null, $tokenManager);
|
||||||
|
|
||||||
[$event, $request] = $this->getRequestEvent();
|
$request = new Request();
|
||||||
|
|
||||||
$request->query->set('_csrf_token', 'token');
|
$request->query->set('_csrf_token', 'token');
|
||||||
|
|
||||||
$httpUtils->expects($this->once())
|
$httpUtils->expects($this->once())
|
||||||
@ -161,7 +160,7 @@ class LogoutListenerTest extends TestCase
|
|||||||
->method('isTokenValid')
|
->method('isTokenValid')
|
||||||
->willReturn(false);
|
->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();
|
$token = $this->getToken();
|
||||||
$tokenStorage->expects($this->any())->method('getToken')->willReturn($token);
|
$tokenStorage->expects($this->any())->method('getToken')->willReturn($token);
|
||||||
|
|
||||||
[$event, $request] = $this->getRequestEvent();
|
$request = new Request();
|
||||||
|
|
||||||
$httpUtils->expects($this->once())
|
$httpUtils->expects($this->once())
|
||||||
->method('checkRequestPath')
|
->method('checkRequestPath')
|
||||||
@ -193,9 +192,11 @@ class LogoutListenerTest extends TestCase
|
|||||||
$handler->expects($this->once())->method('logout')->with($request, $response, $token);
|
$handler->expects($this->once())->method('logout')->with($request, $response, $token);
|
||||||
$listener->addHandler($handler);
|
$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);
|
$listener($event);
|
||||||
|
|
||||||
|
$this->assertSame($response, $event->getResponse());
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getTokenManager()
|
private function getTokenManager()
|
||||||
@ -208,17 +209,6 @@ class LogoutListenerTest extends TestCase
|
|||||||
return $this->createMock(TokenStorageInterface::class);
|
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()
|
private function getHttpUtils()
|
||||||
{
|
{
|
||||||
return $this->createMock(HttpUtils::class);
|
return $this->createMock(HttpUtils::class);
|
||||||
|
@ -16,7 +16,6 @@ use Psr\Log\LoggerInterface;
|
|||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
||||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||||
use Symfony\Component\HttpKernel\Event\ResponseEvent;
|
|
||||||
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||||
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
|
use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
|
||||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||||
@ -363,11 +362,6 @@ class RememberMeListenerTest extends TestCase
|
|||||||
return $event;
|
return $event;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getResponseEvent(): ResponseEvent
|
|
||||||
{
|
|
||||||
return $this->createMock(ResponseEvent::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getListener($withDispatcher = false, $catchExceptions = true, $withSessionStrategy = false)
|
protected function getListener($withDispatcher = false, $catchExceptions = true, $withSessionStrategy = false)
|
||||||
{
|
{
|
||||||
$listener = new RememberMeListener(
|
$listener = new RememberMeListener(
|
||||||
|
@ -78,14 +78,7 @@ class UsernamePasswordFormAuthenticationListenerTest extends TestCase
|
|||||||
['require_previous_session' => false]
|
['require_previous_session' => false]
|
||||||
);
|
);
|
||||||
|
|
||||||
$event = $this->createMock(RequestEvent::class);
|
$listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST));
|
||||||
$event
|
|
||||||
->expects($this->any())
|
|
||||||
->method('getRequest')
|
|
||||||
->willReturn($request)
|
|
||||||
;
|
|
||||||
|
|
||||||
$listener($event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -386,6 +386,10 @@
|
|||||||
<source>This value is not a valid International Securities Identification Number (ISIN).</source>
|
<source>This value is not a valid International Securities Identification Number (ISIN).</source>
|
||||||
<target>Це значення не є дійсним міжнародним ідентифікаційним номером цінних паперів (ISIN).</target>
|
<target>Це значення не є дійсним міжнародним ідентифікаційним номером цінних паперів (ISIN).</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="100">
|
||||||
|
<source>This value should be a valid expression.</source>
|
||||||
|
<target>Це значення має бути дійсним виразом.</target>
|
||||||
|
</trans-unit>
|
||||||
</body>
|
</body>
|
||||||
</file>
|
</file>
|
||||||
</xliff>
|
</xliff>
|
||||||
|
Reference in New Issue
Block a user