mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-22 17:11:07 +00:00
Fix CreateConfigListener to not use session in CLI context
This commit is contained in:
parent
1a5e63a1b8
commit
c93c47cdec
2 changed files with 18 additions and 9 deletions
|
@ -6,7 +6,7 @@ use Doctrine\ORM\EntityManagerInterface;
|
|||
use FOS\UserBundle\Event\UserEvent;
|
||||
use FOS\UserBundle\FOSUserEvents;
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Wallabag\CoreBundle\Entity\Config;
|
||||
|
||||
/**
|
||||
|
@ -22,10 +22,10 @@ class CreateConfigListener implements EventSubscriberInterface
|
|||
private $readingSpeed;
|
||||
private $actionMarkAsRead;
|
||||
private $listMode;
|
||||
private $session;
|
||||
private $requestStack;
|
||||
private $displayThumbnails;
|
||||
|
||||
public function __construct(EntityManagerInterface $em, $itemsOnPage, $feedLimit, $language, $readingSpeed, $actionMarkAsRead, $listMode, $displayThumbnails, SessionInterface $session)
|
||||
public function __construct(EntityManagerInterface $em, $itemsOnPage, $feedLimit, $language, $readingSpeed, $actionMarkAsRead, $listMode, $displayThumbnails, RequestStack $requestStack)
|
||||
{
|
||||
$this->em = $em;
|
||||
$this->itemsOnPage = $itemsOnPage;
|
||||
|
@ -34,7 +34,7 @@ class CreateConfigListener implements EventSubscriberInterface
|
|||
$this->readingSpeed = $readingSpeed;
|
||||
$this->actionMarkAsRead = $actionMarkAsRead;
|
||||
$this->listMode = $listMode;
|
||||
$this->session = $session;
|
||||
$this->requestStack = $requestStack;
|
||||
$this->displayThumbnails = $displayThumbnails;
|
||||
}
|
||||
|
||||
|
@ -51,10 +51,17 @@ class CreateConfigListener implements EventSubscriberInterface
|
|||
|
||||
public function createConfig(UserEvent $event)
|
||||
{
|
||||
$language = $this->language;
|
||||
|
||||
if ($this->requestStack->getMasterRequest()) {
|
||||
$session = $this->requestStack->getMasterRequest()->getSession();
|
||||
$language = $session->get('_locale', $this->language);
|
||||
}
|
||||
|
||||
$config = new Config($event->getUser());
|
||||
$config->setItemsPerPage($this->itemsOnPage);
|
||||
$config->setFeedLimit($this->feedLimit);
|
||||
$config->setLanguage($this->session->get('_locale', $this->language));
|
||||
$config->setLanguage($language);
|
||||
$config->setReadingSpeed($this->readingSpeed);
|
||||
$config->setActionMarkAsRead($this->actionMarkAsRead);
|
||||
$config->setListMode($this->listMode);
|
||||
|
|
|
@ -8,9 +8,8 @@ use FOS\UserBundle\FOSUserEvents;
|
|||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
|
||||
use Wallabag\CoreBundle\Entity\Config;
|
||||
use Wallabag\CoreBundle\Entity\User;
|
||||
use Wallabag\CoreBundle\Event\Listener\CreateConfigListener;
|
||||
|
@ -22,13 +21,16 @@ class CreateConfigListenerTest extends TestCase
|
|||
private $dispatcher;
|
||||
private $request;
|
||||
private $response;
|
||||
private $requestStack;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$session = new Session(new MockArraySessionStorage());
|
||||
$this->em = $this->getMockBuilder(EntityManager::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->requestStack = $this->getMockBuilder(RequestStack::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$this->listener = new CreateConfigListener(
|
||||
$this->em,
|
||||
|
@ -39,7 +41,7 @@ class CreateConfigListenerTest extends TestCase
|
|||
1,
|
||||
1,
|
||||
1,
|
||||
$session
|
||||
$this->requestStack
|
||||
);
|
||||
|
||||
$this->dispatcher = new EventDispatcher();
|
||||
|
|
Loading…
Reference in a new issue