aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/Wallabag/UserBundle/EventListener/CreateConfigListenerTest.php
diff options
context:
space:
mode:
authorJeremy Benoist <jeremy.benoist@gmail.com>2016-09-30 21:01:36 +0200
committerJeremy Benoist <jeremy.benoist@gmail.com>2016-09-30 21:01:36 +0200
commitca17abce2d3963e266bee905ab084ddfa7e1ff18 (patch)
treece33b43a21acc99300d7046387f99d437f713785 /tests/Wallabag/UserBundle/EventListener/CreateConfigListenerTest.php
parent114c55c0a6eade2ba6c53fe25f61cc58cca91620 (diff)
downloadwallabag-ca17abce2d3963e266bee905ab084ddfa7e1ff18.tar.gz
wallabag-ca17abce2d3963e266bee905ab084ddfa7e1ff18.tar.zst
wallabag-ca17abce2d3963e266bee905ab084ddfa7e1ff18.zip
Create user config in one place
Using a listener, user config is now created when a user: - is created from the command line - register (with or without email confirmation) - is created from the config panel
Diffstat (limited to 'tests/Wallabag/UserBundle/EventListener/CreateConfigListenerTest.php')
-rw-r--r--tests/Wallabag/UserBundle/EventListener/CreateConfigListenerTest.php93
1 files changed, 93 insertions, 0 deletions
diff --git a/tests/Wallabag/UserBundle/EventListener/CreateConfigListenerTest.php b/tests/Wallabag/UserBundle/EventListener/CreateConfigListenerTest.php
new file mode 100644
index 00000000..0cebd3e4
--- /dev/null
+++ b/tests/Wallabag/UserBundle/EventListener/CreateConfigListenerTest.php
@@ -0,0 +1,93 @@
1<?php
2
3namespace Tests\Wallabag\UserBundle\EventListener;
4
5use FOS\UserBundle\Event\FilterUserResponseEvent;
6use FOS\UserBundle\FOSUserEvents;
7use Symfony\Component\EventDispatcher\EventDispatcher;
8use Symfony\Component\HttpFoundation\Request;
9use Symfony\Component\HttpFoundation\Response;
10use Wallabag\CoreBundle\Entity\Config;
11use Wallabag\UserBundle\EventListener\CreateConfigListener;
12use Wallabag\UserBundle\Entity\User;
13
14class CreateConfigListenerTest extends \PHPUnit_Framework_TestCase
15{
16 private $em;
17 private $listener;
18 private $dispatcher;
19 private $request;
20 private $response;
21
22 protected function setUp()
23 {
24 $this->em = $this->getMockBuilder('Doctrine\ORM\EntityManager')
25 ->disableOriginalConstructor()
26 ->getMock();
27
28 $this->listener = new CreateConfigListener(
29 $this->em,
30 'baggy',
31 20,
32 50,
33 'fr',
34 1
35 );
36
37 $this->dispatcher = new EventDispatcher();
38 $this->dispatcher->addSubscriber($this->listener);
39
40 $this->request = Request::create('/');
41 $this->response = Response::create();
42 }
43
44 public function testWithInvalidUser()
45 {
46 $user = new User();
47 $user->setEnabled(false);
48
49 $event = new FilterUserResponseEvent(
50 $user,
51 $this->request,
52 $this->response
53 );
54
55 $this->em->expects($this->never())->method('persist');
56 $this->em->expects($this->never())->method('flush');
57
58 $this->dispatcher->dispatch(
59 FOSUserEvents::REGISTRATION_COMPLETED,
60 $event
61 );
62 }
63
64 public function testWithValidUser()
65 {
66 $user = new User();
67 $user->setEnabled(true);
68
69 $event = new FilterUserResponseEvent(
70 $user,
71 $this->request,
72 $this->response
73 );
74
75 $config = new Config($user);
76 $config->setTheme('baggy');
77 $config->setItemsPerPage(20);
78 $config->setRssLimit(50);
79 $config->setLanguage('fr');
80 $config->setReadingSpeed(1);
81
82 $this->em->expects($this->once())
83 ->method('persist')
84 ->will($this->returnValue($config));
85 $this->em->expects($this->once())
86 ->method('flush');
87
88 $this->dispatcher->dispatch(
89 FOSUserEvents::REGISTRATION_COMPLETED,
90 $event
91 );
92 }
93}