mirror of
https://github.com/wallabag/wallabag.git
synced 2025-09-15 18:57:05 +00:00
Move test files directly under tests/ directory
This commit is contained in:
parent
a37b385c23
commit
24da70e338
117 changed files with 4 additions and 4 deletions
69
tests/Event/Listener/AuthenticationFailureListenerTest.php
Normal file
69
tests/Event/Listener/AuthenticationFailureListenerTest.php
Normal file
|
@ -0,0 +1,69 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Wallabag\CoreBundle\Event\Listener;
|
||||
|
||||
use Monolog\Handler\TestHandler;
|
||||
use Monolog\Logger;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
||||
use Symfony\Component\Security\Core\AuthenticationEvents;
|
||||
use Symfony\Component\Security\Core\Event\AuthenticationFailureEvent;
|
||||
use Symfony\Component\Security\Core\Exception\AuthenticationException;
|
||||
use Wallabag\CoreBundle\Event\Listener\AuthenticationFailureListener;
|
||||
|
||||
class AuthenticationFailureListenerTest extends TestCase
|
||||
{
|
||||
private $requestStack;
|
||||
private $logHandler;
|
||||
private $listener;
|
||||
private $dispatcher;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$request = Request::create('/');
|
||||
$request->request->set('_username', 'admin');
|
||||
|
||||
$this->requestStack = new RequestStack();
|
||||
$this->requestStack->push($request);
|
||||
|
||||
$this->logHandler = new TestHandler();
|
||||
$logger = new Logger('test', [$this->logHandler]);
|
||||
|
||||
$this->listener = new AuthenticationFailureListener(
|
||||
$this->requestStack,
|
||||
$logger
|
||||
);
|
||||
|
||||
$this->dispatcher = new EventDispatcher();
|
||||
$this->dispatcher->addSubscriber($this->listener);
|
||||
}
|
||||
|
||||
public function testOnAuthenticationFailure()
|
||||
{
|
||||
$token = $this->getMockBuilder(TokenInterface::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$exception = $this->getMockBuilder(AuthenticationException::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$event = new AuthenticationFailureEvent(
|
||||
$token,
|
||||
$exception
|
||||
);
|
||||
|
||||
$this->dispatcher->dispatch(
|
||||
$event,
|
||||
AuthenticationEvents::AUTHENTICATION_FAILURE
|
||||
);
|
||||
|
||||
$records = $this->logHandler->getRecords();
|
||||
|
||||
$this->assertCount(1, $records);
|
||||
$this->assertSame('Authentication failure for user "admin", from IP "127.0.0.1", with UA: "Symfony".', $records[0]['message']);
|
||||
}
|
||||
}
|
82
tests/Event/Listener/CreateConfigListenerTest.php
Normal file
82
tests/Event/Listener/CreateConfigListenerTest.php
Normal file
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Wallabag\CoreBundle\Event\Listener;
|
||||
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use FOS\UserBundle\Event\FilterUserResponseEvent;
|
||||
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 Wallabag\CoreBundle\Entity\Config;
|
||||
use Wallabag\CoreBundle\Entity\User;
|
||||
use Wallabag\CoreBundle\Event\Listener\CreateConfigListener;
|
||||
|
||||
class CreateConfigListenerTest extends TestCase
|
||||
{
|
||||
private $em;
|
||||
private $listener;
|
||||
private $dispatcher;
|
||||
private $request;
|
||||
private $response;
|
||||
private $requestStack;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->em = $this->getMockBuilder(EntityManager::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$this->requestStack = $this->getMockBuilder(RequestStack::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$this->listener = new CreateConfigListener(
|
||||
$this->em,
|
||||
20,
|
||||
50,
|
||||
'fr',
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
$this->requestStack
|
||||
);
|
||||
|
||||
$this->dispatcher = new EventDispatcher();
|
||||
$this->dispatcher->addSubscriber($this->listener);
|
||||
|
||||
$this->request = Request::create('/');
|
||||
$this->response = Response::create();
|
||||
}
|
||||
|
||||
public function testWithValidUser()
|
||||
{
|
||||
$user = new User();
|
||||
$user->setEnabled(true);
|
||||
|
||||
$event = new FilterUserResponseEvent(
|
||||
$user,
|
||||
$this->request,
|
||||
$this->response
|
||||
);
|
||||
|
||||
$config = new Config($user);
|
||||
$config->setItemsPerPage(20);
|
||||
$config->setFeedLimit(50);
|
||||
$config->setLanguage('fr');
|
||||
$config->setReadingSpeed(200);
|
||||
|
||||
$this->em->expects($this->once())
|
||||
->method('persist')
|
||||
->willReturn($config);
|
||||
$this->em->expects($this->once())
|
||||
->method('flush');
|
||||
|
||||
$this->dispatcher->dispatch(
|
||||
$event,
|
||||
FOSUserEvents::REGISTRATION_COMPLETED
|
||||
);
|
||||
}
|
||||
}
|
87
tests/Event/Listener/LocaleListenerTest.php
Normal file
87
tests/Event/Listener/LocaleListenerTest.php
Normal file
|
@ -0,0 +1,87 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Wallabag\CoreBundle\Event\Listener;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
|
||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
use Wallabag\CoreBundle\Event\Listener\LocaleListener;
|
||||
|
||||
class LocaleListenerTest extends TestCase
|
||||
{
|
||||
public function testWithoutSession()
|
||||
{
|
||||
$request = Request::create('/');
|
||||
|
||||
$listener = new LocaleListener('fr');
|
||||
$event = $this->getEvent($request);
|
||||
|
||||
$listener->onKernelRequest($event);
|
||||
$this->assertSame('en', $request->getLocale());
|
||||
}
|
||||
|
||||
public function testWithPreviousSession()
|
||||
{
|
||||
$request = Request::create('/');
|
||||
// generate a previous session
|
||||
$request->cookies->set('MOCKSESSID', 'foo');
|
||||
$request->setSession(new Session(new MockArraySessionStorage()));
|
||||
|
||||
$listener = new LocaleListener('fr');
|
||||
$event = $this->getEvent($request);
|
||||
|
||||
$listener->onKernelRequest($event);
|
||||
$this->assertSame('fr', $request->getLocale());
|
||||
}
|
||||
|
||||
public function testLocaleFromRequestAttribute()
|
||||
{
|
||||
$request = Request::create('/');
|
||||
// generate a previous session
|
||||
$request->cookies->set('MOCKSESSID', 'foo');
|
||||
$request->setSession(new Session(new MockArraySessionStorage()));
|
||||
$request->attributes->set('_locale', 'es');
|
||||
|
||||
$listener = new LocaleListener('fr');
|
||||
$event = $this->getEvent($request);
|
||||
|
||||
$listener->onKernelRequest($event);
|
||||
$this->assertSame('en', $request->getLocale());
|
||||
$this->assertSame('es', $request->getSession()->get('_locale'));
|
||||
}
|
||||
|
||||
public function testSubscribedEvents()
|
||||
{
|
||||
$request = Request::create('/');
|
||||
// generate a previous session
|
||||
$request->cookies->set('MOCKSESSID', 'foo');
|
||||
$request->setSession(new Session(new MockArraySessionStorage()));
|
||||
|
||||
$listener = new LocaleListener('fr');
|
||||
$event = $this->getEvent($request);
|
||||
|
||||
$dispatcher = new EventDispatcher();
|
||||
$dispatcher->addSubscriber($listener);
|
||||
|
||||
$dispatcher->dispatch(
|
||||
$event,
|
||||
KernelEvents::REQUEST
|
||||
);
|
||||
|
||||
$this->assertSame('fr', $request->getLocale());
|
||||
}
|
||||
|
||||
private function getEvent(Request $request)
|
||||
{
|
||||
$kernel = $this->getMockBuilder(HttpKernelInterface::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
return new RequestEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
|
||||
}
|
||||
}
|
82
tests/Event/Listener/UserLocaleListenerTest.php
Normal file
82
tests/Event/Listener/UserLocaleListenerTest.php
Normal file
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Wallabag\CoreBundle\Event\Listener;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
|
||||
use Wallabag\CoreBundle\Entity\Config;
|
||||
use Wallabag\CoreBundle\Entity\User;
|
||||
use Wallabag\CoreBundle\Event\Listener\UserLocaleListener;
|
||||
|
||||
class UserLocaleListenerTest extends TestCase
|
||||
{
|
||||
public function testWithLanguage()
|
||||
{
|
||||
$session = new Session(new MockArraySessionStorage());
|
||||
$listener = new UserLocaleListener($session);
|
||||
|
||||
$user = new User();
|
||||
$user->setEnabled(true);
|
||||
|
||||
$config = new Config($user);
|
||||
$config->setLanguage('fr');
|
||||
|
||||
$user->setConfig($config);
|
||||
|
||||
$userToken = new UsernamePasswordToken($user, '', 'test');
|
||||
$request = Request::create('/');
|
||||
$event = new InteractiveLoginEvent($request, $userToken);
|
||||
|
||||
$listener->onInteractiveLogin($event);
|
||||
|
||||
$this->assertSame('fr', $session->get('_locale'));
|
||||
}
|
||||
|
||||
public function testWithoutLanguage()
|
||||
{
|
||||
$session = new Session(new MockArraySessionStorage());
|
||||
$listener = new UserLocaleListener($session);
|
||||
|
||||
$user = new User();
|
||||
$user->setEnabled(true);
|
||||
|
||||
$config = new Config($user);
|
||||
|
||||
$user->setConfig($config);
|
||||
|
||||
$userToken = new UsernamePasswordToken($user, '', 'test');
|
||||
$request = Request::create('/');
|
||||
$event = new InteractiveLoginEvent($request, $userToken);
|
||||
|
||||
$listener->onInteractiveLogin($event);
|
||||
|
||||
$this->assertNull($session->get('_locale'));
|
||||
}
|
||||
|
||||
public function testWithLanguageFromSession()
|
||||
{
|
||||
$session = new Session(new MockArraySessionStorage());
|
||||
$listener = new UserLocaleListener($session);
|
||||
$session->set('_locale', 'de');
|
||||
|
||||
$user = new User();
|
||||
$user->setEnabled(true);
|
||||
|
||||
$config = new Config($user);
|
||||
$config->setLanguage('fr');
|
||||
|
||||
$user->setConfig($config);
|
||||
|
||||
$userToken = new UsernamePasswordToken($user, '', 'test');
|
||||
$request = Request::create('/');
|
||||
$event = new InteractiveLoginEvent($request, $userToken);
|
||||
|
||||
$listener->onInteractiveLogin($event);
|
||||
|
||||
$this->assertSame('de', $session->get('_locale'));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue