]> git.immae.eu Git - github/wallabag/wallabag.git/blame - tests/Wallabag/UserBundle/EventListener/CreateConfigListenerTest.php
Ensure language is valid
[github/wallabag/wallabag.git] / tests / Wallabag / UserBundle / EventListener / CreateConfigListenerTest.php
CommitLineData
772d8c4b
JB
1<?php
2
ca17abce 3namespace Tests\Wallabag\UserBundle\EventListener;
772d8c4b 4
619cc453
JB
5use FOS\UserBundle\Event\FilterUserResponseEvent;
6use FOS\UserBundle\FOSUserEvents;
bd91bd5c 7use PHPUnit\Framework\TestCase;
772d8c4b
JB
8use Symfony\Component\EventDispatcher\EventDispatcher;
9use Symfony\Component\HttpFoundation\Request;
10use Symfony\Component\HttpFoundation\Response;
4d4147b2
JB
11use Symfony\Component\HttpFoundation\Session\Session;
12use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
772d8c4b 13use Wallabag\CoreBundle\Entity\Config;
0a878469 14use Wallabag\UserBundle\Entity\User;
f808b016 15use Wallabag\UserBundle\EventListener\CreateConfigListener;
772d8c4b 16
bd91bd5c 17class CreateConfigListenerTest extends TestCase
772d8c4b
JB
18{
19 private $em;
20 private $listener;
21 private $dispatcher;
22 private $request;
23 private $response;
24
25 protected function setUp()
26 {
4d4147b2 27 $session = new Session(new MockArraySessionStorage());
772d8c4b
JB
28 $this->em = $this->getMockBuilder('Doctrine\ORM\EntityManager')
29 ->disableOriginalConstructor()
30 ->getMock();
31
ca17abce 32 $this->listener = new CreateConfigListener(
772d8c4b
JB
33 $this->em,
34 'baggy',
35 20,
36 50,
ca17abce 37 'fr',
24879db1
JB
38 1,
39 1,
4d4147b2
JB
40 1,
41 $session
772d8c4b
JB
42 );
43
44 $this->dispatcher = new EventDispatcher();
45 $this->dispatcher->addSubscriber($this->listener);
46
47 $this->request = Request::create('/');
48 $this->response = Response::create();
49 }
50
772d8c4b
JB
51 public function testWithValidUser()
52 {
53 $user = new User();
54 $user->setEnabled(true);
55
56 $event = new FilterUserResponseEvent(
57 $user,
58 $this->request,
59 $this->response
60 );
61
62 $config = new Config($user);
63 $config->setTheme('baggy');
64 $config->setItemsPerPage(20);
65 $config->setRssLimit(50);
66 $config->setLanguage('fr');
ca17abce 67 $config->setReadingSpeed(1);
772d8c4b
JB
68
69 $this->em->expects($this->once())
70 ->method('persist')
71 ->will($this->returnValue($config));
72 $this->em->expects($this->once())
73 ->method('flush');
74
75 $this->dispatcher->dispatch(
ca17abce 76 FOSUserEvents::REGISTRATION_COMPLETED,
772d8c4b
JB
77 $event
78 );
79 }
80}