Fixed migration and added tests

This commit is contained in:
Nicolas Lœuillet 2016-10-28 10:55:39 +02:00
parent 23406ca3f1
commit f24ea59ea4
No known key found for this signature in database
GPG key ID: BDC1EFB5CA0145F2
3 changed files with 18 additions and 4 deletions

View file

@ -34,6 +34,7 @@ class Version20161024212538 extends AbstractMigration implements ContainerAwareI
{ {
$this->skipIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.'); $this->skipIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD `user_id` INT(11) DEFAULT NULL');
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD CONSTRAINT FK_clients_user_clients FOREIGN KEY (user_id) REFERENCES '.$this->getTable('user').' (id) ON DELETE CASCADE'); $this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD CONSTRAINT FK_clients_user_clients FOREIGN KEY (user_id) REFERENCES '.$this->getTable('user').' (id) ON DELETE CASCADE');
} }

View file

@ -11,7 +11,7 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase
/** /**
* This data provider allow to tests annotation from the : * This data provider allow to tests annotation from the :
* - API POV (when user use the api to manage annotations) * - API POV (when user use the api to manage annotations)
* - and User POV (when user use the web interface - using javascript - to manage annotations) * - and User POV (when user use the web interface - using javascript - to manage annotations).
*/ */
public function dataForEachAnnotations() public function dataForEachAnnotations()
{ {

View file

@ -82,11 +82,24 @@ class DeveloperControllerTest extends WallabagCoreTestCase
public function testRemoveClient() public function testRemoveClient()
{ {
$this->logInAs('admin');
$client = $this->getClient(); $client = $this->getClient();
$em = $client->getContainer()->get('doctrine.orm.entity_manager'); $em = $client->getContainer()->get('doctrine.orm.entity_manager');
$nbClients = $em->getRepository('WallabagApiBundle:Client')->findAll();
// Try to remove an admin's client with a wrong user
$this->logInAs('bob');
$client->request('GET', '/developer');
$this->assertContains('no_client', $client->getResponse()->getContent());
// get an ID of a admin's client
$this->logInAs('admin');
$nbClients = $em->getRepository('WallabagApiBundle:Client')->findByUser($this->getLoggedInUserId());
$this->logInAs('bob');
$client->request('GET', '/developer/client/delete/'.$nbClients[0]->getId());
$this->assertEquals(403, $client->getResponse()->getStatusCode());
// Try to remove the admin's client with the good user
$this->logInAs('admin');
$crawler = $client->request('GET', '/developer'); $crawler = $client->request('GET', '/developer');
$link = $crawler $link = $crawler
@ -98,7 +111,7 @@ class DeveloperControllerTest extends WallabagCoreTestCase
$client->click($link); $client->click($link);
$this->assertEquals(302, $client->getResponse()->getStatusCode()); $this->assertEquals(302, $client->getResponse()->getStatusCode());
$newNbClients = $em->getRepository('WallabagApiBundle:Client')->findAll(); $newNbClients = $em->getRepository('WallabagApiBundle:Client')->findByUser($this->getLoggedInUserId());
$this->assertGreaterThan(count($newNbClients), count($nbClients)); $this->assertGreaterThan(count($newNbClients), count($nbClients));
} }
} }