Completed
Pull Request — dev (#22)
by nonanerz
03:38
created

UserControllerTest::testAddAction()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 30
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 1 Features 0
Metric Value
c 3
b 1
f 0
dl 0
loc 30
rs 8.8571
cc 1
eloc 21
nc 1
nop 0
1
<?php
2
3
namespace Tests\AppBundle\Controller;
4
5
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
6
use AppBundle\Entity\User;
7
8
class UserControllerTest extends WebTestCase
9
{
10
    public function testListAction()
11
    {
12
        $client = static::createClient();
13
        $client->request('GET', '/users');
14
        $this->assertEquals('302', $client->getResponse()->getStatusCode());
15
        $crawler = $client->request('GET', '/login');
16
17
        $form = $crawler->selectButton('Login')->form();
18
        $client->submit($form, ['_username' => '[email protected]', '_password' => 'admin']);
19
        $client->request('GET', '/users');
20
21
        $this->assertEquals('200', $client->getResponse()->getStatusCode());
22
    }
23
24
    public function testAddAction()
25
    {
26
        $client = static::createClient();
27
        $client->request('GET', '/users');
28
29
        $this->assertEquals('302', $client->getResponse()->getStatusCode());
30
31
        $crawler = $client->request('GET', '/login');
32
        $form = $crawler->selectButton('Login')->form();
33
        $client->submit($form, ['_username' => '[email protected]', '_password' => 'admin']);
34
35
        $em = static::$kernel->getContainer()
36
            ->get('doctrine')
37
            ->getManager();
38
39
        $usersCount1 = count($em->getRepository('AppBundle:User')->findAll());
40
41
        $crawler = $client->request('GET', '/user/add');
42
        $form = $crawler->selectButton('Register')->form();
43
        $client->submit($form, [
44
            'registration[lastName]' => 'test',
45
            'registration[firstName]' => 'test',
46
            'registration[email]' => '[email protected]',
47
            'registration[plainPassword][first]' => 'test',
48
            'registration[plainPassword][second]' => 'test',
49
        ]);
50
        $usersCount2 = count($em->getRepository('AppBundle:User')->findAll());
51
52
        $this->assertEquals($usersCount1 + 1, $usersCount2);
53
    }
54
55
    public function testActivationAction()
56
    {
57
        $client = static::createClient();
58
        $crawler = $client->request('GET', '/login');
59
        $form = $crawler->selectButton('Login')->form();
60
        $client->submit($form, ['_username' => '[email protected]', '_password' => 'admin']);
61
62
        $em = static::$kernel->getContainer()
63
            ->get('doctrine')
64
            ->getManager();
65
66
        $crawler = $client->request('GET', '/users');
67
68
        $form = $crawler->filter('table td form')->form();
69
        $url_params = explode('/', $form->getUri());
70
        $userid = $url_params[count($url_params)-1];
71
72
        $client->submit($form, ['activation[enabled]' => false]);
73
        $user = $em->getRepository('AppBundle:User')->findOneBy(array("id" => $userid));
74
75
        $this->assertEquals(false, $user->isEnabled());
76
    }
77
78
    public function testEditAction()
79
    {
80
        $client = static::createClient();
81
        $client->request('GET', '/users');
82
        $this->assertEquals('302', $client->getResponse()->getStatusCode());
83
        $crawler = $client->request('GET', '/login');
84
        $form = $crawler->selectButton('Login')->form();
85
        $client->submit($form, ['_username' => '[email protected]', '_password' => 'admin']);
86
87
        $em = static::$kernel->getContainer()
88
            ->get('doctrine')
89
            ->getManager();
90
91
        $crawler = $client->request('GET', '/users');
92
93
        $form = $crawler->filter('table td form')->form();
94
        $url_params = explode('/', $form->getUri());
95
        $userid = $url_params[count($url_params)-1];
96
        $crawler = $client->request('GET', '/user/edit/'.$userid);
97
        $form = $crawler->selectButton('Save')->form();
98
        $client->submit($form, [
99
            'edit[lastName]' => 'test1',
100
            'edit[firstName]' => 'test1',
101
            'edit[email]' => '[email protected]',
102
            'edit[plainPassword][first]' => 'test1',
103
            'edit[plainPassword][second]' => 'test1',
104
        ]);
105
106
        $this->assertInstanceOf(
107
            User::class,
108
            $em->getRepository(User::class)->findOneBy(['email' => '[email protected]'])
109
        );
110
    }
111
}
112