2015-03-28 21:43:49 +01:00
|
|
|
<?php
|
|
|
|
|
2019-01-17 14:28:05 +01:00
|
|
|
namespace Tests\Wallabag\CoreBundle\ParamConverter;
|
2015-03-28 21:43:49 +01:00
|
|
|
|
2017-12-16 22:17:42 +01:00
|
|
|
use PHPUnit\Framework\TestCase;
|
2015-03-28 21:43:49 +01:00
|
|
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
|
|
|
use Symfony\Component\HttpFoundation\Request;
|
2015-12-22 10:16:34 +01:00
|
|
|
use Wallabag\CoreBundle\ParamConverter\UsernameRssTokenConverter;
|
2015-10-02 14:51:41 +02:00
|
|
|
use Wallabag\UserBundle\Entity\User;
|
2015-03-28 21:43:49 +01:00
|
|
|
|
2017-12-16 22:17:42 +01:00
|
|
|
class UsernameRssTokenConverterTest extends TestCase
|
2015-03-28 21:43:49 +01:00
|
|
|
{
|
|
|
|
public function testSupportsWithNoRegistry()
|
|
|
|
{
|
2016-04-12 11:36:01 +02:00
|
|
|
$params = new ParamConverter([]);
|
2015-03-28 21:43:49 +01:00
|
|
|
$converter = new UsernameRssTokenConverter();
|
|
|
|
|
|
|
|
$this->assertFalse($converter->supports($params));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testSupportsWithNoRegistryManagers()
|
|
|
|
{
|
|
|
|
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$registry->expects($this->once())
|
|
|
|
->method('getManagers')
|
2016-04-12 11:36:01 +02:00
|
|
|
->will($this->returnValue([]));
|
2015-03-28 21:43:49 +01:00
|
|
|
|
2016-04-12 11:36:01 +02:00
|
|
|
$params = new ParamConverter([]);
|
2015-03-28 21:43:49 +01:00
|
|
|
$converter = new UsernameRssTokenConverter($registry);
|
|
|
|
|
|
|
|
$this->assertFalse($converter->supports($params));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testSupportsWithNoConfigurationClass()
|
|
|
|
{
|
|
|
|
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$registry->expects($this->once())
|
|
|
|
->method('getManagers')
|
2016-04-12 11:36:01 +02:00
|
|
|
->will($this->returnValue(['default' => null]));
|
2015-03-28 21:43:49 +01:00
|
|
|
|
2016-04-12 11:36:01 +02:00
|
|
|
$params = new ParamConverter([]);
|
2015-03-28 21:43:49 +01:00
|
|
|
$converter = new UsernameRssTokenConverter($registry);
|
|
|
|
|
|
|
|
$this->assertFalse($converter->supports($params));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testSupportsWithNotTheGoodClass()
|
|
|
|
{
|
|
|
|
$meta = $this->getMockBuilder('Doctrine\Common\Persistence\Mapping\ClassMetadata')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$meta->expects($this->once())
|
|
|
|
->method('getName')
|
|
|
|
->will($this->returnValue('nothingrelated'));
|
|
|
|
|
|
|
|
$em = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectManager')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$em->expects($this->once())
|
|
|
|
->method('getClassMetadata')
|
|
|
|
->with('superclass')
|
|
|
|
->will($this->returnValue($meta));
|
|
|
|
|
|
|
|
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$registry->expects($this->once())
|
|
|
|
->method('getManagers')
|
2016-04-12 11:36:01 +02:00
|
|
|
->will($this->returnValue(['default' => null]));
|
2015-03-28 21:43:49 +01:00
|
|
|
|
|
|
|
$registry->expects($this->once())
|
|
|
|
->method('getManagerForClass')
|
|
|
|
->with('superclass')
|
|
|
|
->will($this->returnValue($em));
|
|
|
|
|
2016-04-12 11:36:01 +02:00
|
|
|
$params = new ParamConverter(['class' => 'superclass']);
|
2015-03-28 21:43:49 +01:00
|
|
|
$converter = new UsernameRssTokenConverter($registry);
|
|
|
|
|
|
|
|
$this->assertFalse($converter->supports($params));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testSupportsWithGoodClass()
|
|
|
|
{
|
|
|
|
$meta = $this->getMockBuilder('Doctrine\Common\Persistence\Mapping\ClassMetadata')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$meta->expects($this->once())
|
|
|
|
->method('getName')
|
2015-10-02 14:51:41 +02:00
|
|
|
->will($this->returnValue('Wallabag\UserBundle\Entity\User'));
|
2015-03-28 21:43:49 +01:00
|
|
|
|
|
|
|
$em = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectManager')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$em->expects($this->once())
|
|
|
|
->method('getClassMetadata')
|
2015-10-02 14:51:41 +02:00
|
|
|
->with('WallabagUserBundle:User')
|
2015-03-28 21:43:49 +01:00
|
|
|
->will($this->returnValue($meta));
|
|
|
|
|
|
|
|
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$registry->expects($this->once())
|
|
|
|
->method('getManagers')
|
2016-04-12 11:36:01 +02:00
|
|
|
->will($this->returnValue(['default' => null]));
|
2015-03-28 21:43:49 +01:00
|
|
|
|
|
|
|
$registry->expects($this->once())
|
|
|
|
->method('getManagerForClass')
|
2015-10-02 14:51:41 +02:00
|
|
|
->with('WallabagUserBundle:User')
|
2015-03-28 21:43:49 +01:00
|
|
|
->will($this->returnValue($em));
|
|
|
|
|
2016-04-12 11:36:01 +02:00
|
|
|
$params = new ParamConverter(['class' => 'WallabagUserBundle:User']);
|
2015-03-28 21:43:49 +01:00
|
|
|
$converter = new UsernameRssTokenConverter($registry);
|
|
|
|
|
|
|
|
$this->assertTrue($converter->supports($params));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testApplyEmptyRequest()
|
|
|
|
{
|
2016-04-12 11:36:01 +02:00
|
|
|
$params = new ParamConverter([]);
|
2015-03-28 21:43:49 +01:00
|
|
|
$converter = new UsernameRssTokenConverter();
|
|
|
|
|
2016-10-01 14:51:54 +02:00
|
|
|
$res = $converter->apply(new Request(), $params);
|
|
|
|
|
|
|
|
$this->assertFalse($res);
|
2015-03-28 21:43:49 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2017-05-31 10:38:15 +02:00
|
|
|
* @expectedException \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
|
2015-03-28 21:43:49 +01:00
|
|
|
* @expectedExceptionMessage User not found
|
|
|
|
*/
|
|
|
|
public function testApplyUserNotFound()
|
|
|
|
{
|
2015-10-02 14:51:41 +02:00
|
|
|
$repo = $this->getMockBuilder('Wallabag\UserBundle\Repository\UserRepository')
|
2015-03-28 21:43:49 +01:00
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$repo->expects($this->once())
|
|
|
|
->method('findOneByUsernameAndRsstoken')
|
|
|
|
->with('test', 'test')
|
|
|
|
->will($this->returnValue(null));
|
|
|
|
|
|
|
|
$em = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectManager')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$em->expects($this->once())
|
|
|
|
->method('getRepository')
|
2015-10-02 14:51:41 +02:00
|
|
|
->with('WallabagUserBundle:User')
|
2015-03-28 21:43:49 +01:00
|
|
|
->will($this->returnValue($repo));
|
|
|
|
|
|
|
|
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$registry->expects($this->once())
|
|
|
|
->method('getManagerForClass')
|
2015-10-02 14:51:41 +02:00
|
|
|
->with('WallabagUserBundle:User')
|
2015-03-28 21:43:49 +01:00
|
|
|
->will($this->returnValue($em));
|
|
|
|
|
2016-04-12 11:36:01 +02:00
|
|
|
$params = new ParamConverter(['class' => 'WallabagUserBundle:User']);
|
2015-03-28 21:43:49 +01:00
|
|
|
$converter = new UsernameRssTokenConverter($registry);
|
2016-04-12 11:36:01 +02:00
|
|
|
$request = new Request([], [], ['username' => 'test', 'token' => 'test']);
|
2015-03-28 21:43:49 +01:00
|
|
|
|
|
|
|
$converter->apply($request, $params);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testApplyUserFound()
|
|
|
|
{
|
|
|
|
$user = new User();
|
|
|
|
|
2015-10-02 14:51:41 +02:00
|
|
|
$repo = $this->getMockBuilder('Wallabag\UserBundle\Repository\UserRepository')
|
2015-03-28 21:43:49 +01:00
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$repo->expects($this->once())
|
|
|
|
->method('findOneByUsernameAndRsstoken')
|
|
|
|
->with('test', 'test')
|
|
|
|
->will($this->returnValue($user));
|
|
|
|
|
|
|
|
$em = $this->getMockBuilder('Doctrine\Common\Persistence\ObjectManager')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$em->expects($this->once())
|
|
|
|
->method('getRepository')
|
2015-10-02 14:51:41 +02:00
|
|
|
->with('WallabagUserBundle:User')
|
2015-03-28 21:43:49 +01:00
|
|
|
->will($this->returnValue($repo));
|
|
|
|
|
|
|
|
$registry = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
$registry->expects($this->once())
|
|
|
|
->method('getManagerForClass')
|
2015-10-02 14:51:41 +02:00
|
|
|
->with('WallabagUserBundle:User')
|
2015-03-28 21:43:49 +01:00
|
|
|
->will($this->returnValue($em));
|
|
|
|
|
2016-04-12 11:36:01 +02:00
|
|
|
$params = new ParamConverter(['class' => 'WallabagUserBundle:User', 'name' => 'user']);
|
2015-03-28 21:43:49 +01:00
|
|
|
$converter = new UsernameRssTokenConverter($registry);
|
2016-04-12 11:36:01 +02:00
|
|
|
$request = new Request([], [], ['username' => 'test', 'token' => 'test']);
|
2015-03-28 21:43:49 +01:00
|
|
|
|
|
|
|
$converter->apply($request, $params);
|
|
|
|
|
2017-07-01 09:52:38 +02:00
|
|
|
$this->assertSame($user, $request->attributes->get('user'));
|
2015-03-28 21:43:49 +01:00
|
|
|
}
|
|
|
|
}
|