3 namespace Tests\Wallabag\CoreBundle\Controller
;
5 use Tests\Wallabag\CoreBundle\WallabagCoreTestCase
;
7 class SiteCredentialControllerTest
extends WallabagCoreTestCase
9 public function testListSiteCredential()
11 $this->logInAs('admin');
12 $client = $this->getClient();
14 $crawler = $client->request('GET', '/site-credentials/');
16 $this->assertEquals(200, $client->getResponse()->getStatusCode());
18 $body = $crawler->filter('body')->extract(['_text'])[0];
20 $this->assertContains('site_credential.description', $body);
21 $this->assertContains('site_credential.list.create_new_one', $body);
24 public function testNewSiteCredential()
26 $this->logInAs('admin');
27 $client = $this->getClient();
29 $crawler = $client->request('GET', '/site-credentials/new');
31 $this->assertEquals(200, $client->getResponse()->getStatusCode());
33 $body = $crawler->filter('body')->extract(['_text'])[0];
35 $this->assertContains('site_credential.new_site_credential', $body);
36 $this->assertContains('site_credential.form.back_to_list', $body);
38 $form = $crawler->filter('button[id=site_credential_save]')->form();
41 'site_credential[host]' => 'google.io',
42 'site_credential[username]' => 'sergei',
43 'site_credential[password]' => 'microsoft',
46 $client->submit($form, $data);
48 $this->assertEquals(302, $client->getResponse()->getStatusCode());
50 $crawler = $client->followRedirect();
52 $this->assertContains('flashes.site_credential.notice.added', $crawler->filter('body')->extract(['_text'])[0]);
56 * @depends testNewSiteCredential
58 public function testEditSiteCredential()
60 $this->logInAs('admin');
61 $client = $this->getClient();
63 $credential = $client->getContainer()
64 ->get('doctrine.orm.entity_manager')
65 ->getRepository('WallabagCoreBundle:SiteCredential')
66 ->findOneByHost('google.io');
68 $crawler = $client->request('GET', '/site-credentials/'.$credential->getId().'/edit');
70 $this->assertEquals(200, $client->getResponse()->getStatusCode());
72 $body = $crawler->filter('body')->extract(['_text'])[0];
74 $this->assertContains('site_credential.edit_site_credential', $body);
75 $this->assertContains('site_credential.form.back_to_list', $body);
77 $form = $crawler->filter('button[id=site_credential_save]')->form();
80 'site_credential[host]' => 'google.io',
81 'site_credential[username]' => 'larry',
82 'site_credential[password]' => 'microsoft',
85 $client->submit($form, $data);
87 $this->assertEquals(302, $client->getResponse()->getStatusCode());
89 $crawler = $client->followRedirect();
91 $this->assertContains('flashes.site_credential.notice.updated', $crawler->filter('body')->extract(['_text'])[0]);
92 $this->assertContains('larry', $crawler->filter('input[id=site_credential_username]')->attr('value'));
96 * @depends testNewSiteCredential
98 public function testEditFromADifferentUserSiteCredential()
100 $this->logInAs('bob');
101 $client = $this->getClient();
103 $credential = $client->getContainer()
104 ->get('doctrine.orm.entity_manager')
105 ->getRepository('WallabagCoreBundle:SiteCredential')
106 ->findOneByHost('google.io');
108 $client->request('GET', '/site-credentials/'.$credential->getId().'/edit');
110 $this->assertEquals(403, $client->getResponse()->getStatusCode());
114 * @depends testNewSiteCredential
116 public function testDeleteSiteCredential()
118 $this->logInAs('admin');
119 $client = $this->getClient();
121 $credential = $client->getContainer()
122 ->get('doctrine.orm.entity_manager')
123 ->getRepository('WallabagCoreBundle:SiteCredential')
124 ->findOneByHost('google.io');
126 $crawler = $client->request('GET', '/site-credentials/'.$credential->getId().'/edit');
128 $this->assertEquals(200, $client->getResponse()->getStatusCode());
130 $deleteForm = $crawler->filter('body')->selectButton('site_credential.form.delete')->form();
132 $client->submit($deleteForm, []);
134 $this->assertEquals(302, $client->getResponse()->getStatusCode());
136 $crawler = $client->followRedirect();
138 $this->assertContains('flashes.site_credential.notice.deleted', $crawler->filter('body')->extract(['_text'])[0]);