]> git.immae.eu Git - github/wallabag/wallabag.git/blame - tests/Wallabag/CoreBundle/Controller/SiteCredentialControllerTest.php
Add a real configuration for CS-Fixer
[github/wallabag/wallabag.git] / tests / Wallabag / CoreBundle / Controller / SiteCredentialControllerTest.php
CommitLineData
b8427f22
JB
1<?php
2
3namespace Tests\Wallabag\CoreBundle\Controller;
4
9de9f1e5 5use Symfony\Bundle\FrameworkBundle\Client;
b8427f22 6use Tests\Wallabag\CoreBundle\WallabagCoreTestCase;
9de9f1e5 7use Wallabag\CoreBundle\Entity\SiteCredential;
b8427f22
JB
8
9class SiteCredentialControllerTest extends WallabagCoreTestCase
10{
11 public function testListSiteCredential()
12 {
13 $this->logInAs('admin');
14 $client = $this->getClient();
15
16 $crawler = $client->request('GET', '/site-credentials/');
17
f808b016 18 $this->assertSame(200, $client->getResponse()->getStatusCode());
b8427f22
JB
19
20 $body = $crawler->filter('body')->extract(['_text'])[0];
21
22 $this->assertContains('site_credential.description', $body);
23 $this->assertContains('site_credential.list.create_new_one', $body);
24 }
25
26 public function testNewSiteCredential()
27 {
28 $this->logInAs('admin');
29 $client = $this->getClient();
30
31 $crawler = $client->request('GET', '/site-credentials/new');
32
f808b016 33 $this->assertSame(200, $client->getResponse()->getStatusCode());
b8427f22
JB
34
35 $body = $crawler->filter('body')->extract(['_text'])[0];
36
37 $this->assertContains('site_credential.new_site_credential', $body);
38 $this->assertContains('site_credential.form.back_to_list', $body);
39
40 $form = $crawler->filter('button[id=site_credential_save]')->form();
41
42 $data = [
43 'site_credential[host]' => 'google.io',
44 'site_credential[username]' => 'sergei',
45 'site_credential[password]' => 'microsoft',
46 ];
47
48 $client->submit($form, $data);
49
f808b016 50 $this->assertSame(302, $client->getResponse()->getStatusCode());
b8427f22
JB
51
52 $crawler = $client->followRedirect();
53
54 $this->assertContains('flashes.site_credential.notice.added', $crawler->filter('body')->extract(['_text'])[0]);
55 }
56
b8427f22
JB
57 public function testEditSiteCredential()
58 {
59 $this->logInAs('admin');
60 $client = $this->getClient();
61
9de9f1e5 62 $credential = $this->createSiteCredential($client);
b8427f22 63
f808b016 64 $crawler = $client->request('GET', '/site-credentials/' . $credential->getId() . '/edit');
b8427f22 65
f808b016 66 $this->assertSame(200, $client->getResponse()->getStatusCode());
b8427f22
JB
67
68 $body = $crawler->filter('body')->extract(['_text'])[0];
69
70 $this->assertContains('site_credential.edit_site_credential', $body);
71 $this->assertContains('site_credential.form.back_to_list', $body);
72
73 $form = $crawler->filter('button[id=site_credential_save]')->form();
74
75 $data = [
76 'site_credential[host]' => 'google.io',
77 'site_credential[username]' => 'larry',
78 'site_credential[password]' => 'microsoft',
79 ];
80
81 $client->submit($form, $data);
82
f808b016 83 $this->assertSame(302, $client->getResponse()->getStatusCode());
b8427f22
JB
84
85 $crawler = $client->followRedirect();
86
87 $this->assertContains('flashes.site_credential.notice.updated', $crawler->filter('body')->extract(['_text'])[0]);
b8427f22
JB
88 }
89
b8427f22
JB
90 public function testEditFromADifferentUserSiteCredential()
91 {
9de9f1e5 92 $this->logInAs('admin');
b8427f22
JB
93 $client = $this->getClient();
94
9de9f1e5
JB
95 $credential = $this->createSiteCredential($client);
96
97 $this->logInAs('bob');
b8427f22 98
f808b016 99 $client->request('GET', '/site-credentials/' . $credential->getId() . '/edit');
b8427f22 100
f808b016 101 $this->assertSame(403, $client->getResponse()->getStatusCode());
b8427f22
JB
102 }
103
b8427f22
JB
104 public function testDeleteSiteCredential()
105 {
106 $this->logInAs('admin');
107 $client = $this->getClient();
108
9de9f1e5 109 $credential = $this->createSiteCredential($client);
b8427f22 110
f808b016 111 $crawler = $client->request('GET', '/site-credentials/' . $credential->getId() . '/edit');
b8427f22 112
f808b016 113 $this->assertSame(200, $client->getResponse()->getStatusCode());
b8427f22
JB
114
115 $deleteForm = $crawler->filter('body')->selectButton('site_credential.form.delete')->form();
116
117 $client->submit($deleteForm, []);
118
f808b016 119 $this->assertSame(302, $client->getResponse()->getStatusCode());
b8427f22
JB
120
121 $crawler = $client->followRedirect();
122
123 $this->assertContains('flashes.site_credential.notice.deleted', $crawler->filter('body')->extract(['_text'])[0]);
124 }
9de9f1e5
JB
125
126 private function createSiteCredential(Client $client)
127 {
128 $credential = new SiteCredential($this->getLoggedInUser());
129 $credential->setHost('google.io');
130 $credential->setUsername('sergei');
131 $credential->setPassword('microsoft');
132
133 $em = $client->getContainer()->get('doctrine.orm.entity_manager');
134 $em->persist($credential);
135 $em->flush();
136
137 return $credential;
138 }
b8427f22 139}